Aktivieren der S3-Objektsperre mit S3-BatchVorgänge - 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.

Aktivieren der S3-Objektsperre mit S3-BatchVorgänge

Sie können Amazon S3 Batch Operations mit S3 Object Lock verwenden, um die Aufbewahrung zu verwalten oder eine gesetzliche Aufbewahrungsfrist für viele Amazon S3 S3-Objekte gleichzeitig zu aktivieren. Sie geben die Liste der Zielobjekte in Ihrem Manifest an und senden sie zur Fertigstellung an BatchVorgänge. Weitere Informationen erhalten Sie unter Aufrechterhaltung der S3-Objektsperre und S3-Objektsperre aufgrund gesetzlicher Aufbewahrungsfristen.

Die folgenden Beispiele zeigen, wie Sie eine Rolle AWS Identity and Access Management (IAM) mit S3 Batch Operations-Berechtigungen erstellen und die Rollenberechtigungen aktualisieren, um Jobs zu erstellen, die Object Lock aktivieren. Sie benötigen außerdem ein CSV Manifest, das die Objekte für Ihren S3 Batch Operations-Job identifiziert. Weitere Informationen finden Sie unter Angeben eines Manifests.

Um die folgenden Beispiele zu verwenden, ersetzen Sie das Platzhalter für Benutzereingaben mit Ihren eigenen Informationen.

  1. Erstellen Sie eine IAM Rolle und weisen Sie S3 Batch Operationsberechtigungen zur Ausführung zu.

    Dieser Schritt ist für alle S3-BatchVorgängeaufträge erforderlich.

    export AWS_PROFILE='aws-user' read -d '' batch_operations_trust_policy <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "batchoperations.s3.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } EOF aws iam create-role --role-name batch_operations-objectlock \ --assume-role-policy-document "${batch_operations_trust_policy}"
  2. Richten Sie S3-Batch-Vorgänge zur Ausführung mit S3-Objektsperre ein.

    In diesem Schritt lassen Sie der Rolle Folgendes zu:

    1. Führen Sie die Objektsperre in dem S3-Bucket aus, der die Zielobjekte enthält, für die Batch-Vorgänge ausgeführt werden soll.

    2. Lesen Sie den S3-Bucket, in dem sich die CSV Manifestdatei und die Objekte befinden.

    3. Schreiben Sie die Ergebnisse des S3-Batch-Vorgangsauftrags in den Berichts-Bucket.

    read -d '' batch_operations_permissions <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::{{amzn-s3-demo-manifest-bucket}}" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::{{amzn-s3-demo-manifest-bucket}}/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::{{amzn-s3-demo-completion-report-bucket}}/*" ] } ] } EOF aws iam put-role-policy --role-name batch_operations-objectlock \ --policy-name object-lock-permissions \ --policy-document "${batch_operations_permissions}"

Die folgenden Beispiele zeigen, wie Sie eine IAM Rolle mit S3 Batch Operations-Berechtigungen erstellen und die Rollenberechtigungen aktualisieren, um Jobs zu erstellen, die Object Lock aktivieren, mithilfe von AWS SDK for Java. Sie müssen auch über ein CSV-Manifest verfügen, das die Objekte für Ihren S3-Batch-Vorgangsauftrag identifiziert. Weitere Informationen finden Sie unter Angeben eines Manifests.

Führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine IAM Rolle und weisen Sie S3 Batch Operationsberechtigungen zur Ausführung zu. Dieser Schritt ist für alle S3-BatchVorgängeaufträge erforderlich.

  2. Richten Sie S3-Batch-Vorgänge zur Ausführung mit S3-Objektsperre ein.

    Sie lassen der Rolle Folgendes zu:

    1. Führen Sie die Objektsperre in dem S3-Bucket aus, der die Zielobjekte enthält, für die Batch-Vorgänge ausgeführt werden soll.

    2. Lesen Sie den S3-Bucket, in dem sich die CSV Manifestdatei und die Objekte befinden.

    3. Schreiben Sie die Ergebnisse des S3-Batch-Vorgangsauftrags in den Berichts-Bucket.

public void createObjectLockRole() { final String roleName = "batch_operations-object-lock"; final String trustPolicy = "{" + " \"Version\": \"2012-10-17\", " + " \"Statement\": [ " + " { " + " \"Effect\": \"Allow\", " + " \"Principal\": { " + " \"Service\": [" + " \"batchoperations.s3.amazonaws.com\"" + " ]" + " }, " + " \"Action\": \"sts:AssumeRole\" " + " } " + " ]" + "}"; final String bopsPermissions = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [" + " {" + " \"Effect\": \"Allow\"," + " \"Action\": \"s3:GetBucketObjectLockConfiguration\"," + " \"Resource\": [" + " \"arn:aws:s3:::amzn-s3-demo-manifest-bucket\"" + " ]" + " }," + " {" + " \"Effect\": \"Allow\"," + " \"Action\": [" + " \"s3:GetObject\"," + " \"s3:GetObjectVersion\"," + " \"s3:GetBucketLocation\"" + " ]," + " \"Resource\": [" + " \"arn:aws:s3:::amzn-s3-demo-manifest-bucket/*\"" + " ]" + " }," + " {" + " \"Effect\": \"Allow\"," + " \"Action\": [" + " \"s3:PutObject\"," + " \"s3:GetBucketLocation\"" + " ]," + " \"Resource\": [" + " \"arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*\"" + " ]" + " }" + " ]" + "}"; final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); final CreateRoleRequest createRoleRequest = new CreateRoleRequest() .withAssumeRolePolicyDocument(bopsPermissions) .withRoleName(roleName); final CreateRoleResult createRoleResult = iam.createRole(createRoleRequest); final PutRolePolicyRequest putRolePolicyRequest = new PutRolePolicyRequest() .withPolicyDocument(bopsPermissions) .withPolicyName("batch_operations-permissions") .withRoleName(roleName); final PutRolePolicyResult putRolePolicyResult = iam.putRolePolicy(putRolePolicyRequest); }