gpt4 book ai didi

amazon-web-services - 在不影响存储类的情况下对现有 S3 对象应用加密

转载 作者:行者123 更新时间:2023-12-04 08:11:19 25 4
gpt4 key购买 nike

我正在尝试加密现有的 s3 存储桶。当我这样做时:

aws s3 cp s3://test/ s3://test/ --recursive --sse

它通过重新复制对象来加密存储桶中的所有文件。我的问题是我的存储桶中有 Standard、Standard-IA 和 Glacier 存储类的对象。因此,当我运行上述复制命令时,Standard-IA 存储中的对象将转换为标准存储。 (我还没有测试冰川中的物体会发生什么 - 可能它甚至不允许我复制。)

有什么方法可以恢复对象的存储类型并只为现有存储桶启用加密?

最佳答案

你可以使用 bash 和 JQ 做这样的事情,显然 python 和 boto3 或类似的会更干净。

我不知道你是否最好添加一个检查来跳过 GLACIER 文件,没有神奇的方法可以在不解冻然后重新卡住它们的情况下对它们应用加密。

您需要在 s3 存储桶本地的 ec2 实例上运行它。

#!/bin/bash

bucketname="bucket-name"
aws s3 ls ${bucketname} --recursive | awk '{ print $NF }' > /tmp/filelist

for file in `cat /tmp/filelist`
do
class=`aws s3api head-object --bucket ${bucketname} --key $file | jq '.StorageClass' | sed 's/\"//g'`
if [ "$class" = "null" ]
then
class="STANDARD"

fi
echo "aws s3 cp s3://${bucketname}/${file} s3://${bucketname}/${file} --sse --storage-class ${class}"
done

关于amazon-web-services - 在不影响存储类的情况下对现有 S3 对象应用加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47142043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com