可以将 Amazon S3 批量操作与 S3 对象锁定结合使用,以便同时管理许多 Amazon S3 对象的保留。您可以在清单中指定目标对象的列表并将该列表提交到分批操作以完成操作。有关更多信息,请参阅S3 对象锁定保留 和S3 对象锁定依法保留。
以下示例说明如何创建具有 S3 批量操作权限的 AWS Identity and Access Management(IAM)角色,并更新角色权限来包含 s3:PutObjectRetention
权限,以便您可以对清单存储桶中的对象运行 S3 对象锁定保留。还必须有一个 CSV
清单来标识 S3 批量操作任务的对象。有关更多信息,请参阅 指定清单。
要使用以下示例,请将
替换为您自己的信息。user input
placeholders
以下 AWS CLI 示例说明如何使用批量操作跨多个对象应用 S3 对象锁定保留。
export AWS_PROFILE='
aws-user
' read -d ''retention_permissions
<<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectRetention" ], "Resource": [ "arn:aws:s3:::{{amzn-s3-demo-manifest-bucket
}}/*" ] } ] } EOF aws iam put-role-policy --role-namebatch_operations-objectlock
--policy-nameretention-permissions
--policy-document "${retention_permissions
}"
以下AWS SDK for Java 示例说明如何使用批量操作跨多个对象应用 S3 对象锁定保留。
public void allowPutObjectRetention() {
final String roleName = "batch_operations-object-lock
";
final String retentionPermissions = "{" +
" \"Version\": \"2012-10-17\"," +
" \"Statement\": [" +
" {" +
" \"Effect\": \"Allow\"," +
" \"Action\": [" +
" \"s3:PutObjectRetention\"" +
" ]," +
" \"Resource\": [" +
" \"arn:aws:s3:::amzn-s3-demo-manifest-bucket
*\"" +
" ]" +
" }" +
" ]" +
"}";
final AmazonIdentityManagement iam =
AmazonIdentityManagementClientBuilder.defaultClient();
final PutRolePolicyRequest putRolePolicyRequest = new PutRolePolicyRequest()
.withPolicyDocument(retentionPermissions)
.withPolicyName("retention-permissions
")
.withRoleName(roleName);
final PutRolePolicyResult putRolePolicyResult = iam.putRolePolicy(putRolePolicyRequest);
}