无法通过terraform起草有效的json用作存储桶策略

时间:2019-09-11 20:11:41

标签: amazon-web-services amazon-s3 terraform bucket

我是terraform的新手,并创建了以下资源

resource "aws_s3_bucket" "spring-site" {
  bucket = "jordan-terraform-bucket-wheel-of-time"
  acl    = "public-read"
  cors_rule {
    allowed_headers = ["*"]
    allowed_methods = ["PUT", "POST", "GET"]
    allowed_origins = ["__________"]
    max_age_seconds = 3000
  }
}

上面的间距不一定反映我的实际模板。

我正在尝试关联以下存储桶策略:

 resource "aws_s3_bucket_policy" "plcy" {
  bucket = "${aws_s3_bucket.spring-site.id}"
  policy = <<POLICY
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal":{"AWS":"*"},
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
    ]
}
  POLICY
}

最初,我直接从控制台上提供的“ readonlybucket” AWS托管策略json复制了它。

运行terraform apply之后,它创建了我的存储桶,但同时也出现了一个错误,说我需要包括“ Principal”属性/属性。 我尝试了两种语法选择:

“ Principal”:{“ AWS”:“ ”}&“ Principal”:“ ”,

但是,我现在收到以下错误:

  Error putting S3 policy: MalformedPolicy: Policy has invalid resource

是否要告诉我未创建存储桶或存储桶不存在?因为我什至都删除了在运行之间和cl中创建的存储桶,所以我可以看到该存储桶是首先创建的。

如果可能的话,这是main.ts中的模块:

  module "s3_statick_bucket" {
  source = "../modules/S3"


  }

0 个答案:

没有答案