我成功地使Terraform循环遍历了我的所有桶,创建了一个IAMs用户和一个桶。
resource "aws_s3_bucket" "aws_s3_buckets" {
count = "${length(var.s3_bucket_name)}"
bucket = "${var.s3_bucket_name[count.index]}"
acl = "private"
tags = {
Name = "${var.s3_bucket_name[count.index]}"
Environment = "live"
policy = <<POLICY
{
"Id": "Policy1574607242703",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1574607238413",
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": {
"arn:aws:s3:::"."${var.s3_bucket_name[count.index]}"."/*"}
},
"Principal": {
"AWS": [
"${var.s3_bucket_name[count.index]}"}
]}
}
]
}
POLICY
}
}设置S3桶标记时出错: InvalidTag:您提供的TagValue是无效的状态代码: 400有办法创建这样的策略吗?还是我在代码中做错了什么?
发布于 2019-12-06 14:39:53
错误是因为policy部分不是tag参数的一部分。它是aws_s3_bucket资源中的一个单独的部分。您还可以使用政策资源创建桶策略。
注:这项政策有不少问题。你得把它们修好才能让保险单顺利通过。其中一些问题是:
"arn:aws:s3:::"."${var.s3_bucket_name[count.index]}"."/*"} --它不应该在JSON中。https://stackoverflow.com/questions/59183817
复制相似问题