

# S3 オブジェクトロック保持コンプライアンスモードでの S3 バッチ操作の使用
<a name="batch-ops-compliance-mode"></a>

以下の例は、信頼ポリシーを作成し、オブジェクトに S3 バッチ操作と S3 オブジェクトロックの設定アクセス許可を設定する前の例に基づいています。この例では、保持モードを `COMPLIANCE` に、`retain until date` を 2025 年 1 月 1 日に設定しています。この例では、マニフェストバケット内のオブジェクトをターゲットとし、指定したレポートバケットに結果を書き込むジョブを作成します。

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

## の使用AWS CLI
<a name="batch-ops-cli-object-lock-compliance-example"></a>

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

**Example – 複数のオブジェクトに S3 Object Lock 保持コンプライアンスモードを設定する**  

```
export AWS_PROFILE='{{aws-user}}'
export AWS_DEFAULT_REGION='{{us-west-2}}'
export ACCOUNT_ID={{123456789012}}
export ROLE_ARN='arn:aws:iam::{{123456789012}}:role/{{batch_operations-objectlock}}'

read -d '' {{OPERATION}} <<EOF
{
  "S3PutObjectRetention": {
    "Retention": {
      "RetainUntilDate":"{{2025-01-01T00:00:00}}",
      "Mode":"COMPLIANCE"
    }
  }
}
EOF

read -d '' {{MANIFEST}} <<EOF
{
  "Spec": {
    "Format": "S3BatchOperations_CSV_20180820",
    "Fields": [
      "Bucket",
      "Key"
    ]
  },
  "Location": {
    "ObjectArn": "arn:aws:s3:::{{{{amzn-s3-demo-manifest-bucket}}/compliance-objects-manifest.csv}}",
    "ETag": "{{Your-manifest-ETag}}"
  }
}
EOF

read -d '' {{REPORT}} <<EOF
{
  "Bucket": "arn:aws:s3:::{{ReportBucket}}",
  "Format": "Report_CSV_20180820",
  "Enabled": true,
  "Prefix": "{{{{amzn-s3-demo-completion-report-bucket}}/compliance-objects-batch-operations}}",
  "ReportScope": "AllTasks"
}
EOF

aws \
    s3control create-job \
    --account-id "${{{ACCOUNT_ID}}}" \
    --manifest "${{{MANIFEST}}//$'\n'}" \
    --operation "${{{OPERATION}}//$'\n'/}" \
    --report "${{{REPORT}}//$'\n'}" \
    --priority 10 \
    --role-arn "${{{ROLE_ARN}}}" \
    --client-request-token "$(uuidgen)" \
    --region "${{{AWS_DEFAULT_REGION}}}" \
    --description "{{Set compliance retain-until to 1 Jul 2030}}";
```

**Example – `COMPLIANCE` モードの `retain until date` を 2025 年 1 月 15 日に延長する**  
以下の例では、`COMPLIANCE` モードの `retain until date` を 2025 年 1 月 15 日に延長します。  

```
export AWS_PROFILE='{{aws-user}}'
export AWS_DEFAULT_REGION='{{us-west-2}}'
export ACCOUNT_ID={{123456789012}}
export ROLE_ARN='arn:aws:iam::{{123456789012}}:role/{{batch_operations-objectlock}}'

read -d '' {{OPERATION}} <<EOF
{
  "S3PutObjectRetention": {
    "Retention": {
      "RetainUntilDate":"{{2025-01-15T00:00:00}}",
      "Mode":"COMPLIANCE"
    }
  }
}
EOF

read -d '' {{MANIFEST}} <<EOF
{
  "Spec": {
    "Format": "S3BatchOperations_CSV_20180820",
    "Fields": [
      "Bucket",
      "Key"
    ]
  },
  "Location": {
    "ObjectArn": "arn:aws:s3:::{{{{amzn-s3-demo-manifest-bucket}}/compliance-objects-manifest.csv}}",
    "ETag": "{{Your-manifest-ETag}}"
  }
}
EOF

read -d '' {{REPORT}} <<EOF
{
  "Bucket": "arn:aws:s3:::{{amzn-s3-demo-completion-report-bucket}}",
  "Format": "Report_CSV_20180820",
  "Enabled": true,
  "Prefix": "{{reports/compliance-objects-batch_operations}}",
  "ReportScope": "AllTasks"
}
EOF

aws \
    s3control create-job \
    --account-id "${{{ACCOUNT_ID}}}" \
    --manifest "${{{MANIFEST}}//$'\n'}" \
    --operation "${{{OPERATION}}//$'\n'/}" \
    --report "${{{REPORT}}//$'\n'}" \
    --priority 10 \
    --role-arn "${{{ROLE_ARN}}}" \
    --client-request-token "$(uuidgen)" \
    --region "${{{AWS_DEFAULT_REGION}}}" \
    --description "{{Extend compliance retention to 15 Jan 2025}}";
```

## AWS SDK for Java の使用
<a name="batch-ops-examples-java-object-lock-compliance"></a>

次の AWS SDK for Java の例は、バッチオペレーションを使用して複数のオブジェクトに S3 Object Lock 保持コンプライアンスモードを適用する方法を示しています。これには、保持モードを保持期日がある COMPLIANCE に設定し、COMPLIANCE モードの保持期日を延長する方法が含まれます。

AWS SDK for Java でバッチオペレーションを使用して複数のオブジェクトに S3 Object Lock 保持コンプライアンスモードを適用する方法の例については、「*Amazon S3 API リファレンス*」の「[Use CreateJob with an AWS SDK or CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_CreateJob_section.html)」を参照してください。