Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Warum erhalten kontoübergreifende Benutzer die Fehlermeldung „Zugriff verweigert“, wenn sie versuchen, auf meine S3-Objekte zuzugreifen, die ich mit einem vom Kunden verwalteten AWS KMS-Schlüssel verschlüsselt habe?
Mein Amazon Simple Storage Service (Amazon S3)-Bucket ist mit einem vom Kunden verwalteten AWS Key Management Service (AWS KMS)-Schlüssel verschlüsselt. Wenn Benutzer von einem anderen AWS-Konto aus versuchen, auf die Objekte in meinem Bucket zuzugreifen, erhalten sie die Fehlermeldung Zugriff verweigert.
Kurzbeschreibung
Um einem Benutzer in Konto B Zugriff auf einen mit AWS KMS verschlüsselten Bucket in Konto A zu gewähren, wenden Sie die folgenden Berechtigungen an:
- Die Amazon S3-Richtlinie in Konto A muss Zugang zu Konto B gewähren.
- Der von AWS verwaltete Schlüssel in Konto A muss sich in derselben AWS-Region befinden wie der S3-Bucket in Konto A.
- Die AWS KMS-Schlüsselrichtlinie in Konto A muss dem Benutzer in Konto B Zugriff gewähren.
- Die AWS Identity and Access Management (IAM)-Richtlinie in Konto B muss dem Benutzer Zugriff auf den Bucket und den Schlüssel in Konto A gewähren.
Um den Fehler Zugriff verweigert zu beheben, überprüfen Sie, ob diese Berechtigungen korrekt eingerichtet sind.
Wichtig: Bei vom Kunden verwalteten Schlüsselrichtlinien können Sie die Schlüsselrichtlinie nur über das Konto ändern, mit dem die Richtlinie erstellt wurde.
Sie müssen einen vollqualifizierten KMS-Schlüssel-ARN für die Bucket-Verschlüsselungseinstellung verwenden. Wenn Sie einen KMS-Schlüsselalias verwenden, löst AWS KMS den Schlüssel nur innerhalb des Kontos auf, dem der Bucket gehört (Konto A).
Das Folgende ist ein Beispiel für einen vollqualifizierten AWS-KMS-Schlüssel-ARN, den Sie für die Bucket-Verschlüsselung verwenden:
"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
Das Folgende ist ein Beispiel für einen AWS KMS-Schlüsselalias, den Sie nicht für die Bucket-Verschlüsselung verwenden:
arn:aws:kms:us-west-2:111122223333:alias/alias-name
Behebung
Die Bucket-Richtlinie in Konto A muss dem Benutzer in Konto B Zugriff gewähren
Überprüfen Sie von Konto A aus die Bucket-Richtlinie, um sich zu vergewissern, dass es eine Erklärung gibt, die den Zugriff von der Konto-ID von Konto B aus ermöglicht.
Diese Bucket-Richtlinie ermöglicht beispielsweise s3:getObject den Zugriff auf die Konto-ID 111122223333:
{ "Id": "ExamplePolicy1", "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt1", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Principal": { "AWS": [ "111122223333" ] } } ] }
Die AWS KMS-Schlüsselrichtlinie in Konto A muss dem Benutzer in Konto B Zugriff gewähren
Die AWS-KMS-Schlüsselrichtlinie muss dem Benutzer in Konto B Berechtigungen für die Aktion kms:Decrypt gewähren. Um beispielsweise nur einem IAM-Benutzer oder einer IAM-Rolle Schlüsselzugriff zu gewähren, verwenden Sie eine Schlüsselrichtlinie, die der folgenden ähnelt:
{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/role_name" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*" }
Verwenden Sie von Konto A aus die Richtlinienansicht der AWS-Managementkonsole, um die Schlüsselrichtlinie zu überprüfen. Suchen Sie in der Schlüsselrichtlinie nach „Sid“: „Erlaube die Verwendung des Schlüssels“. Bestätigen Sie dann, dass der Benutzer in Konto B in dieser Erklärung als Principal aufgeführt ist.
Falls du die Aussage ** „Sid“ nicht siehst: „Verwendung des Schlüssels zulassen“** und verwenden Sie dann die Standardansicht der AWS-Managementkonsole, um die Schlüsselrichtlinie zu überprüfen. Fügen Sie dann die Konto-ID von Konto B als externes Konto, das Zugriff auf den Schlüssel hat, hinzu.
Die IAM-Benutzerrichtlinie in Konto B muss dem Benutzer Zugriff sowohl auf den Bucket als auch auf den Schlüssel in Konto A gewähren
Führen Sie von Konto B aus die folgenden Schritte aus:
- Öffnen Sie die IAM-Konsole.
- Öffnen Sie den IAM-Benutzer oder die dem Benutzer zugeordnete IAM-Rolle in Konto B.
- Sehen Sie sich die Liste der Berechtigungsrichtlinien an, die auf den IAM-Benutzer oder Ihre IAM-Rolle angewendet wurden.
- Stellen Sie sicher, dass Richtlinien angewendet werden, die Zugriff sowohl auf den Bucket als auch auf den Schlüssel gewähren.
**Hinweis:**Wenn der IAM-Benutzer oder die IAM-Rolle in Konto B bereits über Administratorzugriff verfügt, müssen Sie keinen Zugriff auf den Schlüssel gewähren. Die folgende Beispielrichtlinie gewährt dem IAM-Benutzer in Konto B Zugriff auf Objekte und den KMS-Schlüssel zum Entschlüsseln von Objekten in einem Bucket:{ "Version": "2012-10-17", "Statement": [{ "Sid": "ExampleStmt1", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" }, { "Sid": "ExampleStmt2", "Action": [ "kms:Decrypt" ], "Effect": "Allow", "Resource": "arn:aws:kms:us-west-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }
Weitere Informationen zum Hinzufügen oder Korrigieren der Berechtigungen des IAM-Benutzers finden Sie unter Ändern von Berechtigungen für einen IAM-Benutzer. .
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren