我开始从一些内部脚本过渡到terraform。在当前设置中,我将IAM策略语句集组合在一起以创建单个IAM角色。其中一些是模板。我不确定如何在Terraform中实现类似的重复数据删除。
aws_iam_policy_document
数据源几乎是我想要的,但是它只允许一个source_json
。
我能想到的最好的事情是拥有所有组件的数据源,然后执行以下操作:
dynamic "statement" {
for_each = concat(set1, set2, set3, set4, ...)
content {
sid = statement.sid
actions = statement.actions
resources = statement.resources
...
}
}
但这有点混乱,我需要为每个iam角色重复此定义,而且我实际上不确定如果其中一个字段未定义(例如,如果没有定义),引用将如何工作没有Sid)