Azure Policy パターン: グループ ポリシー定義

イニシアティブは、ポリシー定義のグループです。 関連するポリシー定義を 1 つのオブジェクトにグループ化することによって、1 つの割り当てを作成して、複数の割り当てを設定できます。

イニシアティブの定義の例

このイニシアティブでは、2 つのポリシー定義を展開します。それぞれで tagNametagValue のパラメーターを使用します。 イニシアティブ自体には、costCenterValueproductNameValue という 2 つのパラメーターがあります。 これらのイニシアティブ パラメーターはそれぞれ、個々のグループ化されたポリシー定義に提供されます。 この設計では、既存のポリシー定義の再利用を最大化しながら、それらを実装するために作成される割り当ての数を必要に応じて制限します。

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

説明

イニシアチブ パラメーター

イニシアティブでは、グループ化されたポリシー定義に渡される独自のパラメーターを定義できます。 この例では、costCenterValueproductNameValue は両方ともイニシアティブ パラメーターとして定義されています。 値は、イニシアティブが割り当てられるときに指定されます。

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

ポリシー定義を含める

ポリシー定義でパラメーターを受け取る場合は、含まれている各ポリシー定義で policyDefinitionIdparameters 配列を指定する必要があります。 次のスニペットでは、含まれているポリシー定義は、tagNametagValue の 2 つのパラメーターを受け取ります。 tagName はリテラルを使用して定義されていますが、tagValue は、イニシアティブによって定義されたパラメーター costCenterValue を使用します。 この値のパススルーによって、再利用が向上します。

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

次のステップ