我需要将策略附加到所有 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
}
是的,你可以这样做,但你的语法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
}
这假定您在var.roles
中具有角色名称list(string)
。
运行terraform plan
以查看结果是否符合预期。