Azure Policy パターン: グループ ポリシー定義
イニシアティブは、ポリシー定義のグループです。 関連するポリシー定義を 1 つのオブジェクトにグループ化することによって、1 つの割り当てを作成して、複数の割り当てを設定できます。
イニシアティブの定義の例
このイニシアティブでは、2 つのポリシー定義を展開します。それぞれで tagName と tagValue のパラメーターを使用します。 イニシアティブ自体には、costCenterValue と productNameValue という 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')]"
}
}
}
]
}
}
説明
イニシアチブ パラメーター
イニシアティブでは、グループ化されたポリシー定義に渡される独自のパラメーターを定義できます。 この例では、costCenterValue と productNameValue は両方ともイニシアティブ パラメーターとして定義されています。 値は、イニシアティブが割り当てられるときに指定されます。
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"displayName": "required value for Cost Center tag"
}
},
"productNameValue": {
"type": "String",
"metadata": {
"displayName": "required value for product Name tag"
}
}
},
ポリシー定義を含める
ポリシー定義でパラメーターを受け取る場合は、含まれている各ポリシー定義で policyDefinitionId と parameters 配列を指定する必要があります。 次のスニペットでは、含まれているポリシー定義は、tagName と tagValue の 2 つのパラメーターを受け取ります。 tagName はリテラルを使用して定義されていますが、tagValue は、イニシアティブによって定義されたパラメーター costCenterValue を使用します。 この値のパススルーによって、再利用が向上します。
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
次のステップ
- その他のパターンと組み込みの定義を確認します。
- 「Azure Policy の定義の構造」を確認します。
- 「Policy の効果について」を確認します。