Шаблон политики Azure: группирование определений политики
Инициатива — это группа определений политики. Группируя связанные определения политики в один объект, можно создать одно назначение, которое было бы несколькими назначениями.
Пример определения инициативы
Эта инициатива развертывает два определения политики, каждое из которых принимает параметры tagName и tagValue. Сама инициатива имеет два параметра: costCenterValue и productNameValue. Эти параметры инициативы предоставляются каждому из сгруппированных определений политик. Такая конструкция максимально увеличивает повторное использование существующих определений политики, ограничивая при этом количество заданий, создаваемых для их реализации по мере необходимости.
{
"properties": {
"displayName": "Billing Tags Policy Initiative",
"description": "Specify cost Center tag and product name tag",
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"displayName": "required value for Cost Center tag"
}
},
"productNameValue": {
"type": "String",
"metadata": {
"displayName": "required value for product Name tag"
}
}
},
"policyDefinitions": [{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"parameters": {
"tagName": {
"value": "productName"
},
"tagValue": {
"value": "[parameters('productNameValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "productName"
},
"tagValue": {
"value": "[parameters('productNameValue')]"
}
}
}
]
}
}
Объяснение
Параметры инициативы
Инициатива может определять собственные параметры, которые затем передаются в определения групповых политик. В этом примере как costCenterValue, так и productNameValue определены как параметры инициативы. Значения предоставляются при назначении инициативы.
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"displayName": "required value for Cost Center tag"
}
},
"productNameValue": {
"type": "String",
"metadata": {
"displayName": "required value for product Name tag"
}
}
},
Включает определения политик
Каждое включаемое определение политики должно предоставлять массивы policyDefinitionId и Параметры, если определение политики принимает параметры. В приведенном ниже фрагменте включаемое определение политики принимает два параметра: tagName и tagValue. tagName определяется с помощью литерала, но tagValue использует параметр costCenterValue, определенный инициативой. Эта сквозная передача значений улучшает повторное использование.
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
Дальнейшие действия
- Ознакомьтесь с другими шаблонами и встроенными определениями.
- Изучите статью о структуре определения Политики Azure.
- Изучите сведения о действии политик.