AWSLambdaExecute-Richtliniendefinition

8

Vorwort: Ich bitte nicht um Konfigurationshilfe. Mein Anwendungsfall ist abgedeckt und funktioniert gut. Dies ist eine theoretische Frage.

In AWS wird eine Richtlinie aufgerufen, AWSLambdaExecutedie wie folgt definiert ist:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [ "logs:*" ],
      "Resource": "arn:aws:logs:*:*:*"
    },
    {
      "Effect": "Allow",
      "Action": [ "s3:GetObject", "s3:PutObject" ],
      "Resource": "arn:aws:s3:::*"
    }
  ]
}

Diese Definition sagt mir:

  • Voller Zugriff auf alle Protokolle
  • Kann auf S3 herunterladen / hochladen.

Was ist der Grund dafür? Warum reden sie über S3? (Mein spezieller Lambda-Aufruf hat nichts mit S3 zu tun.) Kennen wir eine detaillierte Dokumentation zu vordefinierten Richtlinien außer den jeweils einzeiligen Beschreibungen?

Notinlist
quelle

Antworten:

5

Wenn Ihre Funktion nichts mit S3 zu tun hat, verwenden Sie diese verwaltete Richtlinie nicht. Soweit ich sehen kann, wird diese Richtlinie in der Dokumentation in Kombination mit einem Tutorial zur Verwendung von Lambda mit Amazon S3 verwendet.

Quelle: https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-create-iam-role.html

Wenn Sie eine verwaltete Richtlinie verwenden möchten, empfehle ich die Verwendung einer Richtlinie, AWSLambdaBasicExecutionRoledie anscheinend nur das Minimum enthält:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "*"
    }
  ]
}
Null
quelle