Определение политики 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": "*"
    }
  ]
}
Другие вопросы по тегам