Contabo’s Object Storage – Object Lock Retention (AWS S3 compatible)

39次阅读
没有评论

问题描述

在使用Contabo的对象存储服务时遇到了困难。他使用了一个具有”S3对象存储读写”权限的用户,并配置了一个名为’backup’的AWS配置文件。使用这个配置文件,他运行了以下shell脚本:

echo "Bucket: "$BUCKET
echo "Key: "$KEY
echo "Profile: "$PROFILE
echo "Region: "$REGION
echo "Endpoint: "$ENDPOINT
aws --profile $PROFILE --region $REGION --endpoint-url $ENDPOINT \
   s3api get-object-retention --bucket $BUCKET --key $KEY

然后,他得到了以下结果:

Bucket: test1
Key: test_one.txt
Profile: backup
Region: default
Endpoint: https://usc1.contabostorage.com
{    
    "Retention": {
        "Mode": "COMPLIANCE",
        "RetainUntilDate": "2023-05-06T17:35:57.568865+00:00"
    }
}

这意味着即使是根用户也可以在”2023-05-06T17:35:57.568865+00:00″之前删除这个文件,对吗?
之后,他运行了以下shell脚本:

echo "Bucket: "$BUCKET
echo "Key: "$KEY
echo "Profile: "$PROFILE
echo "Region: "$REGION
echo "Endpoint: "$ENDPOINT
aws --profile $PROFILE --region $REGION --endpoint-url $ENDPOINT \
     s3 rm s3://$BUCKET/$KEY

然后,他得到了以下结果:

Bucket: test1
Key: test_one.txt
Profile: backup
Region: default
Endpoint: https://usc1.contabostorage.com
delete: s3://test1/test_one.txt

所以这个文件被删除了。保留模式是”COMPLIANCE”,但文件还是被删除了。为什么?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据您提供的信息,Contabo的对象存储服务支持对象锁定保留功能。对象锁定保留功能可以确保对象在指定的保留日期之前无法被删除或修改。然而,根据您的描述,您使用的保留模式是”COMPLIANCE”,这意味着对象锁定保留功能只能由具有特定权限的用户删除或修改。
根据AWS文档,”COMPLIANCE”模式下的对象锁定保留功能只能由具有特定权限的用户删除或修改。这可能是为了满足合规性要求,确保对象的完整性和可追溯性。
因此,即使是根用户,也无法在保留日期之前删除或修改对象。只有具有特定权限的用户才能执行这些操作。

方案2

如果您希望根用户也能够删除或修改对象,您可以尝试将保留模式更改为”GOVERNANCE”。根据AWS文档,”GOVERNANCE”模式下的对象锁定保留功能允许根用户删除或修改对象,但仍然需要满足一些条件。
要更改保留模式,请按照以下步骤操作:
1. 使用具有适当权限的用户登录到AWS控制台。
2. 打开Contabo的对象存储服务控制台。
3. 导航到您要更改保留模式的存储桶。
4. 在存储桶设置中,找到对象锁定选项。
5. 将保留模式更改为”GOVERNANCE”。
6. 保存更改并等待生效。
请注意,更改保留模式可能会受到一些限制和合规性要求。确保在更改保留模式之前了解相关的合规性要求和限制。

方案3

如果您仍然无法解决问题,建议您联系Contabo的技术支持团队寻求帮助。他们将能够提供更具体的解决方案和支持。

正文完