Habilitación de Bloqueo de objetos en S3 mediante Operaciones por lotes de S3
Puede utilizar Operaciones por lotes de Amazon S3 con Bloqueo de objetos de S3 para administrar la retención o habilitar una retención legal para varios objetos de Amazon S3 a la vez. Especifique la lista de objetos de destino en el manifiesto y envíela a Operaciones por lotes para su finalización. Para obtener más información, consulte Retención de bloqueo de objetos S3 y Bloqueo de objetos de retención legal en S3.
En los siguientes ejemplos, se muestra cómo crear un rol de AWS Identity and Access Management (IAM) con permisos de Operaciones por lotes de S3 y actualizar los permisos del rol para crear trabajos que habilitan Bloqueo de objetos. También debe tener un manifiesto CSV
que identifique los objetos para su trabajo de Operaciones por lotes de S3. Para obtener más información, consulte Especificar un manifiesto.
Para utilizar los siguientes ejemplos, reemplace los
con su propia información. user input
placeholders
-
Cree un rol de IAM y asigne permisos de Operaciones por lotes de S3 para su ejecución.
Este paso es necesario para todos los trabajos de Operaciones por lotes de 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-namebatch_operations-objectlock
\ --assume-role-policy-document "${batch_operations_trust_policy
}" -
Configure Operaciones por lotes de S3 con Bloqueo de objetos en S3 para su ejecución.
En este paso, permite que el rol haga lo siguiente:
-
Ejecute el bloqueo de objetos en el bucket de S3 que contenga los objetos de destino en los que desee ejecutar Operaciones por lotes.
-
Lea el bucket de S3 donde se encuentran el archivo CSV de manifiesto y los objetos.
-
Escriba los resultados del trabajo de Operaciones por lotes de S3 en el bucket de informes.
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-namebatch_operations-objectlock
\ --policy-nameobject-lock-permissions
\ --policy-document "${batch_operations_permissions
}" -
En los siguientes ejemplos, se muestra cómo crear un rol de IAM con permisos de Operaciones por lotes de S3 y actualizar los permisos de rol para crear trabajos que habilitan Bloqueo de objetos mediante AWS SDK for Java. También debe tener un manifiesto CSV
que identifique los objetos para su trabajo de Operaciones por lotes de S3. Para obtener más información, consulte Especificar un manifiesto.
Siga estos pasos:
-
Cree un rol de IAM y asigne permisos de Operaciones por lotes de S3 para su ejecución. Este paso es necesario para todos los trabajos de Operaciones por lotes de S3.
-
Configure Operaciones por lotes de S3 con Bloqueo de objetos en S3 para su ejecución.
Permite que el rol realice lo siguiente:
-
Ejecute el bloqueo de objetos en el bucket de S3 que contenga los objetos de destino en los que desee ejecutar Operaciones por lotes.
-
Lea el bucket de S3 donde se encuentran el archivo CSV de manifiesto y los objetos.
-
Escriba los resultados del trabajo de Operaciones por lotes de S3 en el bucket de informes.
-
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); }