

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 S3 批次作業啟用 S3 物件鎖定
<a name="batch-ops-object-lock"></a>

您可以搭配 S3 物件鎖定使用 Amazon S3 Batch Operations 來管理保留，或一次為多個 Amazon S3 物件啟用法務保存。您可以在資訊清單中指定目標物件的清單，並提交至批次操作以便完成。如需詳細資訊，請參閱[S3 物件鎖定保留](batch-ops-retention-date.md)及[S3 物件鎖定法務保存](batch-ops-legal-hold.md)。

下列範例示範如何建立具有 S3 批次操作許可的 AWS Identity and Access Management (IAM) 角色，並更新角色許可以建立啟用物件鎖定的任務。您也必須具有識別 S3 Batch Operations 作業物件的 `CSV` 資訊清單。如需詳細資訊，請參閱[指定資訊清單](batch-ops-create-job.md#specify-batchjob-manifest)。

若要使用下列範例，請以您自己的資訊取代 *`user input placeholders`*。

## 使用 AWS CLI
<a name="batchops-example-cli-object-lock"></a>

1. 建立 IAM 角色並指派要執行的 S3 批次操作許可。

   所有 S3 批次操作任務都需要此步驟。

   ```
   export AWS_PROFILE='aws-user'
   
   read -d '' batch_operations_trust_policy <<EOF
   {
     "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
     "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}"
   ```

1. 設定具有 S3 物件鎖定的 S3 批次操作以便執行。

   在此步驟中，您允許角色執行下列動作：

   1. 對包含要執行批次操作的目標物件的 S3 儲存貯體執行物件鎖定。

   1. 讀取資訊清單 CSV 檔案和物件所在的 S3 儲存貯體。

   1. 將 S3 Batch Operations 任務的結果寫入報告儲存貯體。

   ```
   read -d '' batch_operations_permissions <<EOF
   {
       "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
       "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}"
   ```

## 使用適用於 Java 的 AWS 開發套件
<a name="batchops-examples-java-object-lock"></a>

下列範例示範如何使用 適用於 Java 的 AWS SDK建立具有 S3 Batch Operations 許可權的 IAM 角色，並更新角色權限以建立啟用物件鎖定的作業。您也必須擁有能識別用於 S3 批次操作任務之物件的 `CSV` 資訊清單。如需詳細資訊，請參閱[指定資訊清單](batch-ops-create-job.md#specify-batchjob-manifest)。

執行以下步驟：

1. 建立 IAM 角色並指派要執行的 S3 批次操作許可。所有 S3 批次操作任務都需要此步驟。

1. 設定具有 S3 物件鎖定的 S3 批次操作以便執行。

   您允許角色執行下列動作：

   1. 對包含要執行批次操作的目標物件的 S3 儲存貯體執行物件鎖定。

   1. 讀取資訊清單 CSV 檔案和物件所在的 S3 儲存貯體。

   1. 將 S3 Batch Operations 任務的結果寫入報告儲存貯體。

如需示範如何使用適用於 Java 的 AWS SDK 使用 S3 批次操作來建立 IAM 角色以啟用 S3 物件鎖定的程式碼範例，請參閱*AWS 適用於 Java 的 SDK 2.x 程式碼範例*中的 [CreateObjectLockRole.java](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javav2/example_code/s3/src/main/java/com/example/s3/batch/CreateObjectLockRole.java)。