Closed2

terraform for_eachで二重ループのような処理

myabaoumyabaou

IAMグループ毎に別々のポリシーを付与するループ処理を行いたいです。

module "iam_group" {
  source  = "../../modules/iam_group"
  iam_group_config = {
    target = {
      Developers = {
        iam_policy_list = [
          "arn:aws:iam::aws:policy/ReadOnlyAccess",
          "arn:aws:iam::aws:policy/PowerUserAccess"
        ]
      }
    Admin = {
        iam_policy_list = [
          "arn:aws:iam::aws:policy/AdministraterAccess"
        ]

     }

    }

  }

}
resource "aws_iam_group" "groups" {
  for_each = var.iam_group_config.target
  name     = "${each.key}-Group"
  path     = "/users/"
}

とグループ作成はいいのですが
aws_iam_group_policy_attachmentでは
ポリシーが一つしか定義できないため、
2重ループのような処理をしないといけないのですが
どのように定義すればいいのかわからない状態です。。

resource "aws_iam_group_policy_attachment" "attach" {
  for_each   = var.iam_group_config.target
  group      = aws_iam_group.groups[each.key].name
  policy_arn = ?????
}

IAMグループ単位に任意のポリシーを
アタッチするためのお知恵を借りたく。。

myabaoumyabaou

module内でfor_eachを利用すればよい。
んでmodule側でfor_eachは使える。

module "elasticache" {
  source = "../../modules/elasticache"

  for_each = {
   test_redis1 = {}
   test_redis2 = {}
}

replication_group_id = each.key
}
このスクラップは2022/07/08にクローズされました