Предисловие: Я не прошу помощи в настройке. Мой вариант использования покрыт и работает нормально. Это теоретический вопрос.
В 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, не используйте эту управляемую политику. Насколько я понимаю, эта политика используется в документации в сочетании с учебником по использованию 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": "*"
}
]
}