我有什么:几个旧的 s3 存储桶,每个存储桶包含 100 万个对象,并打开了服务器端加密。
问题:旧文件未加密。我不能说加密是什么时候打开的。
所以,我需要找到所有未加密的文件。
我已经尝试过 awscli
的解决方案,但它很慢 - 2 秒内 1 个请求。
我的解决方案:
s3_buckets="uploads tmp logs whatever "
for s3_bucket in $s3_buckets;
do
aws s3 ls s3://$s3_bucket --recursive \
| awk '{print $NF}' \
| ( while read object ;
do
object_status=$(aws s3api head-object --bucket $s3_bucket --key $object --query ServerSideEncryption --output text 2>&1)
if [ "$object_status" != "AES256" ]; then
echo "Unencrypted object $object in s3://$s3_bucket"; >> /tmp/body.tmp
objects_unencrypted=$((objects_unencrypted + 1))
fi
objects_count=$((objects_count + 1))
done
echo "Bucket $s3_bucket has $objects_count, where unencrypted $objects_unencrypted." >> /tmp/body.tmp )
done
那么,也许有更好的解决方案?
是否可以创建
Cloudwatch
指标显示未加密的字段?或任何其他人?
最佳答案
使用 Amazon S3 Inventory .
list 列表包含 S3 存储桶中的对象列表,每个列出的对象的元数据包括:
关于amazon-web-services - 如何在 Amazon AWS S3 存储桶中找到未加密的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54480431/