已创建的S3 存储桶如何启用对象锁定?
Amazon S3 对象锁定是一项强大的功能,允许你确保你的对象在一定时间内不被删除或更改。虽然在创建存储桶时可以轻松启用对象锁定,但在现有存储桶上启用对象锁定需要一些额外的步骤。本文将向你介绍如何在已存在的S3存储桶上启用对象锁定。
Amazon S3 对象锁定概述
Amazon S3 对象锁定是一种用于保护对象免受意外删除或更改的功能。日语叫做(オブジェクトロック)它通常用于符合法规要求或数据保留政策的情况下。如果在创建之前没有打开这个功能,后面就没法开启了,可以删了重新建立一个桶,但是那样也太蠢了,但是开启这个功能下面写了一行:
Amazon S3 目前不支持在创建存储桶之后启用对象锁定。要为此存储桶启用对象锁定,请联系客户支持
好家伙,必须要联系客服。
但是比重新删了创建好。
在我询问了客服之后,她们说可以帮你启用。需要你开启存储桶版本控制后提供要开启的桶的名字,他们会给你发一个token你可以用cli来启用。
启用对象锁定的前提条件
- 开启存储桶版本控制
- 获取对应桶的token
启用现有存储桶的 S3 对象锁定
步骤 1:创建 AWS 支持案例
首先,你需要创建一个 AWS 支持案例,以请求在现有存储桶上启用 S3 对象锁定。你可以在支持案例中说明你的需求,然后 AWS 支持团队将为你生成一个令牌(token)。
注意:支持案例的目的是获取令牌,而不是直接启用对象锁定。
步骤 2:使用令牌启用对象锁定
一旦你获得了令牌,你就可以使用它来启用对象锁定。首先,你需要确认当前存储桶的对象锁定配置是否为空。你可以使用以下命令进行确认:
aws s3api get-object-lock-configuration --bucket --token
如果返回如下错误消息:
An error occurred (ObjectLockConfigurationNotFoundError) when calling the GetObjectLockConfiguration operation: Object Lock configuration does not exist for this bucket
那么表示当前存储桶没有配置对象锁定。
接下来,可以使用以下命令使用令牌来启用对象锁定(请注意,一旦启用,对象锁定将无法禁用):
aws s3api put-object-lock-configuration --bucket --token \
--object-lock-configuration 'ObjectLockEnabled=Enabled,Rule={DefaultRetention={Mode=<锁定模式>,Days=<保留天数>}}'
例如,如果要启用管理模式(Governance Mode)并保留对象365天,可以使用以下命令:
aws s3api put-object-lock-configuration --bucket --token \
--object-lock-configuration 'ObjectLockEnabled=Enabled,Rule={DefaultRetention={Mode=GOVERNANCE,Days=365}}'
使用以下命令来确认对象锁定配置是否已成功启用:
aws s3api get-object-lock-configuration --bucket
注意事项
- 一旦启用对象锁定,将无法禁用它。
- 已存在的对象不会自动锁定,只有在启用对象锁定后创建的对象才会被锁定。
参考文章
https://dev.classmethod.jp/articles/enable-object-lock-on-existing-bucket/