Ниже шаблона SAM:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello-world/
Handler: app.LambdaHandler
Runtime: nodejs8.10
Events:
MySQSEvent:
Type: SQS
Properties:
Queue: !GetAtt somequeue.Arn
BatchSize: 10
somequeue:
Type: AWS::SQS::Queue
автоматически создает роль по умолчанию (JSON) со следующими политиками:
{
"roleName": "somestack-HelloWorldFunctionRole-AAAAAAAAA",
"policies": [
{
"document": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sqs:ReceiveMessage",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes",
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
},
"name": "AWSLambdaSQSQueueExecutionRole",
"id": "ANPAJFWJZI6JNND4TSELK",
"type": "managed",
"arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaSQSQueueExecutionRole"
},
{
"document": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
},
"name": "AWSLambdaBasicExecutionRole",
"id": "ANPAJNCQGXC42545SKXIK",
"type": "managed",
"arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
}
],
"trustedEntities": [
"lambda.amazonaws.com"
]
}
Нам нужно обеспечить соблюдение правил доступа для определенных действий на определенных ресурсах (показано ниже yaml) и запретить доступ к другим ресурсам (в группе журналов).
1) Нужно ли мне использовать границу разрешений или политику для обеспечения соблюдения этих правил? для вышеуказанного шаблона SAM ...
- Effect: Allow
Action:
- "logs:CreateLogGroup"
Resource:
- !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:*"
2)
Какова процедура создания Граница разрешений? через шаблон SAM для функции Lambda .. потому что он запрашивает ARN