【发布时间】:2020-12-04 01:26:15
【问题描述】:
我正在使用这个模块 https://github.com/turnerlabs/terraform-s3-user 创建一些 s3 存储桶和相关的 iam 用户。
这很好用:
module "my_bucket" {
source = "github.com/turnerlabs/terraform-s3-user?ref=v2.1"
bucket_name = "my-bucket"
tag_team = "developers"
tag_contact-email = "xxxxx"
tag_application = "xxxxx"
tag_environment = "prod"
tag_customer = "xxxxx"
}
现在我想修复此模块创建的 s3 存储桶的默认策略。
terrafom show 给我看这个:
module.my_bucket.aws_s3_bucket_policy.bucket_policy:
id = my-bucket
bucket = my-bucket
policy = {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::____________:user/srv_my-bucket"
},
"Action": [ "s3:*" ],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}
我应该如何修改我的 .tf 以获得另一个策略?
【问题讨论】:
-
你为什么使用那个模块?除了原始用户的意图之外,它看起来对任何人都毫无用处,并且对开源毫无意义。桶策略也是一个坏主意。相反,用户/角色应该能够通过 IAM 权限访问完全私有的存储桶,而不是这种过时且令人困惑的方法。
-
我更容易使用该模块,而不是手动创建存储桶、用户、iam。我需要一个修改后的存储桶策略来公开所有对象:它是一个图像目录。 iam 用户只需上传即可。