Определение политики AWSLambdaExecute
Предисловие: я не прошу помощи по настройке. Мой случай использования покрыт и работает нормально. Это теоретический вопрос.
На AWS есть политика под названием AWSLambdaExecute
который определяется следующим образом:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [ "logs:*" ],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [ "s3:GetObject", "s3:PutObject" ],
"Resource": "arn:aws:s3:::*"
}
]
}
Это определение говорит мне:
- Полный доступ ко всем журналам
- Можно скачать / загрузить на S3.
В чем причина этого? Почему они говорят о S3? (Мой конкретный лямбда-вызов не имеет ничего общего с S3.) Известны ли нам какие-либо подробные документы по заранее определенным политикам, кроме описаний в одну строку для каждого?
1 ответ
Если ваша функция не имеет ничего общего с S3, не используйте эту управляемую политику. Насколько я вижу, эта политика используется в документации в сочетании с руководством по использованию Lambda с Amazon S3.
Источник: https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-create-iam-role.html
Если вы хотите использовать управляемую политику, я рекомендую использовать AWSLambdaBasicExecutionRole
который содержит только минимум:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}