AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Wie erlaube ich Benutzern, von einem Amazon S3-Bucket, den ich mit einem vom Kunden verwalteten AWS-KMS-Schlüssel verschlüsselt habe, herunterzuladen und in einen Amazon S3-Bucket hochzuladen?
Ich habe meinen Amazon Simple Storage Service (Amazon S3)-Bucket so eingerichtet, dass er die Standardverschlüsselung mit einem vom Kunden verwalteten AWS Key Management Service (AWS KMS)-Schlüssel verwendet. Ich möchte einem Benutzer von AWS Identity and Access Management (IAM) erlauben, Objekte aus dem Bucket herunterzuladen und Objekte in den Bucket hochzuladen.
Lösung
Ändere zunächst die AWS-KMS-Schlüsselrichtlinie. Ändere dann die identitätsbasierte Richtlinie für den IAM-Benutzer. Wenn sich der IAM-Benutzer in einem anderen Konto als dem S3-Bucket befindet, musst du auch die Bucket-Richtlinie ändern.
Ändere die Schlüsselrichtlinie
Führe die folgenden Schritte aus:
-
Öffne die AWS-KMS-Konsole.
-
Wähle im Navigationsbereich Vom Kunden verwaltete Schlüssel aus und wähle dann deinen Schlüssel in der Liste der Schlüssel aus.
-
Wähle die Registerkarte Schlüsselrichtlinie aus, um das Richtliniendokument anzuzeigen.
Hinweis: Wenn du die AWS-KMS-Konsole verwendet hast, um den vom Kunden verwalteten Schlüssel zu erstellen, musst du auf der Registerkarte Schlüsselrichtlinie die Option Zur Richtlinienansicht wechseln wählen, um das Richtliniendokument anzuzeigen. -
Wähle Bearbeiten aus und füge dann der Schlüsselrichtlinie die folgende Anweisung hinzu, um die Berechtigungen kms:GenerateDataKey und kms:Decrypt zu gewähren:
{ "Sid": "ExampleStmt", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Jane" }, "Resource": "*" }Hinweis: Die vorhergehende Beispielrichtlinienanweisung enthält nur die mindestens erforderlichen Berechtigungen zum Herunterladen und Hochladen von Objekten in einen verschlüsselten S3-Bucket. Du kannst je nach Anwendungsfall weitere Berechtigungen hinzufügen.
Identitätsbasierte Richtlinie für denselben Kontozugriff ändern
Führe die folgenden Schritte aus:
-
Öffne die IAM-Konsole.
-
Hänge die folgende Richtlinie an den IAM-Benutzer an, damit der Benutzer Objekte aus dem Bucket hoch- und herunterladen kann:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }Hinweis: Ersetze den Wert Ressource durch den Amazon-Ressourcennamen (ARN) des Buckets.Der Platzhalter (*) steht für das Objekt im Bucket.
Wichtig: Eine explizite Deny-Anweisung in einer Bucket-Richtlinie blockiert die Berechtigungen, die eine identitätsbasierte Richtlinie gewährt. Überprüfe die Bucket-Richtlinie, um sicherzustellen, dass es keine ausdrückliche Deny-Anweisung gibt, die mit der identitätsbasierten Richtlinie in Konflikt steht.
Identitätsbasierte Richtlinie und Bucket-Richtlinie für den kontoübergreifenden Zugriff ändern
Wichtig: Du kannst kontoübergreifenden Zugriff für einen vom Kunden verwalteten Schlüssel gewähren, nicht jedoch für einen von AWS verwalteten Schlüssel. Du kannst die Schlüsselrichtlinie eines von AWS verwalteten Schlüssels nicht ändern.
Führe die folgenden Schritte aus:
-
Öffne die IAM-Konsole im IAM-Benutzerkonto.
-
Hänge die folgende Richtlinie an den IAM-Benutzer an, damit der Benutzer Objekte hoch- und herunterladen und den AWS KMS-Schlüssel verwenden kann:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DownloadandUpload", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:PutObject", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" }, { "Sid": "ListBucket", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" }, { "Sid": "KMSAccess", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd" } ] }Hinweis: Ersetze die Werte für Ressource durch die ARNs für deinen Bucket und den AWS-KMS-Schlüssel. Der Platzhalter (*) steht für das Objekt im Bucket.
-
Öffne die Amazon S3-Konsole in dem Konto, dem der S3-Bucket gehört.
-
Füge der Bucket-Richtlinie die folgende Anweisung hinzu, um dem IAM-Benutzer Zugriff auf den Bucket zu gewähren:
{ "Id": "Policy1584399307003", "Version": "2012-10-17", "Statement": [ { "Sid": "DownloadandUpload", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:PutObject", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/Jane" ] } }, { "Sid": "ListBucket", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/Jane" ] } } ] }Hinweis: Ersetze die ID durch die ID deiner Bucket-Richtlinie, den Wert für Prinzipal durch den ARN des IAM-Benutzers und die Werte für Ressource durch die ARNs für deinen Bucket.
Zusätzlich zu den mindestens erforderlichen Berechtigungen für den kontoübergreifenden Zugriff kannst du die s3:PutObjectAcl-Berechtigung gewähren, damit der IAM-Benutzer die Zugriffssteuerungsliste (ACL) für ein Objekt festlegen kann. Weise dann dem Bucket-Konto die vordefinierte ACL bucket-owner-full-control zu. Du kannst auch die s3:ListBucket-Berechtigung erteilen, die erforderlich ist, um S3-Verzeichnisse oder -Präfixe zu synchronisieren und Objekte zwischen Buckets zu kopieren.
Ähnliche Informationen
Schlüssel aktivieren und deaktivieren
Verwendung von IAM-Richtlinien mit AWS KMS
Lese- und Schreibzugriff auf Amazon S3-Bucket-Objekte gewähren
ACLs für alle neuen Buckets deaktivieren und Objektbesitz erzwingen
- Themen
- Storage
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 5 Monaten