我需要为所有IAM角色附加政策。但是我不想在每个角色中添加策略或调用策略模块。
我们可以使用以下for_each将策略附加到列表中的每个角色吗?
resource "aws_iam_role_policy_attachment" "test-attach" {
for_each = toset(var.roles)
role = each.value
policy_arn = "aws_iam_policy.test-attach[0].arn
}
答案 0 :(得分:2)
是的,您可以这样做,但是policy_arn
的语法不应为半引号的字符串:
resource "aws_iam_role_policy_attachment" "test-attach" {
for_each = toset(var.roles)
role = each.value
policy_arn = aws_iam_policy.test-attach[0].arn
}
这假设您在list(string)
中有一个var.roles
个角色名称。
运行terraform plan
来查看结果是否符合您的期望。