Я хотел бы создать шаблон политики и применить его к списку сегментов, но у меня возникла проблема с получением имени текущего сегмента в политике. Terraform дважды возвращает ошибку
"Error: Error putting S3 policy: MalformedPolicy: Policy has invalid resource"
. План работает нормально, вывод для политики выглядит хорошо и т. Д. c.
variable "s3_bucket_list"
{
type = list(string)
description = "List of buckets to secure"
default = ["bucket1","bucket2"]
}
resource "aws_s3_bucket" "qpp-secure-bucket" {
count = length(var.s3_bucket_list)
bucket = var.s3_bucket_list[count.index]
}
resource "aws_s3_bucket_policy" "minimum_s3_bucket_policy" {
count = length(var.s3_bucket_list)
bucket = var.s3_bucket_list[count.index]
policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyUnencryptedCommunication",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"${aws_s3_bucket.bucket.arn}",
"arn:aws:s3:::${var.s3_bucket_list[count.index]}/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
},
"Principal": "*"
}
]
}
POLICY
}