已创建的S3 存储桶如何启用对象锁定?
已创建的S3 存储桶如何启用对象锁定?

已创建的S3 存储桶如何启用对象锁定?

内容纲要

已创建的S3 存储桶如何启用对象锁定?

Amazon S3 对象锁定是一项强大的功能,允许你确保你的对象在一定时间内不被删除或更改。虽然在创建存储桶时可以轻松启用对象锁定,但在现有存储桶上启用对象锁定需要一些额外的步骤。本文将向你介绍如何在已存在的S3存储桶上启用对象锁定。

Amazon S3 对象锁定概述

Amazon S3 对象锁定是一种用于保护对象免受意外删除或更改的功能。日语叫做(オブジェクトロック)它通常用于符合法规要求或数据保留政策的情况下。如果在创建之前没有打开这个功能,后面就没法开启了,可以删了重新建立一个桶,但是那样也太蠢了,但是开启这个功能下面写了一行:

Amazon S3 目前不支持在创建存储桶之后启用对象锁定。要为此存储桶启用对象锁定,请联系客户支持

好家伙,必须要联系客服。

但是比重新删了创建好。

在我询问了客服之后,她们说可以帮你启用。需要你开启存储桶版本控制后提供要开启的桶的名字,他们会给你发一个token你可以用cli来启用。

启用对象锁定的前提条件

  1. 开启存储桶版本控制
  2. 获取对应桶的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/

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注