Azure Policy mönster: grupprincipdefinitioner
Ett initiativ är en grupp med principdefinitioner. Genom att gruppera relaterade principdefinitioner i ett enda objekt kan du skapa en enda tilldelning som skulle ha varit flera tilldelningar.
Exempel på initiativdefinition
Det här initiativet distribuerar två principdefinitioner, som var och en tar tagName - och tagValue-parametrarna . Själva initiativet har två parametrar: costCenterValue och productNameValue. Dessa initiativparametrar tillhandahålls var och en av de grupperade principdefinitionerna. Den här designen maximerar återanvändningen av befintliga principdefinitioner och begränsar antalet tilldelningar som skapas för att implementera dem efter behov.
{
"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')]"
}
}
}
]
}
}
Förklaring
Initiativparametrar
Ett initiativ kan definiera sina egna parametrar som sedan skickas till de grupperade principdefinitionerna. I det här exemplet definieras både costCenterValue och productNameValue som initiativparametrar. Värdena anges när initiativet tilldelas.
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"displayName": "required value for Cost Center tag"
}
},
"productNameValue": {
"type": "String",
"metadata": {
"displayName": "required value for product Name tag"
}
}
},
Innehåller principdefinitioner
Varje inkluderad principdefinition måste ange policyDefinitionId och en parametermatris om principdefinitionen accepterar parametrar. I följande kodfragment tar den inkluderade principdefinitionen två parametrar: tagName och tagValue. tagName definieras med en literal, men tagValue använder parametern costCenterValue som definieras av initiativet. Genomströmningen av värden förbättrar återanvändning.
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
Nästa steg
- Granska andra mönster och inbyggda definitioner.
- Granska Azure Policy-definitionsstrukturen.
- Granska Förstå policy-effekter.