Abilitazione del blocco oggetti S3 utilizzando S3 Batch Operations - Amazon Simple Storage Service

Abilitazione del blocco oggetti S3 utilizzando S3 Batch Operations

È possibile utilizzare le operazioni in batch S3 con il blocco oggetti S3 per gestire la conservazione o abilitare un blocco di carattere per molti oggetti Amazon S3 contemporaneamente. Specifica l'elenco degli oggetti di destinazione nel manifest e inviarlo alle operazioni in batch per il completamento. Per ulteriori informazioni, consulta le sezioni Conservazione Blocco oggetto S3 e Blocco di carattere legale del blocco oggetti S3.

Negli esempi seguenti viene illustrato come creare un ruolo IAM con autorizzazioni S3 Batch Operations e aggiornare le autorizzazioni del ruolo per creare processi che abilitano il blocco oggetti. Negli esempi, sostituire qualsiasi valore delle variabili con valori adatti alle proprie esigenze. È inoltre necessario disporre di un manifest CSV che identifichi gli oggetti per il processo di operazioni in batch S3. Per ulteriori informazioni, consulta la sezione Specifica di un manifest.

  1. Creare un ruolo IAM e assegnare autorizzazioni delle operazioni in batch S3 per l'esecuzione.

    Questa fase è necessaria per tutti i processi di operazioni in batch S3.

    export AWS_PROFILE='aws-user' read -d '' bops_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 bops-objectlock --assume-role-policy-document "${bops_trust_policy}"
  2. Configurare le operazioni in batch S3 con il blocco oggetti S3 per l'esecuzione.

    In questa fase è possibile consentire al ruolo di eseguire le operazioni seguenti:

    1. Eseguire il blocco oggetti sul bucket S3 che contiene gli oggetti di destinazione su cui eseguire le operazioni in batch.

    2. Leggere il bucket S3 in cui si trovano il file manifest CSV e gli oggetti.

    3. Scrivere i risultati del processo di operazioni in batch S3 nel bucket di reporting.

    read -d '' bops_permissions <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::{{ManifestBucket}}" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::{{ManifestBucket}}/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::{{ReportBucket}}/*" ] } ] } EOF aws iam put-role-policy --role-name bops-objectlock --policy-name object-lock-permissions --policy-document "${bops_permissions}"

Negli esempi seguenti viene illustrato come creare un ruolo IAM con autorizzazioni delle operazioni in batch S3 e aggiornare le autorizzazioni del ruolo per creare processi che abilitano il blocco oggetti tramite la AWS SDK for Java. Nel codice, sostituire qualsiasi valore delle variabili con valori adatti alle proprie esigenze. È inoltre necessario disporre di un manifest CSV che identifichi gli oggetti per il processo di operazioni in batch S3. Per ulteriori informazioni, consulta la sezione Specifica di un manifest.

Completa la seguente procedura:

  1. Creare un ruolo IAM e assegnare autorizzazioni delle operazioni in batch S3 per l'esecuzione. Questa fase è necessaria per tutti i processi di operazioni in batch S3.

  2. Configurare le operazioni in batch S3 con il blocco oggetti S3 per l'esecuzione.

    Consenti al ruolo di eseguire le seguenti operazioni:

    1. Eseguire il blocco oggetti sul bucket S3 che contiene gli oggetti di destinazione su cui eseguire le operazioni in batch.

    2. Leggere il bucket S3 in cui si trovano il file manifest CSV e gli oggetti.

    3. Scrivere i risultati del processo di operazioni in batch S3 nel bucket di reporting.

public void createObjectLockRole() { final String roleName = "bops-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:::ManifestBucket\"" + " ]" + " }," + " {" + " \"Effect\": \"Allow\"," + " \"Action\": [" + " \"s3:GetObject\"," + " \"s3:GetObjectVersion\"," + " \"s3:GetBucketLocation\"" + " ]," + " \"Resource\": [" + " \"arn:aws:s3:::ManifestBucket/*\"" + " ]" + " }," + " {" + " \"Effect\": \"Allow\"," + " \"Action\": [" + " \"s3:PutObject\"," + " \"s3:GetBucketLocation\"" + " ]," + " \"Resource\": [" + " \"arn:aws:s3:::ReportBucket/*\"" + " ]" + " }" + " ]" + "}"; 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("bops-permissions") .withRoleName(roleName); final PutRolePolicyResult putRolePolicyResult = iam.putRolePolicy(putRolePolicyRequest); }