Habilitar o Bloqueio de objetos do S3 usando o Operações em lote do S3 - Amazon Simple Storage Service

Habilitar o Bloqueio de objetos do S3 usando o Operações em lote do S3

É possível usar o Operações em Lote do Amazon S3 com o Bloqueio de Objetos do S3 para gerenciar a retenção ou habilitar uma retenção legal para vários objetos do Amazon S3 de uma só vez. Especifique a lista de objetos de destino no manifesto e envie-a para as operações em lote para conclusão. Para ter mais informações, consulte Retenção do Bloqueio de objetos do S3 e Retenção legal do Bloqueio de objetos do S3.

Os exemplos a seguir mostram como criar um perfil do AWS Identity and Access Management (IAM) com permissões do Operações em Lote do S3 e atualizar as permissões do perfil para criar trabalhos que habilitem o Bloqueio de Objetos. Você também deve ter um manifesto CSV que identifica os objetos para o trabalho do Operações em Lote do S3. Para ter mais informações, consulte Especificar um manifesto.

Para usar os exemplos a seguir, substitua user input placeholders por suas próprias informações.

  1. Crie uma função do IAM e atribua permissões de operações em lote do S3 para executar.

    Esta etapa é necessária para todos os trabalhos de operações em lote do S3.

    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. Configure operações em lote do S3 com bloqueio de objeto do S3 para executar.

    Nesta etapa, permita que a função faça o seguinte:

    1. Execute o bloqueio de objeto no bucket do S3 que contém os objetos de destino nos quais você deseja que as operações em lote sejam executadas.

    2. Leia o bucket do S3 no qual estão localizados o arquivo CSV de manifesto e os objetos.

    3. Grave os resultados do trabalho de operações em lote do S3 no bucket de relatórios.

    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}"

Os exemplos a seguir mostram como criar um perfil do IAM com permissões do Operações em Lote do S3 e atualizar as permissões de perfil para criar trabalhos que habilitem o Bloqueio de Objetos usando o AWS SDK for Java. Você também deve ter um manifesto CSV identificando os objetos para o trabalho de operações em lote do S3. Para ter mais informações, consulte Especificar um manifesto.

Siga estas etapas:

  1. Crie uma função do IAM e atribua permissões de operações em lote do S3 para executar. Esta etapa é necessária para todos os trabalhos de operações em lote do S3.

  2. Configure operações em lote do S3 com bloqueio de objeto do S3 para executar.

    Permita que a função faça o seguinte:

    1. Execute o bloqueio de objeto no bucket do S3 que contém os objetos de destino nos quais você deseja que as operações em lote sejam executadas.

    2. Leia o bucket do S3 no qual estão localizados o arquivo CSV de manifesto e os objetos.

    3. Grave os resultados do trabalho de operações em lote do S3 no bucket de relatórios.

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); }