Gewähren von Berechtigungen für Batchoperationen - Amazon Simple Storage Service

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.

Gewähren von Berechtigungen für Batchoperationen

Bevor Sie S3 Batch Operation-Aufträge erstellen und ausführen, müssen Sie die erforderlichen Berechtigungen erteilen. Um einen Amazon-S3-Batch-Vorgangsauftrag zu erstellen, ist die s3:CreateJob-Benutzerberechtigung erforderlich. Dieselbe Entität, die den Job erstellt, muss auch die iam:PassRole Berechtigung haben, die AWS Identity and Access Management (IAM-) Rolle, die für den Job angegeben ist, an Batch Operations zu übergeben.

Die folgenden Abschnitte enthalten Informationen zum Erstellen einer IAM-Rolle und zum Anhängen von Richtlinien. Allgemeine Informationen zur Angabe von IAM-Ressourcen finden Sie unter IAM-JSON-Richtlinienelemente: Ressource im IAM-Benutzerhandbuch.

Erstellen einer IAM-Rolle für S3-BatchVorgänge

Amazon S3 benötigt Berechtigungen, um S3-Batch-Vorgänge für Sie auszuführen. Sie gewähren diese Berechtigungen über eine AWS Identity and Access Management (IAM-) Rolle. Wenn Sie einen S3 Batch Operations-Job erstellen, geben Sie die IAM-Rolle an, die der Job verwenden soll. Dies kann eine bestehende IAM-Rolle sein. Oder, wenn Sie die Amazon S3-Konsole verwenden, um den Job zu erstellen, kann es sich um eine IAM-Rolle handeln, die Amazon S3 für Sie erstellt.

Wenn Sie Amazon S3 die IAM-Rolle für Sie erstellen lassen, erstellt Amazon S3 automatisch Vertrauens- und Berechtigungsrichtlinien und fügt sie der Rolle hinzu. Die Vertrauensrichtlinie ermöglicht es dem Dienstprinzipal (batchoperations.s3.amazonaws.com) von S3 Batch Operations, die Rolle zu übernehmen. Die Berechtigungsrichtlinie ermöglicht alle für die Ausführung des Jobs erforderlichen Aktionen auf der Grundlage der Einstellungen, die Sie für den Job angeben. Wenn Sie beispielsweise einen Job so konfigurieren, dass Objekte von einem Bucket in einen anderen in Ihrem Bucket kopiert werden AWS-Konto, erlaubt die Berechtigungsrichtlinie Aktionen wie s3:GetObject unds3:PutObject. Sie können die Vertrauens- und Berechtigungsrichtlinien für die Rolle überprüfen, bevor Sie den Job einreichen. Diese Option ist nur verfügbar, wenn Sie die Amazon S3 S3-Konsole verwenden, um einen Job zu erstellen, und Sie den Job so konfigurieren, dass er eine von S3 generierte Objektliste verwendet, die Filter verwendet oder auf einer Replikationskonfiguration basiert. Nachdem Sie den Job eingereicht haben, bleibt die IAM-Rolle in Ihrem Konto bestehen. Sie können sie dann erneut für nachfolgende Jobs verwenden, die denselben Vorgang ausführen, oder sie löschen, wenn die Ausführung des Jobs abgeschlossen ist.

Wenn Sie die IAM-Rolle lieber manuell erstellen möchten, können Ihnen die Richtlinienbeispiele in diesem Abschnitt bei der Erstellung der Rolle helfen. Weitere Informationen zum Erstellen und Konfigurieren von Rollen finden Sie unter IAM-Rollen im IAM-Benutzerhandbuch. Informationen zu Berechtigungen für S3-API-Operationen nach S3-Ressourcentyp finden Sie unter. Erforderliche Berechtigungen für Amazon-S3-API-Operationen Weitere Beispiele finden Sie unter Steuern von Berechtigungen für Batch Operations mithilfe von Auftragsmarkierungen undKopieren von Objekten mit S3 BatchVorgänge.

Sie können in Ihren IAM-Richtlinien auch Bedingungsschlüssel verwenden, um Zugriffsberechtigungen für S3-BatchVorgängeaufträge zu filtern. Weitere Informationen und eine vollständige Liste der IAM-Berechtigungen, -Ressourcen und -Bedingungsschlüssel für Amazon S3 finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon S3 in der Service-Authorization-Referenz.

Weitere Informationen zu den Berechtigungen für S3-API-Operationen nach S3-Ressourcentypen finden Sie unter Erforderliche Berechtigungen für Amazon-S3-API-Operationen.

Das folgende Video zeigt, wie Sie IAM-Berechtigungen für Batch Operations-Jobs mithilfe der Amazon S3 S3-Konsole einrichten.

Vertrauensrichtlinie

Sie fügen der Rolle die folgende Vertrauensrichtlinie an, um dem S3-BatchVorgängeaervice-Prinzipal zu erlauben, die IAM-Rolle zu übernehmen.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }

Anfügen von Berechtigungsrichtlinien

Je nach Art der Operation können Sie eine der folgenden Richtlinien anfügen.

Bevor Sie Berechtigungen konfigurieren, beachten Sie Folgendes:

  • Unabhängig von der Operation benötigt Amazon S3 Berechtigungen, um das Manifestobjekt aus Ihrem S3-Bucket zu lesen und optional einen Bericht in Ihren Bucket zu schreiben. Daher enthalten alle der folgenden Richtlinien diese Berechtigungen.

  • Für Manifeste von Amazon-S3-Bestandsbericht benötigt S3-Batch-Vorgänge die Berechtigung, das Manifest.json-Objekt und alle zugehörigen CSV-Datendateien zu lesen.

  • Versionsspezifische Berechtigungen wie s3:GetObjectVersion sind nur erforderlich, wenn Sie die Versions-ID der Objekte festlegen.

  • Wenn Sie S3 Batch Operations für verschlüsselte Objekte ausführen, muss die IAM-Rolle auch Zugriff auf die AWS KMS Schlüssel haben, mit denen sie verschlüsselt wurden.

  • Wenn Sie ein mit verschlüsseltes Inventarberichtsmanifest einreichen AWS KMS, muss Ihre IAM-Richtlinie die Berechtigungen "kms:GenerateDataKey" für das Objekt manifest.json "kms:Decrypt" und alle zugehörigen CSV-Datendateien enthalten.

  • Wenn der Batch Operations-Job ein Manifest in einem Bucket generiert, für den Zugriffskontrolllisten (ACLs) aktiviert sind und sich in einem anderen Bucket befindet AWS-Konto, müssen Sie die s3:PutObjectAcl Berechtigung in der IAM-Richtlinie der für den Batch-Job konfigurierten IAM-Rolle erteilen. Wenn Sie diese Berechtigung nicht angeben, schlägt der Batch-Job mit dem Fehler Error occurred when preparing manifest: Failed to write manifest fehl.

Objekte kopieren: PutObject

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-source-bucket", "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Objekt-Tags ersetzen: PutObjectTagging

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Objekt-Tags löschen: DeleteObjectTagging

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Zugriffssteuerungsliste ersetzen: PutObjectAcl

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectAcl", "s3:PutObjectVersionAcl" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Objekte wiederherstellen: RestoreObject

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:RestoreObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Object-Lock-Aufbewahrung anwenden: PutObjectRetention

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ] }, { "Effect": "Allow", "Action": [ "s3:PutObjectRetention", "s3:BypassGovernanceRetention" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ] }, { "Effect": "Allow", "Action": "s3:PutObjectLegalHold", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Bestehende Objekte replizieren: InitiateReplication mit einem von S3 generierten Manifest

Verwenden Sie diese Richtlinie, wenn Sie ein von S3 generiertes Manifest verwenden und speichern. Weitere Informationen zur Verwendung von Batch Operations zum Replizieren vorhandener Objekte finden Sie unter Replizieren vorhandener Objekte mit der Batch-Replikation.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:InitiateReplication" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] }, { "Action":[ "s3:GetReplicationConfiguration", "s3:PutInventoryConfiguration" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] }, { "Action":[ "s3:GetObject", "s3:GetObjectVersion" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*", "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] } ] }

Bestehende Objekte replizieren: InitiateReplication mit einem Benutzermanifest

Verwenden Sie diese Richtlinie, wenn Sie ein vom Benutzer bereitgestelltes Manifest verwenden. Weitere Informationen zur Verwendung von Batch Operations zum Replizieren vorhandener Objekte finden Sie unter Replizieren vorhandener Objekte mit der Batch-Replikation.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:InitiateReplication" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] }, { "Action":[ "s3:GetObject", "s3:GetObjectVersion" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Prüfsumme berechnen: ZulassenGetObject,, und GetObjectVersionRestoreObjectPutObject

Verwenden Sie diese Richtlinie, wenn Sie versuchen, die Operation Prüfsumme berechnen mit S3 Batch Operations zu verwenden. Die Berechtigungen für GetObject, GetObjectVersionund RestoreObject sind erforderlich, um die Bytes der gespeicherten Daten zu erhalten und zu lesen. Ersetzen Sie die Platzhalter für die Benutzereingaben durch Ihre eigenen Informationen. Weitere Informationen zur Compute-Prüfsumme finden Sie unter Überprüfen der Objektintegrität auf Daten im Ruhezustand in Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:RestoreObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket3/*" ] } ] }

Objektverschlüsselung aktualisieren

Sie müssen die folgende Berechtigungsrichtlinie anhängen, damit Batch Operations ein Manifest lesen, den Verschlüsselungstyp Ihrer Objekte aktualisieren und einen Abschlussbericht erstellen kann. Um diese Berechtigungsrichtlinie zu verwenden, ersetzen Sie sie durch Ihre eigenen Informationen. user input placeholders Weitere Informationen zur Verwendung dieses Vorgangs und zu den Berechtigungen, die Sie der von Ihrem IAM-Prinzipal verwendeten Rolle zuweisen müssen, finden Sie unterObjektverschlüsselung aktualisieren.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "S3BatchOperationsUpdateEncryption", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:PutObject", "s3:UpdateObjectEncryption" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-target" "arn:aws:s3:::amzn-s3-demo-bucket-target/*" ] }, { "Sid": "S3BatchOperationsPolicyForManifestFile", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-manifest/*" ] }, { "Sid": "S3BatchOperationsPolicyForCompletionReport", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-completion-report/*" ] }, { "Sid": "S3BatchOperationsPolicyManifestGeneration", "Effect": "Allow", "Action": [ "s3:PutInventoryConfiguration" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-target" ] } { "Sid": "AllowKMSOperationsForS3BatchOperations", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }