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