Wie erlaube ich meiner Lambda-Funktion den Zugriff auf meinen Amazon-S3-Bucket?
Ich möchte, dass meine AWS-Lambda-Funktion auf meinen Amazon Simple Storage Service (Amazon S3)-Bucket zugreifen kann.
Kurzbeschreibung
Gehe wie folgt vor, um der Lambda-Funktion Zugriff auf einen S3-Bucket im selben AWS-Konto zu gewähren:
- Erstelle eine AWS Identity and Access Management (IAM)-Rolle für die Lambda-Funktion, die auch Zugriff auf den Bucket gewährt.
- Konfiguriere die IAM-Rolle als Ausführungsrolle für Lambda-Funktionen.
- Stelle sicher, dass die Bucket-Richtlinie den Zugriff auf die Lambda-Funktion oder deren Ausführungsrolle nicht explizit verweigert.
Wichtig: Wenn sich der Bucket und die IAM-Rolle der Funktion in unterschiedlichen Konten befinden, musst du auch die erforderlichen Berechtigungen für die Bucket-Richtlinie erteilen. Weitere Informationen findest du unter Wie kann ich kontoübergreifenden Zugriff auf Objekte gewähren, die sich in Amazon-S3-Buckets befinden?
Lösung
Eine IAM-Rolle für die Lambda-Funktion erstellen, die auch Zugriff auf den Bucket gewährt
Gehe wie folgt vor, um eine IAM-Rolle für die Lambda-Funktion zu erstellen, die auch Zugriff auf den Bucket gewährt:
-
Wähle aus der Liste der IAM-Rollen die Rolle aus, die du erstellt hast.
-
Wähle die Registerkarte Vertrauensbeziehungen und dann Vertrauensrichtlinie bearbeiten aus.
-
Ersetze die Anweisung in der Richtlinie durch die folgende Anweisung:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Wähle Richtlinie aktualisieren.
-
Wähle auf der Registerkarte Berechtigungen die Option Inline-Richtlinie hinzufügen aus.
-
Wähle die Registerkarte JSON.
-
Füge eine ressourcenbasierte IAM-Richtlinie hinzu, die Zugriff auf den Bucket gewährt. Weitere Informationen findest du unter Anzeigen ressourcenbasierter IAM-Richtlinien in Lambda. Die folgende IAM-Beispielrichtlinie gewährt Zugriff auf einen bestimmten Bucket mit Get-Berechtigungen. Um auf die Objekte im Bucket zuzugreifen, gib den richtigen Pfad an oder verwende ein Platzhalterzeichen („*“). Weitere Informationen findest du unter Schreiben von IAM-Richtlinien: So gewährst du Zugriff auf einen Amazon-S3-Bucket.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket/*" ] } ] }Hinweis: Ersetze "arn:aws:s3:::example-bucket" durch den Amazon-Ressourcennamen (ARN) deines Buckets. Wenn du das Objekt mit einem AWS Key Management Service (AWS KMS)-Schlüssel verschlüsselt hast, musst du auch die erforderlichen Berechtigungen bereitstellen. Weitere Informationen findest du unter Wie erlaube ich Benutzern, von einem Amazon-S3-Bucket herunterzuladen und in einen Amazon-S3-Bucket hochzuladen, den ich mit einem vom Kunden verwalteten AWS-KMS-Schlüssel verschlüsselt habe?
-
Wähle Richtlinie überprüfen.
-
Gib unter Name einen Namen für deine Richtlinie ein.
-
Wähle Richtlinie erstellen.
Konfigurieren der IAM-Rolle als Ausführungsrolle für Lambda-Funktionen
Gehe wie folgt vor, um die IAM-Rolle als Ausführungsrolle für Lambda-Funktionen zu konfigurieren:
- Öffne die Lambda-Konsole.
- Wähle deine Lambda-Funktion.
- Wähle unter Ausführungsrolle für Vorhandene Rolle die IAM-Rolle aus, die du erstellt hast.
- Wähle Speichern aus.
Sicherstellen, dass die Bucket-Richtlinie den Zugriff auf die Lambda-Funktion oder deren Ausführungsrolle nicht explizit verweigert
Verwende die Amazon-S3-Konsole, um die Bucket-Richtlinie zu überprüfen. Stelle sicher, dass die Richtlinie den Zugriff auf die Lambda-Funktion und ihre Ausführungsrolle zulässt.
Die folgende IAM-Beispielrichtlinie gewährt einer Lambda-Ausführungsrolle kontoübergreifenden Zugriff auf einen Bucket:
{ "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket/*" ], "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/ExampleLambdaRoleFor123456789012" ] } } ] }
Hinweis: Ersetze "arn:aws:s3:::example-bucket" durch den ARN deines Buckets und "arn:aws:iam::123456789012:role/ExampleLambdaRoleFor123456789012" durch den ARN deiner Lambda-Ausführungsrolle.
Ähnliche Informationen
- Themen
- Storage
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr