Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Warum erhalte ich den Fehler „S3 error: Access Denied“ (S3-Fehler: Zugriff verweigert) in CloudFormation?
Ich möchte den Amazon Simple Storage Service (Amazon S3)-Fehler „Access Denied“ (Zugriff verweigert) beheben, der beim Erstellen oder Aktualisieren von Stacks in AWS CloudFormation angezeigt wird.
Behebung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Problembehandlung bei der IAM-Rolle oder Benutzerrichtlinie
Stelle sicher, dass der Benutzer oder die Rolle von AWS Identity and Access Management (IAM), den du mit CreateChangeSet oder CreateStack verwendet hast, über die erforderlichen Berechtigungen verfügt. Möglicherweise musst du der IAM-Identität eine Richtlinie anhängen, die die GetObject-Berechtigung gewährt. Die folgende Beispielrichtlinie beinhaltet die GetObject-Berechtigung:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion" ], "Resource":"arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Hinweis: Ersetze amzn-s3-demo-bucket durch deinen Bucket.
Überprüfen, ob die Vorlagendatei existiert und keine Tippfehler enthält
Um zu überprüfen, ob die Vorlagendatei existiert und keine Tippfehler enthält, führe den AWS-CLI-Befehl list-objects aus:
aws s3 list-objects --bucket amzn-s3-demo-bucket --prefix file-path/template-file.json
Hinweis: Ersetze amzn-s3-demo-bucket durch deinen Bucket und file-path/template-file.json durch deinen Dateipfad und deine Vorlagendatei. Stelle sicher, dass die Vorlagen-URL keine zusätzlichen Leerzeichen enthält. Tippfehler können den Fehler „S3 Access Denied“ (S3-Zugriff verweigert) verursachen.
Sicherstellen, dass die Vorlagendatei nicht leer ist
Wenn die Vorlagendatei existiert, aber leer ist, wird möglicherweise der Fehler „S3 Access Denied“ (S3-Zugriff verweigert) angezeigt. Um zu überprüfen, ob die Vorlagendatei leer ist, führe den AWS-CLI-Befehl get-object aus:
aws s3api get-object --bucket amzn-s3-demo-bucket --key key-name template-file.txt
Hinweis: Ersetze amzn-s3-demo-bucket durch deinen Bucket, key-name durch deinen Schlüsselnamen und template-file.txt durch deine Vorlagendatei.
Öffne dann die Vorlagendatei.
Überprüfe die S3-Bucket-Richtlinie auf explizite Ablehnungsanweisungen
Gehe wie folgt vor, um zu überprüfen, ob der S3-Bucket eine explizite Ablehnungsanweisung für die IAM-Rolle enthält:
- Öffne die Amazon S3-Konsole.
- Wähle im Navigationsbereich Buckets aus.
- Wähle in der Dropdownliste Buckets den Bucket aus, der die Vorlagendatei enthält.
- Wähle die Registerkarte Berechtigungen aus.
- Wähle unter Bucket-Richtlinie die Option Bearbeiten aus.
- Suche nach Anweisungen, die „Effect“: „Deny“ (Wirkung: Ablehnen) beinhalten.
- Aktualisiere Anweisungen mit „Effect“: „Deny“, die der IAM-Rolle den Zugriff verweigern, zu s3:GetObject oder s3:GetObjectVersion.
- Entferne die IAM-Rolle, die du mit CloudFormation verwendest.
- Wähle Änderungen speichern aus.
- Erstelle oder aktualisiere den Stack erneut.
Weitere Informationen findest du unter Beispiele für Amazon S3-Bucket-Richtlinien.
Verschlüsselungseinstellungen im S3-Bucket überprüfen und KMS-Zugriff für die IAM-Rolle aktivieren
Möglicherweise erhältst du den Fehler „S3 Access Denied“ (S3-Zugriff verweigert), wenn der Bucket einen vom Kunden verwalteten AWS Key Management Service (KMS)-Schlüssel verwendet, um die Verschlüsselung zu aktivieren. Wenn du deinen Bucket verschlüsselt hast, aktualisiere die Schlüsselrichtlinie, damit die IAM-Identität auf den KMS-Schlüssel zugreifen kann.
Führe die folgenden Schritte aus:
- Öffne die AWS-KMS-Konsole.
- Wähle im Navigationsbereich Kundenverwalteter Schlüssel aus.
- Wähle in der Liste der KMS-Schlüssel den Alias oder die Schlüssel-ID des Schlüssels aus, der die S3-Objekte verschlüsselt, und wähle dann die Registerkarte Schlüsselrichtlinie aus.
- Verwende die folgende Anweisung, um die Richtlinie zu aktualisieren:
{ "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/IDENTITY" }, "Resource": "arn:aws:kms:aa-example-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd" }
Hinweis: Ersetze arn:aws:iam::111122223333:user/IDENTITY durch den Amazon Resource Name (ARN) des IAM-Benutzers und arn:aws:kms:aa-example-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd durch deinen KMS-ARN. Wenn sich die IAM-Identität in einem anderen AWS-Konto befindet, finde weitere Informationen unter Mein Amazon S3-Bucket hat eine Standardverschlüsselung mit einem benutzerdefinierten AWS-KMS-Schlüssel. Wie kann ich Benutzern erlauben, aus dem Bucket herunterzuladen und in den Bucket hochzuladen?
Objekt-ACL-Berechtigungen für die Vorlagendatei überprüfen
Wenn ein Zielkonto eine Vorlagendatei hochlädt, die dem Quellkonto gehört, kann der Benutzer im Zielkonto nicht auf die Vorlage im Quellkonto zugreifen. Um dieses Problem zu beheben, kopiere die Vorlagendatei in den S3-Bucket, um dem Bucket-Besitzer vollen Zugriff auf die Vorlage zu gewähren.
Um Zugriff auf den Bucket zu gewähren, führe den folgenden AWS-CLI-Befehl put-object aus:
aws s3api put-object --bucket amzn-s3-demo-bucket --key key-name --body path-to-file --acl bucket-owner-full-control
Hinweis: Ersetze amzn-s3-demo-bucket durch deinen Bucket, key-name durch deinen Schlüsselnamen und path-to-file durch den Pfad zu deiner Datei.
Weitere Informationen zu Zugriffssteuerungslisten (ACLs) findest du unter Steuern des Eigentums an Objekten und Deaktivieren von ACLs für deinen Bucket.
- Themen
- Management & Governance
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 4 Monaten