【问题标题】:Automating the assignment of multiple built-in Azure policy自动分配多个内置 Azure 策略
【发布时间】:2021-08-04 16:51:47
【问题描述】:
我正在尝试通过单击将多个内置 azure 策略分配给我的 azure 环境。我怎样才能以更优雅的方式做到这一点?
我尝试了以下方法。
- 创建策略定义并使用打包程序构建映像。通过 terraform 部署镜像
- 我已将策略定义 ID 传递给 terraform 脚本中的资源组,类似于以下脚本。
resource "azurerm_policy_assignment" "example" {
name = "test"
policy_definition_id = data.azurerm_policy_definition.example.id
scope = "/providers/Microsoft.Management/managementGroups/MyManagementGroup"
}
如何传递多个定义策略定义ID?任何提示将不胜感激。
【问题讨论】:
标签:
azure
powershell
terraform
azure-policy
【解决方案1】:
您可以将其分解为子模块,使用父模块调用单独的子模块,这样您就可以reuse/mix-n-match 等。例如假设每个子模块只管理一种资源类型,例如 /modules/policy-definitions 管理 Azure_RM 策略定义。
现在,父模块调用所有子模块,如果子模块需要,我们可以在其中设置输入变量值。
这是调用 /modules/MyPolicy-assignments 并为 4 个输入变量设置这些值的父模块。
module "policy_assignments" {
source = "./modules/MyPolicy-assignments"
tag_governance_policyset_id = "${module.policyset_definitions.assetTag_governance_policyset_id}"
iam_governance_policyset_id = "${module.policyset_definitions.iam_governance_policyset_id}"
security_governance_policyset_id = "${module.policyset_definitions.security_governance_policyset_id}"
data_protection_governance_policyset_id = "${module.policyset_definitions.data_protection_governance_policyset_id}"
AD... = "${module.policyset_definitions.AD...}"
}