Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Terraform错误设置S3 bucket tags:InvalidTag:您提供的TagValue为无效状态代码:400_Amazon Web Services_Amazon S3_Terraform - Fatal编程技术网

Amazon web services Terraform错误设置S3 bucket tags:InvalidTag:您提供的TagValue为无效状态代码:400

Amazon 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

我已经设法使我的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        = "${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部分不是标记的一部分。请将其作为答案。