我正在尝试使用 Terraform 0.13 编写一个内部模块,使调用者可以在调用时选择一个或多个预定义策略文档。我想做的是将每个策略定义为 data.iam_policy_document,并按条件包含/合并它们到结果策略中作为多个声明。我找到的所有示例似乎都不能完全做到这一点,大多数 IAM 相关模块在注册表中都只依赖于父模块传递完整的策略语句,但我的目标是模块的用户不需要了解如何编写正确的 IAM 策略。
我的想法是最简单的方法是合并策略文档的 .json 版本,并将其传递给 iam_policy 资源,但这似乎与通过计数条件控制策略文档不太搭配,而且我意识到这可能完全是错误的方法。
使用该模块的期望结果是创建一个单一角色,具有适当的信任策略,可以访问所选的服务组,并且不会创建任何未使用和不必要的资源(保持未连接的额外策略等)。