Azure Policyで制御された環境に対するポリシー除外設定方法

今回はAzure Policyで制御された環境に対して、Azure Policyの機能である適用除外を利用し、ポリシーを除外してみます。

適用除外機能とは

概要

適用除外とはAzure Policyの機能の1つです。

Azure Policyで適用したポリシーやイニシアティブ定義*1を対象から除外することが可能です。

適用除外が可能なスコープ

適用除外はスコープを設定し、ポリシーが除外される範囲を定義しています。

スコープは以下単位で設定が可能です。

  • 管理グループ
  • サブスクリプション
  • リソースグループ
  • リソース

また、スコープは上位レベルから下位レベルに継承されます。

例えば、サブスクリプションに適用除外を実施すると、サブスクリプション内のすべてのリソース グループとリソースに適用されます。また、リソースグループAに適用除外を実施すると、リソース グループAと配下のリソースに適用されます。 ただし、リソース グループBには適用除外は適用されません。

適用除外が必要な場面例

適用除外が必要な場面はいくつか考えられます。

特定システムや部署単位で制御している場合

Azure Policyで特定システムや部署向けのサブスクリプションに対して制御を掛けている場合、非定型業務の運用や一時的な検証等で制御を緩めたい場面が想定されます。

適用除外を利用することで、特定サイズのVM作成を許可したり、ネットワーク制御を一時的に緩めるといった対応が可能となります。

Azureサービスでデプロイ可能なリージョンに制限がある場合

Azure Policyで利用可能なリージョンを制限している場合、Azure サービスによっては限られたリージョンでしかデプロイできないことがあります。

適用除外を利用することで、そのAzure サービスのリソース作成時に「利用可能リージョンを制限するポリシーを一時的に除外する」といった対応が可能となります。

今回のシナリオ

今回は事前にサブスクリプションに以下イニシアティブ定義を適用します。

※許可されている場所:東日本のみ許可
※許可されている仮想マシンサイズSKU:"StandardB2S"サイズのみ許可

イニシアティブ定義適用後、"D2s_v5"サイズで仮想マシンを作成する必要が出てきたと仮定します。

そのため、適用除外を利用し「許可されている仮想マシンサイズSKU」のポリシーをサブスクリプションのスコープで除外してみます。

除外した結果、"D2s_v5"サイズの仮想マシンがエラーなく作成可能となる想定です。

設定方法

必要権限について

適用除外の実施前にユーザーアカウントに必要な権限が付与されていることを確認します。

適用除外を実施するために必要な権限は、"リソースポリシーの共同作成者"権限が必要ですので、付与していない場合は実施します。

適用除外の実行

実際に適用除外を実行していきます。

Azure Policyの画面から[割り当て]を選択します。

対象のイニシアティブ定義またはポリシー定義を選択します。

[適用除外の作成]を選択します。

[基本]タブのパラメーターを設定し、[次へ]を選択します。

※スコープはサブスクリプションを設定しています。
※オプションとして適用除外の有効期限を指定することも可能です。

[詳細]タブは既定値で[次へ]を選択します。

※必要に応じてリソースセレクターを追加してください。

[ポリシー]タブで[割り当て全体に適用除外を適用します]のチェックを外し、適用除外を実施したいポリシーにチェックを選択します。

※全てのポリシーに適用除外を実施する場合は[割り当て全体に適用除外を適用します]のチェックは外さないでください。

[確認および作成]タブで設定値に問題がないことを確認し、[作成]を選択します。

通知欄から適用除外が正常に作成されたことを確認します。

Azure Policyの画面から[適用除外]を選択します。

作成した適用除外が表示されていることを確認します。

動作確認

設定した適用除外の動作を確認します。

今回は"D2s_v5"サイズで仮想マシンを作成できることが確認ポイントとなります。

仮想マシン作成時に"D2s_v5"サイズが指定出来ました。

実際に作成することも可能でした。

適用除外の確認は出来ましたが、除外していないポリシーは制御されているのかの確認として、同じイニシアティブ定義で設定済みである「許可されている場所」のポリシー動作確認をします。

Azure リソース作成時のリージョンに西日本(japan west)を指定すると、検証に失敗しました。

詳細を見てみると、対象のイニシアティブ定義で設定したポリシーで失敗していることが確認できました。

終わりに

本記事ではAzure Policyの適用除外機能の説明と実行手順をご紹介いたしました。

適用除外機能を利用することで、Azure Policyで制御された環境において制御を緩和出来ることがイメージいただけたら幸いです。

Azure Policyで制御された環境に何かの理由で制御を緩和する必要がある場合、是非ご活用いただければと思います。

※本記事作成時点(2023年8月)での情報であり、内容は変動する可能性がございます。

*1:複数のポリシー定義をまとめた定義。

執筆担当者プロフィール
瀧田 丈

瀧田 丈(日本ビジネスシステムズ株式会社)

業務ではAzure、VDI(AVD、Horizon)の設計、構築に携わっています。趣味は音楽ライブ、フェスに行くことです。

担当記事一覧