

# S3 对象锁定依法保留
<a name="batch-ops-legal-hold"></a>

可以使用 Amazon S3 批量操作对 Amazon S3 对象执行大规模批量操作。可以使用**对象锁定法定保留**操作来对于对象版本实施法定保留。与设置保留期限相似，依法保留可防止对象版本被覆盖或删除。但是，法定保留没有关联的保留期，在移除之前将一直有效。

您可以将 S3 分批操作与对象锁定一起使用，以便同时添加对很多 Amazon S3 对象的依法保留。为此，请在清单中指定目标对象的列表，并将该列表提交给批量操作。S3 批量操作**对象锁定法定保留**任务将持续运行，直至完成、取消或达到失败状态。

在处理清单中的任何对象之前，S3 批量操作会验证是否已在您的 S3 存储桶上启用对象锁定。要执行对象操作和存储桶级别验证，S3 批量操作需要 AWS Identity and Access Management（IAM）角色中的 `s3:PutObjectLegalHold` 和 `s3:GetBucketObjectLockConfiguration`。这些权限可让 S3 批量操作代表您调用 S3 对象锁定。

当您创建 S3 批量操作任务来移除法定保留时，只需将 `Off` 指定为法定保留状态。有关更多信息，请参阅 [对象锁定注意事项](object-lock-managing.md)。

有关如何将此操作与 Amazon S3 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) 操作中的 `S3PutObjectLegalHold`。

有关使用此操作的示例，请参阅[使用适用于 Java 的 AWS 开发工具包](batch-ops-legal-hold-off.md#batch-ops-examples-java-object-lock-legalhold)。

## 限制和局限性
<a name="batch-ops-legal-hold-restrictions"></a>

使用批量操作来应用或移除对象锁定法定保留时，以下限制和局限性适用：
+ S3 批量操作不会进行任何存储桶级别的更改。
+ 清单中列出的所有对象都必须位于同一个存储桶中。
+ 必须在执行任务的存储桶上配置版本控制和 S3 对象锁定。
+ 除非在清单中明确指定了版本，否则**对象锁定法定保留**操作将适用于最新版本的对象。
+ IAM 角色需要 `s3:PutObjectLegalHold` 权限，才能在对象中添加或移除法定保留。
+ 需要 `s3:GetBucketObjectLockConfiguration` IAM 权限，才能确认为在其中执行任务的 S3 存储桶启用了 S3 对象锁定。
+ 单个 S3 对象锁定法定保留作业可以支持包含多达 200 亿个对象的清单。