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

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 die Aufgabe erstellt, muss auch die iam:PassRole-Berechtigung haben, die AWS Identity and Access Management (IAM)-Rolle, die für die Aufgabe angegeben ist, an Batch Operations zu übergeben.

Allgemeine Informationen zur Angabe von IAM-Ressourcen finden Sie in den IAM JSON-Richtlinienelements-Ressourcen im IAM-Benutzerhandbuch. Die folgenden Abschnitte enthalten Informationen zum Erstellen einer IAM-Rolle und zum Anhängen von Richtlinien.

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. Dieser Abschnitt enthält Beispiele zu den Vertrauens- und Berechtigungsrichtlinien, die Sie beim Erstellen einer IAM-Rolle verwenden. Weitere Informationen finden Sie unter IAM-Rollen im IAM-Benutzerhandbuch. Beispiele finden Sie unter Steuern von Berechtigungen für Batch Operations mithilfe von Auftragsmarkierungen und Kopieren 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 Aufträge für Batchoperationen über die AWS-Managementkonsole 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-Vorgänge für verschlüsselte Objekte ausführen, muss die IAM-Rolle auch Zugriff auf die AWS KMS-Schlüssel haben, die zum Verschlüsseln verwendet werden.

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

  • Wenn die Batch-Operations-Aufgabe ein Manifest in einem Bucket generiert, für den Zugriffssteuerungslisten (ACLs) aktiviert sind und der sich in einem anderen AWS-Konto befindet, müssen Sie die s3:PutObjectAcl-Berechtigung in der IAM-Richtlinie der IAM-Rolle erteilen, die für den Batch-Job konfiguriert wurde. 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: Erlaubt GetObject, GetObjectVersion, RestoreObjectund PutObject

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/*" ] } ] }