バッチ操作を使用したオブジェクトロック保持の設定 - Amazon Simple Storage Service

バッチ操作を使用したオブジェクトロック保持の設定

Amazon S3 バッチオペレーションと S3 Object Lock を使用すると、多くの Amazon S3 のオブジェクトの保持期間を一括で管理できます。マニフェストでターゲットオブジェクトのリストを指定し、そのマニフェストをジョブの完了のためにバッチ操作に送信します。詳細については、S3 オブジェクトロックの保持およびS3 オブジェクトロックのリーガルホールドを参照してください。

次の例は、S3 バッチオペレーションのアクセス許可を持つ AWS Identity and Access Management (IAM) ロールを作成し、マニフェストバケット内のオブジェクトで S3 Object Lock 保持を実行できるように、s3:PutObjectRetention アクセス許可を含めるようロールアクセス許可を更新する方法を示しています。S3 バッチオペレーションジョブのオブジェクトを識別する CSV マニフェストも必要です。詳細については、「マニフェストの指定」を参照してください。

次の例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。

次の AWS CLI の例は、バッチオペレーションを使用して、複数のオブジェクトに S3 Object Lock 保持を適用する方法を示しています。

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-name batch_operations-objectlock --policy-name retention-permissions --policy-document "${retention_permissions}"

次の AWS SDK for Java の例は、バッチオペレーションを使用して、複数のオブジェクトに S3 Object Lock 保持を適用する方法を示しています。

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