Anzeigen von ressourcenbasierten IAM-Richtlinien in Lambda - AWS Lambda

Anzeigen von ressourcenbasierten IAM-Richtlinien in Lambda

Lambda unterstützt ressourcenbasierte Berechtigungsrichtlinien für Lambda-Funktionen und -Ebenen. Sie können ressourcenbasierte Richtlinien verwenden, um anderen AWS Konten, Organisationen oder Diensten Zugriff zu gewähren. Ressourcenbasierte Richtlinien gelten für einzelne Funktionen, Versionen, Aliasnamen oder Ebenenversionen.

Console
So zeigen Sie die ressourcenbasierte Richtlinie einer Funktion an
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie Konfiguration und anschließend Berechtigungen aus.

  4. Scrollen Sie nach unten zu Ressourcenbasierte Richtlinie und wählen Sie dann Richtliniendokument anzeigen aus. Die ressourcenbasierte Richtlinie zeigt die Berechtigungen an, die angewendet werden, wenn ein anderes Konto oder ein anderer AWS-Service versucht, auf die Funktion zuzugreifen. Das folgende Beispiel zeigt eine Anweisung, mit der Amazon S3 eine Funktion mit dem Namen my-function für einen Bucket mit dem Namen amzn-s3-demo-bucket im Konto 123456789012 aufrufen kann.

    Beispiel Ressourcenbasierte Richtlinie
    { "Version":"2012-10-17", "Id": "default", "Statement": [ { "Sid": "lambda-allow-s3-my-function", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" }, "ArnLike": { "AWS:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket" } } } ] }
AWS CLI

Um die ressourcenbasierte Richtlinie einer Funktion anzuzeigen, verwenden Sie den Befehl get-policy.

aws lambda get-policy \ --function-name my-function \ --output text

Die Ausgabe sollte folgendermaßen aussehen:

{"Version":"2012-10-17", "Id":"default","Statement":[{"Sid":"sns","Effect":"Allow","Principal":{"Service":"s3.amazonaws.com"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function","Condition":{"ArnLike":{"AWS:SourceArn":"arn:aws:sns:us-east-2:123456789012:lambda*"}}}]}

Fügen Sie bei Versionen und Aliassen die Versionsnummer oder den Alias an den Funktionsnamen an.

aws lambda get-policy --function-name my-function:PROD

Um Berechtigungen von Ihrer Funktion zu entfernen, verwenden Sie remove-permission.

aws lambda remove-permission \ --function-name example \ --statement-id sns

Verwenden Sie den Befehl get-layer-version-policy, um die Berechtigungen für einen Layer anzuzeigen.

aws lambda get-layer-version-policy \ --layer-name my-layer \ --version-number 3 \ --output text

Die Ausgabe sollte folgendermaßen aussehen:

b0cd9796-d4eb-4564-939f-de7fe0b42236    {"Sid":"engineering-org","Effect":"Allow","Principal":"*","Action":"lambda:GetLayerVersion","Resource":"arn:aws:lambda:us-west-2:123456789012:layer:my-layer:3","Condition":{"StringEquals":{"aws:PrincipalOrgID":"o-t194hfs8cz"}}}"

Verwenden Sie remove-layer-version-permission, um Anweisungen aus der Richtlinie zu entfernen.

aws lambda remove-layer-version-permission --layer-name my-layer --version-number 3 --statement-id engineering-org

Unterstützte API-Aktionen

Die folgenden Lambda-API-Aktionen unterstützen ressourcenbasierte Richtlinien: