Lambda-Funktionszugriff auf Dienste gewähren AWS - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Lambda-Funktionszugriff auf Dienste gewähren AWS

Wenn Sie einen AWS Dienst verwenden, um Ihre Funktion aufzurufen, erteilen Sie die Erlaubnis in einer Erklärung zu einer ressourcenbasierten Richtlinie. Sie können die Anweisung auf die gesamte Funktion anwenden oder die Anweisung auf eine einzelne Version oder einen Alias beschränken.

Anmerkung

Wenn Sie Ihrer Funktion mit der Lambda-Konsole einen Auslöser hinzufügen, aktualisiert die Konsole die ressourcenbasierte Richtlinie der Funktion, damit der Service sie aufrufen kann. Um Berechtigungen für andere Konten oder Services zu erteilen, die in der Lambda-Konsole nicht verfügbar sind, verwenden Sie die AWS CLI-CLI.

Fügen Sie eine Anweisung mit dem Befehl add-permission hinzu. Die einfachste ressourcenbasierte Richtlinienanweisung ermöglicht es einem Service, eine Funktion aufzurufen. Der folgende Befehl erteilt Amazon Simple Notification Service die Erlaubnis, eine Funktion mit dem Namen my-function aufzurufen.

aws lambda add-permission \ --function-name my-function \ --action lambda:InvokeFunction \ --statement-id sns \ --principal sns.amazonaws.com \ --output text

Die Ausgabe sollte folgendermaßen aussehen:

{"Sid":"sns","Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-2:123456789012:function:my-function"}

Dadurch kann Amazon die API Aktion „SNSAufrufen“ für die Funktion aufrufen, aber das SNS Amazon-Thema, das den Aufruf auslöst, wird dadurch nicht eingeschränkt. Um sicherzustellen, dass Ihre Funktion nur von einer bestimmten Ressource aufgerufen wird, geben Sie den Amazon-Ressourcennamen (ARN) der Ressource mit der source-arn Option an. Mit dem folgenden Befehl kann Amazon SNS die Funktion nur für Abonnements eines Themas mit dem Namen my-topic aufrufen.

aws lambda add-permission \ --function-name my-function \ --action lambda:InvokeFunction \ --statement-id sns-my-topic \ --principal sns.amazonaws.com \ --source-arn arn:aws:sns:us-east-2:123456789012:my-topic

Einige Services können Funktionen in anderen Konten aufrufen. Wenn Sie eine Quelle angebenARN, die Ihre Konto-ID enthält, ist das kein Problem. Für Amazon S3 ist die Quelle jedoch ein Bucket, in dem ARN keine Konto-ID enthalten ist. Es ist möglich, dass Sie den Bucket löschen und ein anderes Konto einen Bucket mit demselben Namen erstellt. Verwenden Sie die Option source-account mit Ihrer Konto-ID, um sicherzustellen, dass nur Ressourcen in Ihrem Konto die Funktion aufrufen können.

aws lambda add-permission \ --function-name my-function \ --action lambda:InvokeFunction \ --statement-id s3-account \ --principal s3.amazonaws.com \ --source-arn arn:aws:s3:::amzn-s3-demo-bucket \ --source-account 123456789012