Цель: развернуть политику Azure в группе управления, чтобы, когда определенные теги отсутствуют в ресурсе, находящемся в ее компетенции, применять указанный тег из группы ресурсов.
Проблема: развертывание этого шаблона в группе управления приводит к появлению "функции шаблона" RESOURCEGROUP "в этом месте не ожидается.
Это довольно простая структура, похожая на:
<Management Group> - <Subscription 1> - <Resource Group 1> - <Resource A>
- <Resource Group 2> - <Resource B>
- <Subscription 2> - <Resource Group 3> - <Resource C>
- <Resource D>
Существует довольно простой шаблон, использующий определение вложенной политики:
......
"resources": [
{
"type": "Microsoft.Authorization/policyDefinitions",
"apiVersion": "2019-09-01",
"name": ".",
"properties": {
"policyType": "Custom",
"mode": "Indexed",
"displayName": ".",
"description": ".",
"metadata": {
"category": "Tags"
},
"policyRule": {
"if": {
"anyOf": [
{
"field": "tags['costCenter']",
"exists": "false"
},
{
"field": "tags['CostCenter']",
"notin": "[parameters('allowedCostCenter')]"
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f"
],
"operations": [
{
"operation": "add",
"field": "tags['CostCenter']",
"value": "[resourcegroup().tags['CostCenter']]"
}
]
}
}
}
}
}
]
Я понимаю, что вы не можете использовать resourcegroup () для элементов, которые не входят в группу ресурсов, но руководства, предлагаемые с использованием этого во вложенном шаблоне и для индексированных ресурсов, должны работать.
- Я почти уверен, что конвейер верен, так как у меня уже есть несколько развертываемых политик аудита.
- Поэкспериментировав на портале, похоже, что это возможно.
- Читают прилично, но я не читал (или, по крайней мере, не понимал), что, кажется, помогает с этим.
Возможно ли то, чего я пытаюсь достичь? Если да, то видите ли, что я делаю не так?
Спасибо за вашу помощь!