fla*_*ang 2 terraform terraform-provider-aws
对于初学者来说,我已经读过这个问题,但该解决方案相当老套,我希望使用新版本的 Terraform 可以有一种更优雅的方法来实现这一目标。
我有多个 IAM 政策文档,如下所示:
data "aws_iam_policy_document" "policy1" {
...
}
data "aws_iam_policy_document" "policy2" {
...
}
data "aws_iam_policy_document" "policy3" {
...
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试将它们合并到一个文档中source_policy_documents,如下所示:
data "aws_iam_policy_document" "combined" {
source_policy_documents = [
data.aws_iam_policy_document.policy1.json
data.aws_iam_policy_document.policy2.json
data.aws_iam_policy_document.policy3.json
]
}
Run Code Online (Sandbox Code Playgroud)
我想提供“覆盖”变量,以允许用户排除每个文档被合并到最终策略中。
我是 Terraform 的新手 - 有没有一种简单的方法可以动态构建source_policy_documents或可以用来override_policy_documents获得我想要的东西?
谢谢!
这可能不是最有效的,但您可以这样做:我假设您有一些布尔变量来指示要启用或禁用的策略(policy1_enable、policy2_enable、policy3_enable)。
data "aws_iam_policy_document" "combined" {
source_policy_documents = concat(
var.policy1_enable == true? [data.aws_iam_policy_document.policy1.json]:[],
var.policy2_enable == true? [data.aws_iam_policy_document.policy2.json]:[],
var.policy3_enable == true? [data.aws_iam_policy_document.policy3.json]:[])
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4040 次 |
| 最近记录: |