【发布时间】:2021-12-19 04:36:31
【问题描述】:
我的目标是使用 for_each 调用策略模块,以便为每个策略名称输入选择正确的 policy_document。有没有办法做到这一点?输入是带有键 example-service 的地图的示例
data "aws_iam_policy_document" "policy-example-service" {
statement {
sid = "AllowListBuckets"
actions = ["s3:ListAllMyBuckets"]
resources = ["*"]
}
}
module "policy_example" {
source = "../modules/aws-iam-policy"
for_each = var.example_policies_mapped_to_roles
name = "example-${each.key}"
path = "/"
policy = "${data.aws_iam_policy_document.policy-${each.key}.json}" //so here "policy-example-service" would be filled in
}
这将允许我使用许多不同的 policy_documents 定义一个模块调用。
【问题讨论】:
-
看起来像这样--
example_policies_mapped_to_roles = { example-service-policy = ["example-service-A"] }。所以我的想法的关键是example-service-policy,最后我会在地图中有一堆其他的键 -
哦,哎呀——我回复的评论消失了。不过,我会留下来澄清一下。
-
地图的想法很有效。从管理员的角度来看,我认为这很好,但如果管理员向用户提供模块,这对用户来说不是很友好。 “note不要忘记为您创建的每个策略添加一个新条目到地图中”那种人们会忘记的自述文件
标签: terraform terragrunt