Azure Policy-patroon: beleidsdefinities groeperen
Een initiatief is een groep beleidsdefinities. Door verwante beleidsdefinities in één object te groeperen, kunt u één toewijzing maken in de plaats van meerdere.
Voorbeeld van initiatiefdefinitie
Dit initiatief implementeert twee beleidsdefinities die allebeide de parameters tagName en tagValue overnemen. Het initiatief zelf heeft twee parameters: costCenterValue en productNameValue. Deze initiatiefparameters worden beide gegeven aan elk van de beleidsdefinities in de groep. Dit ontwerp hergebruikt zoveel mogelijk bestaande beleidsdefinities en beperkt het aantal toewijzingen dat wordt gemaakt voor de implementatie.
{
"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')]"
}
}
}
]
}
}
Uitleg
Initiatiefparameters
Een initiatief kan zijn eigen parameters definiëren, die vervolgens worden doorgegeven aan de beleidsdefinities in de groep. In dit voorbeeld worden zowel costCenterValue als productNameValue gedefinieerd als parameters van het initiatief. De waarden worden opgegeven bij toewijzing van het initiatief.
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"displayName": "required value for Cost Center tag"
}
},
"productNameValue": {
"type": "String",
"metadata": {
"displayName": "required value for product Name tag"
}
}
},
Inclusief beleidsdefinities
Elke opgenomen beleidsdefinitie moet de policyDefinitionId en een matrix met parameters opgeven als de beleidsdefinitie parameters accepteert. In het volgende fragment heeft de opgenomen beleidsdefinitie twee parameters: tagName en tagValue. tagName wordt gedefinieerd met een letterlijke waarde, maar tagValue gebruikt de parameter costCenterValue die gedefinieerd wordt door het initiatief. Deze passthrough van waarden zorgt voor beter hergebruik.
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
Volgende stappen
- Bekijk andere patronen en ingebouwde definities.
- Lees over de structuur van Azure Policy-definities.
- Lees Informatie over de effecten van het beleid.