Amazon web services Terraform错误设置S3 bucket tags:InvalidTag:您提供的TagValue为无效状态代码:400
我已经设法使我的Terraform循环通过我所有的bucket,创建了一个IAMs用户和一个bucketAmazon web services Terraform错误设置S3 bucket tags:InvalidTag:您提供的TagValue为无效状态代码:400,amazon-web-services,amazon-s3,terraform,Amazon Web Services,Amazon S3,Terraform,我已经设法使我的Terraform循环通过我所有的bucket,创建了一个IAMs用户和一个bucket resource "aws_s3_bucket" "aws_s3_buckets" { count = "${length(var.s3_bucket_name)}" bucket = "${var.s3_bucket_name[count.index]}" acl = "private" tags = { Name
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
}
}
资源“aws\u s3\u bucket”“aws\u s3\u bucket”{
count=“${length(var.s3\u bucket\u name)}”
bucket=“${var.s3\u bucket\u name[count.index]}”
acl=“私有”
标签={
Name=“${var.s3\u bucket\u Name[count.index]}”
环境=“生活”
policy=错误是因为policy
节不是tag
参数的一部分。它是aws\u s3\u bucket资源中的一个单独的节。您还可以使用该资源创建bucket策略
注意:该策略存在很多问题。您必须解决这些问题才能使策略顺利通过。其中一些问题包括:
“arn:aws:s3::“${var.s3\u bucket\u name[count.index]}”。/*”}
--这不应该在JSON中
- 有一些花括号没有正确对齐(一些额外的花括号)
- 主体应为IAM资源(IAM用户或IAM角色或帐户或*)
策略部分不是标记的一部分。如果您打算创建S3 bucket策略,则需要使用策略参数。如果您打算创建IAM用户,则需要创建aws_IAM_用户和aws_IAM_用户策略资源。@krishna_mee2004您是说我应该删除策略并将其放置在标记之外吗?是的,这是正确的rect.policy部分不是标记的一部分。请将其作为答案。