5 Onmisbare Azure Policies voor elke omgeving
1. Vereiste tags op resources
Het afdwingen van tags op resources helpt je om vaste tags (zoals environment, owner of department) toe te passen tijdens deployment. Dit maakt beheer van grote omgevingen veel eenvoudiger.
Tags helpen bij kosten, eigenaarschap en het scheiden van omgevingen.
Een environment (env) tag (dev, test, prod) houdt je reports en dashboards overzichtelijk.
Eenvoudig voorbeeld: Je kunt deze policy zo instellen dat deployment stopt als tags ontbreken of dat er automatisch standaardwaarden worden toegevoegd.
Configuratie:
az policy definition create --name "require-tags-on-resources" --display-name "Require Tags on Resources" --description "This policy requires that specific tags are assigned to all resources." --rules '{
"if": {
"field": "tags",
"exists": "false"
},
"then": {
"effect": "deny"
}
}' --mode All
Policy toewijzen
Je kunt deze policy toepassen op elk scope-niveau: management group, subscriptie of resource group.
Bijvoorbeeld op een resource group met de naam SpecificResource:
az policy assignment create \
--name "allowed-resource-types" \
--policy "allowed-resource-types" \
--scope "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"
Als iemand een resource wil deployen die niet op de toegestane lijst staat, blokkeert de policy dit direct.
2. Tags erven
De Inherit tags policy helpt je om tags consistent te houden door automatisch tags van een parent (zoals subscriptie of resource group) door te geven aan onderliggende resources.
Dit werkt goed als je subscripties hebt opgesplitst in omgevingen zoals dev, test en prod, en je wilt dat elke resource een vaste Environment tag krijgt.
Resources die eerder zijn uitgerold erven deze tag zodra je de policy toepast op de subscriptie.
Voordelen:
- Houd tag-waarden consistent binnen omgevingen.
- Minder handmatig werk en minder kans op fouten.
- Makkelijker beheer en rapportage.
Na het definiëren wijs je de policy toe aan je subscription of resource group. Resources zonder die tag nemen automatisch de tag van de parent over.
Configuratie:
Deze policy gebruikt de parameter tagName om te bepalen welke tag van de parent wordt overgenomen.
{
"properties": {
"displayName": "Inherit a tag from the resource group",
"mode": "Indexed",
"description": "Adds or replaces the specified tag and value from the parent resource group when any resource is created or updated. Existing resources can be remediated by triggering a remediation task.",
"metadata": {
"category": "Tags"
},
"parameters": {
"tagName": {
"type": "String",
"metadata": {
"displayName": "Tag Name",
"description": "Name of the tag, such as 'environment'"
}
}
},
"policyRule": {
"if": {
"allOf": [
{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[resourceGroup().tags[parameters('tagName')]]"
},
{
"value": "[resourceGroup().tags[parameters('tagName')]]",
"notEquals": ""
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [
{
"operation": "addOrReplace",
"field": "[concat('tags[', parameters('tagName'), ']')]",
"value": "[resourceGroup().tags[parameters('tagName')]]"
}
]
}
}
}
}
}
Wijs de policy toe aan je subscription of management group, vul de tag naam in (zoals environment), en elke resource zonder die tag neemt deze automatisch over van de parent resource group.