バケットを作成してから、リストされたすべてのアカウントにアクセスできるようにするバケットポリシーを作成しています。 terraform plan/applyを渡すと思われますが、コンソールを見ると、アカウントが1つしかリストされていないため、以前のポリシーを踏みにじっているようです。複数のプリンシパルを持つ単一のバケットポリシーを作成するためのリストの反復
私はバケツ/ポリシーを生成するための変数リストとコードを持っている:
variable "accounts" {
type = "list"
default = [
"111111111111",
"222222222222",
"333333333333",
"444444444444",
"555555555555",
"666666666666",
"777777777777"
]
}
resource "aws_s3_bucket" "my_bucket" {
bucket = "${var.bucket_name}"
}
resource "aws_s3_bucket_policy" "my_bucket_policy" {
bucket = "${aws_s3_bucket.my_bucket.id}"
count = "${length(var.accounts)}"
policy =<<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::${element(var.accounts, count.index)}:root"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::${var.bucket_name}/CloudTrail/AWSLogs/${element(var.accounts, count.index)}/*"
}
]
}
EOF
}
はただ唯一のリソースや校長のセクションで変数リストを反復処理する方法はありますか?目標は、変数からすべての値を持つ単一のバケットポリシーを生成することです。
現在、このケースでは、各アカウントのルールを作成するためのforループはありません。 – BMW