AWS CLI列出所有S3存储桶的加密状态

时间:2020-08-28 22:35:18

标签: amazon-web-services amazon-s3 aws-cli

我的帐户有几百个存储桶,我需要能够显示所有这些的加密状态。我希望能够通过CLI做到这一点,我看到有一个命令“ get-bucket-encryption”操作,但是我不知道如何针对所有存储桶而不是特定的存储桶运行此操作。 / p>

2 个答案:

答案 0 :(得分:2)

您可以在list-buckets的结果上循环运行它。

例如:

<type-enum>MyEnumContainer.MyEnum1</type-enum>

如果存储桶没有加密,<type>com.company.project.tools.MyEnumContainer.MyEnum1</type> <type package="com.company.project.tools">MyEnumContainer.MyEnum1</type> 返回错误,因此以上我假设任何错误都意味着没有加密。

答案 1 :(得分:1)

我知道这个问题是针对 CLI 的,但这是 Nodejs 中的答案

假设您已经设置了所有凭据并安装了 aws-sdk 这就是您应该运行的内容

const AWS = require('aws-sdk');
const s3 = new AWS.S3();

s3.listBuckets(function(err, data) {
    if (err) console.log(err, err.stack);
    let bucketData = data.Buckets;
    let bucketLength = data.Buckets.length;

    for (let i = 0; i < bucketLength; i++) {
        var params = {
            Bucket: `${bucketData[i].Name}` /* required */
        };
        s3.getBucketEncryption(params, function(err, data) {
            try {       // first it will print all non encypted buckets and then vice versa
                if(err){
                    console.log(bucketData[i].Name)   // Non Encrypted Bucket List
                }
                if (data) {
                    console.log(bucketData[i].Name);  // Encrpted Bucket List 
                }
            } catch (err) {}
        });
    }
});