Lambda-Funktion den Zugriff auf AWS-Services gewähren - 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-Funktion den Zugriff auf AWS-Services gewähren

Wenn Sie einen AWS-Service zum Aufrufen Ihrer Funktion verwenden, erteilen Sie die Berechtigung in einer Anweisung einer ressourcenbasierten Richtlinie. Sie können die Anweisung auf die gesamte Funktion anwenden oder die Anweisung auf eine einzelne Version oder einen einzelnen 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 gewährt die Amazon-Simple Notification Service-Berechtigung zum Aufrufen einer Funktion namens my-function.

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"}

Auf diese Weise kann Amazon SNS die API-Aktion Aufruf für die Funktion aufrufen, ohne das Amazon-SNS-Thema einzuschränken, durch das der Aufruf ausgelöst wird. Um sicherzustellen, dass Ihre Funktion nur von einer bestimmten Ressource aufgerufen wird, geben Sie den Amazon-Ressourcennamen (ARN) der Ressource mit der Option source-arn an. Der folgende Befehl erlaubt Amazon SNS nur das Aufrufen der Funktion für Abonnements für ein Thema namens my-topic.

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 einen Quell-ARN angeben, der Ihre Konto-ID enthält, ist das kein Problem. Für Amazon S3 ist die Quelle jedoch ein Bucket, dessen ARN nicht über eine Konto-ID verfügt. 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