将策略附加到多个IAM角色

时间:2020-06-01 18:26:29

标签: terraform terraform-provider-aws

我需要为所有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
}

1 个答案:

答案 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来查看结果是否符合您的期望。