【问题标题】:What would be the best way to automate and apply a bucket policy on multiple s3 buckets?在多个 s3 存储桶上自动化和应用存储桶策略的最佳方法是什么?
【发布时间】:2019-07-02 04:41:51
【问题描述】:

假设我有超过一百个 s3 存储桶,并且我想对所有存储桶应用存储桶策略,那么自动执行此操作的过程是什么?

【问题讨论】:

  • 你看过awscli吗?

标签: amazon-web-services amazon-s3 aws-lambda amazon-cloudformation


【解决方案1】:

使用脚本在每个存储桶上调用 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

【讨论】:

  • 我喜欢你的方法,另一种方法是使用 boto3 python 脚本来应用存储桶策略。
  • 当然。两种方式都有效。对于这样的一次性任务,您只需要一个简单的脚本。
猜你喜欢
  • 2020-12-12
  • 2021-01-19
  • 2012-11-23
  • 2023-03-31
  • 2019-02-26
  • 2021-08-14
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多