【发布时间】:2019-07-02 04:41:51
【问题描述】:
假设我有超过一百个 s3 存储桶,并且我想对所有存储桶应用存储桶策略,那么自动执行此操作的过程是什么?
【问题讨论】:
-
你看过awscli吗?
标签: amazon-web-services amazon-s3 aws-lambda amazon-cloudformation
假设我有超过一百个 s3 存储桶,并且我想对所有存储桶应用存储桶策略,那么自动执行此操作的过程是什么?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda amazon-cloudformation
使用脚本在每个存储桶上调用 AWS CLI 命令。
aws s3api put-bucket-policy --bucket MyBucket --policy file://policy.json
policy.json:
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::MyBucket/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::MyBucket/MySecretFolder/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": [
"s3:DeleteObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::MyBucket/*"
}
]
}
我会在脚本或批处理文件中调用该命令,每个存储桶调用一次。
aws s3api put-bucket-policy --bucket MyBucket0 --policy file://policy.json
aws s3api put-bucket-policy --bucket MyBucket1 --policy file://policy.json
aws s3api put-bucket-policy --bucket MyBucket2 --policy file://policy.json
您应该将您的存储桶列表导出到一个文件,并从该文件构建脚本。
见https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html
【讨论】: