

# S3 オブジェクトロックの保持
<a name="batch-ops-retention-date"></a>

Amazon S3 バッチオペレーションを使用すると、Amazon S3 のオブジェクトに対して大規模なバッチオペレーションを実行できます。**[Object Lock の保持]** オペレーションでは、[ガバナンス] モードまたは [コンプライアンス] モードのいずれかを使用して、オブジェクトの保持日を適用できます。****これらのリテンションモードは、さまざまなレベルの保護を適用します。いずれかのリテンションモードを任意のオブジェクトバージョンに適用できます。リーガルホールドなどの保持期間に基づいて、オブジェクトの上書きや削除を防ぎます。Amazon S3 は、オブジェクトのメタデータで指定されている [保持期日] を保存し、その保持期間が経過するまで指定されたバージョンのオブジェクトを保護します。**

S3 バッチオペレーションと Object Lock を使用すると、多くの Amazon S3 のオブジェクトの保持期間を一括で管理できます。マニフェストでターゲットオブジェクトのリストを指定し、そのマニフェストをジョブの完了のためにバッチオペレーションに送信します。詳細については、S3 オブジェクトロックの「[保持期間](object-lock.md#object-lock-retention-periods)」を参照してください。

S3 バッチ操作の保持期間の適用ジョブは、完了するか、キャンセルするか、エラー状態になるまで実行されます。S3 バッチオペレーションと S3 Object Lock による保持は、1 回のリクエストで多くのオブジェクトの保持期限を追加、変更、削除する場合に使用することをお勧めします。

バッチ操作は、マニフェストのキーを処理する前に、バケットでオブジェクトロックが有効になっているかどうかを確認します。オペレーションと検証を実行するには、バッチオペレーションがユーザーの代わりに Object Lock を呼び出せるように、AWS Identity and Access Management (IAM) ロールに `s3:GetBucketObjectLockConfiguration` アクセス許可と `s3:PutObjectRetention` アクセス許可が必要です。詳細については、「[オブジェクトロックの考慮事項](object-lock-managing.md)」を参照してください。

REST API でこのオペレーションを使用する方法については、「Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html)」のオペレーションの「`S3PutObjectRetention`」を参照してください。**

AWS Command Line Interface (AWS CLI) でのこのオペレーションの使用例については、「[の使用AWS CLI](batch-ops-object-lock-retention.md#batch-ops-cli-object-lock-retention-example)」を参照してください。AWS SDK for Java の例については、「[AWS SDK for Java の使用](batch-ops-object-lock-retention.md#batch-ops-examples-java-object-lock-retention)」を参照してください。

## 制約と制限
<a name="batch-ops-retention-date-restrictions"></a>

バッチオペレーションを使用して Object Lock の保持期間を適用する場合、以下の制約と制限が適用されます。
+ S3 バッチオペレーションでは、バケットレベルでの変更は行われません。
+ ジョブを実行するバケットでバージョニングと S3 オブジェクトロックを設定する必要があります。
+ マニフェストに登録されているすべてのオブジェクトは同じバケットにあることが必要です。
+ マニフェストでオブジェクトのバージョンが明示的に指定されていない限り、オペレーションにはオブジェクトの最新バージョンが使用されます。
+ **[Object Lock の保持]** ジョブを使用するには、IAM ロールに `s3:PutObjectRetention` アクセス許可が必要です。
+ ジョブを実行している S3 バケットで Object Lock が有効になっていることを確認するには、`s3:GetBucketObjectLockConfiguration` IAM アクセス許可が必要です。
+ オブジェクトの保持期間を延長できるのは、`COMPLIANCE` モードの保持期限が適用されている場合のみであり、短縮することはできません。
+ 1 つの S3 Object Lock 保持ジョブで、最大 200 億個のオブジェクトを持つマニフェストをサポートできます。