Фон:
Политики IAM можно создать двумя способами:
Управляемые политики (новый способ)
- AWS managed policies
- Политики, управляемые клиентом
Встроенные политики (старый способ)
Ниже шаблон SAM создает встроенную политику:
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello-world/
Handler: app.LambdaHandler
Runtime: nodejs8.10
Policies:
- Statement:
- Sid: AccessToS3Policy
Effect: Allow
Action:
- s3:GetObject
- s3:GetObjectACL
Resource: 'arn:aws:s3:::some-bucket/*'
в результирующей роли, как показано ниже:
{
"roleName": "somestack-HelloWorldFunctionRole-AAAAAAAA",
"policies": [
{
"document": {
"Statement": [
{
"Action": [
"s3:GetObject",
"s3:GetObjectACL"
],
"Resource": "arn:aws:s3:::some-bucket/*",
"Effect": "Allow",
"Sid": "AccessToS3Policy"
}
]
},
"name": "HelloWorldFunctionRolePolicy0",
"type": "inline"
},
.....
]
}
В случае лямбда-функции
1) Как создать политику, управляемую Клиентом?
2) Чем встроенная политика отличается от политики, управляемой клиентом?