amazon-web-services - 如何在 Amazon AWS S3 存储桶中找到未加密的文件?

标签 amazon-web-services amazon-s3

我有什么:几个旧的 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 存储桶中的对象列表,每个列出的对象的元数据包括:

  • 加密状态 – 设置为 SSE-S3、SSE-C、SSE-KMS 或 NOT-SSE。 SSE-S3、SSE-KMS 和具有客户提供的 key (SSE-C) 的 SSE 的服务器端加密状态。 NOT-SSE 状态表示对象未使用服务器端加密进行加密。
  • 关于amazon-web-services - 如何在 Amazon AWS S3 存储桶中找到未加密的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54480431/

    相关文章:

    amazon-web-services - 有谁知道 RDP 连接到 AWS 的数据传输类型?

    amazon-web-services - 如何将 cPanel 中的子域连接到 AWS ELB

    java - 光束 : Failed to serialize and deserialize property 'awsCredentialsProvider

    amazon-web-services - 上传到 Amazon S3 时如何强制执行唯一文件名

    go - 如何在 AWS SDK 中实现 AWS CLI Sync 命令的性能

    amazon-web-services - AWS Java SDK Cloudformation 无法按名称或 ID 描述堆栈

    java - 在 Amazon EC2 t2.micro 实例上运行的 Jar 内存不足

    java - 终止实例永远不会返回终止状态 aws sdk

    amazon-web-services - 使用 AWS CLI 调用 Rekognition

    ruby-on-rails - S3 文件复制的 AWS SDK v2 AllAccessDisabled 错误