我是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"
}