Azure Policy でのスコープについて
どのリソースが評価可能であるか、また Azure Policy でどのリソースを評価するかを決定する設定は多数あります。 これらの制御の主要な概念が、"スコープ" です。 Azure Policy のスコープは、Azure Resource Manager でのスコープの動作に基づいています。 概要については、Azure Resource Manager でのスコープに関するセクションを参照してください。
この記事では、Azure Policy での "スコープ" の重要性と、関連するオブジェクトおよびプロパティについて説明します。
定義の場所
Azure Policy によって使用される最初のインスタンスのスコープは、ポリシー定義が作成されるときです。 定義は、管理グループまたはサブスクリプションのいずれかに保存することができます。 この場所によって、イニシアティブまたはポリシーを割り当てることができるスコープが決まります。 リソースは、割り当ての対象になるには、定義の場所のリソース階層内にある必要があります。 ポリシーの評価方法については、「Azure Policy の対象となるリソース」を参照してください。
定義の場所が:
- サブスクリプション - ポリシーが定義されているサブスクリプションと、そのサブスクリプション内のリソースにポリシー定義を割り当てることができます。
- 管理グループ - ポリシーが定義されている管理グループと、子管理グループおよび子サブスクリプション内のリソースにポリシー定義を割り当てることができます。 ポリシー定義を複数のサブスクリプションに適用する予定がある場合、その場所は各サブスクリプションを含む管理グループである必要があります。
この場所は、ポリシー定義を使用するすべてのリソースによって共有されるリソース コンテナーである必要があります。 このリソース コンテナーは、通常、ルート管理グループの近くにある管理グループです。
割り当てスコープ
割り当てには、スコープを設定するいくつかのプロパティがあります。 これらのプロパティを使用して、どのリソースを Azure Policy で評価するかと、どのリソースをコンプライアンスで考慮するかを決定します。 これらのプロパティは、以下の概念と対応しています。
- 包含 - 定義により、リソース階層または個々のリソースのコンプライアンスが評価されます。 包含し、コンプライアンス評価の対象となるリソースは、割り当てオブジェクトのスコープによって決まります。 詳細については、「Azure Policy の割り当ての構造」を参照してください。
- 除外 - 定義により、リソース階層または個々のリソースのコンプライアンスは評価されません。 割り当てオブジェクトの
properties.notScopes
"配列" プロパティによって、何を除外するかが決まります。 これらのスコープ内のリソースは評価されず、コンプライアンスの対象になりません。 詳細については、Azure Policy の割り当ての構造で除外されるスコープに関する記事を参照してください。
ポリシー割り当てのプロパティに加えて、Azure Policy 適用除外構造オブジェクトがあります。 適用除外により、評価されない割り当ての部分を識別する方法が提供されることで、スコープのストーリーが強化されます。
適用除外: 定義により、リソース構造または個々のリソースのコンプライアンスは評価されますが、別の方法による権利放棄や軽減策などの理由については評価されません。 この状態のリソースは、追跡できるように、コンプライアンス レポートでは免除として表示されます。 免除オブジェクトは、リソース階層に対して、または子オブジェクトとして個々のリソースに対して作成されます。これにより、免除のスコープが決まります。 リソース階層または個々のリソースは、複数の割り当てから免除できます。 適用除外は、expiresOn
プロパティを使用して、スケジュールに従って期限切れになるように構成できます。 詳細については、「Azure Policy 適用除外の構造」を参照してください。
Note
リソース階層または個々のリソースに免除を与えることによる影響のため、免除には追加のセキュリティ対策があります。 リソース階層または個々のリソースに対して Microsoft.Authorization/policyExemptions/write
操作を要求するだけでなく、免除の作成者は、ターゲットの割り当てに対する exempt/Action
動詞を持つ必要があります。
スコープの比較
次の表は、スコープのオプションの比較です。
リソース | 包含 | 除外 (notScopes) | 除外 |
---|---|---|---|
リソースが評価される | ✔ | - | - |
Resource Manager オブジェクト | - | - | ✔ |
ポリシー割り当てオブジェクトを変更する必要がある | ✔ | ✔ | - |
では、除外または免除のどちらを使用するかをどのように選択しますか? 通常、除外は、同じレベルのガバナンスを必要としないテスト環境のような、広範な範囲の評価を完全にバイパスする場合にお勧めします。 リソースまたはリソース階層を引き続き追跡する必要があり、それ以外の場合は評価する必要がある、期限付きのシナリオまたはより具体的なシナリオでは、免除が推奨されますが、コンプライアンスを評価すべきでない特定の理由があります。
次のステップ
- ポリシー定義の構造についてさらに学習します。
- プログラムによってポリシーを作成する方法を理解します。
- コンプライアンス データを取得する方法を学習します。
- 準拠していないリソースを修復する方法を学習します。
- Azure 管理グループを使用してリソースを整理する方法の詳細を確認します。