所有s3存储桶上的AWS s3存储桶批量加密

时间:2019-12-05 20:58:18

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

我正在尝试使用默认加密批量更新所有s3存储桶,使其使用以下命令生成json文件

aws s3api list-buckets --query "Buckets[].Name" >> s3.json

我的结果是所有s3存储桶的名称。

如何将json文件传递到命令中,以便启用默认加密。

我也在下面尝试过

aws s3api list-buckets --query 'Buckets[*].[Name]' --output text | xargs -I {} bash -c 'aws s3api put-bucket-encryption --bucket {} --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}''

但是iam低于错误

Error parsing parameter '--server-side-encryption-configuration': Invalid JSON: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
JSON received: {Rule

aws s3api put-bucket-encryption --bucket bucketnames --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'

我在下面尝试过,但是不起作用。

aws s3api put-bucket-encryption \
    --bucket value \
    --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}' \
    --cli-input-json file://s3bucket.json

请让我知道如何更新命令以启用默认加密。

3 个答案:

答案 0 :(得分:2)

下面是解决您的问题的代码段:

MyFolder

答案 1 :(得分:0)

如果您想用Python来做,那就是这样(未经测试!):

df1 <- structure(list(Week = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 2L, 
3L), SKU = c(111L, 111L, 111L, 111L, 222L, 222L, 222L, 222L, 
333L, 333L, 333L), Discount = c(5L, 5L, 0L, 10L, 0L, 10L, 15L, 
20L, 5L, 0L, 0L)), class = "data.frame", row.names = c(NA, -11L
))

答案 2 :(得分:0)

aws s3api list-buckets --query "Buckets[].Name" \
   | jq .[] \
   | xargs -I '{}' aws s3api put-bucket-encryption --bucket {} --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'

为我工作