Share via


Padrão do Azure Policy: definições de política de grupo

Uma iniciativa é um grupo de definições de política. Ao agrupar definições de política relacionadas em um único objeto, você pode criar uma única atribuição que teria sido várias atribuições.

Definição de iniciativa de exemplo

Essa iniciativa implanta duas definições de política, cada uma com os parâmetros tagName e tagValue. A própria iniciativa tem dois parâmetros: costCenterValue e productNamevalue. Esses parâmetros de iniciativa são fornecidos para cada uma das definições de política agrupadas. Esse design maximiza a reutilização das definições de política existentes, limitando o número de atribuições criadas para implementá-las conforme necessário.

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

Explicação

Parâmetros de iniciativa

Uma iniciativa pode definir seus próprios parâmetros que são passados para as definições de política agrupadas. Neste exemplo, costCenterValue e productNamevalue são definidos como parâmetros de iniciativa. Os valores são fornecidos quando a iniciativa é atribuída.

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

Inclui definições de política

Cada definição de política incluída deve fornecer o policyDefinitionId e uma matriz de parameters se a definição de política aceitar parâmetros. No seguinte snippet, a definição de política incluída usa dois parâmetros: tagName e tagValue. tagName é definido com um literal, mas tagValue usa o parâmetro costCenterValue definido pela iniciativa. Essa passagem de valores melhora a reutilização.

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

Próximas etapas