我想为现有 Amazon Simple Storage Service (Amazon S3) 桶启用对象锁定。
## 解决方法
**注意**:如果在运行 Amazon CLI 命令时收到错误,[请确保您使用的是最新版本的 Amazon CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-troubleshooting.html?trk=cndc-detail)。
必须具有对象锁定令牌值才能为现有 S3 桶启用对象锁定。要获得此值,[请联系 Amazon Support 团队](https://support.console.aws.amazon.com/support/?trk=cndc-detail)。
请注意,您只能请求为启用版本的桶生成对象锁定令牌值。
收到 Amazon Support 团队提供的令牌后,请运行以下亚马逊云科技命令行界面 (Amazon CLI) 命令。您可以在本地计算机上使用最新版本的 [Amazon CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html?trk=cndc-detail) 或 [Amazon CloudShell](https://aws.amazon.com/cloudshell/?trk=cndc-detail) 来运行以下命令:
```
aws s3api put-object-lock-configuration --bucket bucketname --token token-value --object-lock-configuration "ObjectLockEnabled=Enabled,Rule={DefaultRetention={Mode=string,Days=integer,Years=integer}}"
```
有关详细信息,请参阅 [put-object-lock-configuration](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object-lock-configuration.html?trk=cndc-detail)。
请务必执行以下操作:
* 将 **bucketname** 替换为桶的名称。
* 将 **token-value** 替换为对象锁定令牌值。
您可以将 **Mode** 设置为 **GOVERNANCE** 或 **COMPLIANCE**,并以 **Days** 或 **Years** 为单位指定持续时间。不要在命令中同时使用 Days 和 Years,这样会导致“格式不正确的 XML”错误。
此命令不产生任何输出。
要验证您的 S3 桶是否已启用对象锁定,请使用 Amazon S3 控制台查看对象锁定默认设置。
您也可以使用 [GetObjectLockConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html?trk=cndc-detail) API。
```
aws s3api get-object-lock-configuration --bucket bucketname
```
另请参阅[查看对象的锁定信息](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-view)。
**重要事项**:成功配置 S3 对象锁定后,无法将其关闭。另外,您也无法暂停桶的版本控制。
## 相关信息
[使用 S3 对象锁定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html?trk=cndc-detail)