Partager via


Modèle Azure Policy : Grouper des définitions de stratégie

Une initiative est un groupe de définitions de stratégie. En groupant des définitions de stratégie associées dans un objet unique, vous pouvez créer une seule affectation au lieu de plusieurs.

Exemple de définition d’initiative

Cette initiative déploie deux définitions de stratégie, chacune prenant les paramètres tagName et tagValue. L’initiative elle-même a deux paramètres : costCenterValue et productNameValue. Ces paramètres d’initiative sont fournis à chacune des définitions de stratégie groupées. Cette conception optimise la réutilisation des définitions de stratégie existantes tout en limitant le nombre d’affectations créées pour les implémenter en fonction des besoins.

{
    "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')]"
                    }
                }
            }
        ]
    }
}

Explication

Paramètres d’initiative

Une initiative peut définir ses propres paramètres, qui sont ensuite transmis aux définitions de stratégie groupées. Dans cet exemple, costCenterValue et productNameValue sont définis en tant que paramètres d’initiative. Les valeurs sont fournies quand l’initiative est affectée.

"parameters": {
    "costCenterValue": {
        "type": "String",
        "metadata": {
            "displayName": "required value for Cost Center tag"
        }
    },
    "productNameValue": {
        "type": "String",
        "metadata": {
            "displayName": "required value for product Name tag"
        }
    }
},

Définitions de stratégie incluses

Chaque définition de stratégie incluse doit fournir le policyDefinitionId et un tableau parameters si la définition de stratégie accepte des paramètres. Dans l’extrait de code suivant, la définition de stratégie incluse accepte deux paramètres : tagName et tagValue. tagName est défini avec un littéral, mais tagValue utilise le paramètre costCenterValue défini par l’initiative. Ce relais de valeurs améliore la réutilisation.

{
    "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
    "parameters": {
        "tagName": {
            "value": "costCenter"
        },
        "tagValue": {
            "value": "[parameters('costCenterValue')]"
        }
    }
},

Étapes suivantes