APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【Azure】Azure Policyの仕組み

目次

はじめに

Azure Policyの構成を理解しつつ、いくつか検証してみましたのでご紹介いたします。

Azure Policyとは

会社、組織のルールに則ってAzureリソースを管理するためのポリシー適用サービス。
管理グループ、サブスクリプション、リソースグループや一部のリソースにポリシーを割り当て、ポリシーの内容に沿って評価します。

ポリシー

組み込みポリシー定義とイニシアチブ定義が用意されています。イニシアチブ定義は複数のポリシーをグループ化したものです。
・ポリシー定義:組み込みのポリシー定義の一覧 - Azure Policy | Microsoft Learn
・イニシアチブ定義:組み込みのポリシー イニシアチブの一覧 - Azure Policy | Microsoft Learn

リソースが評価されるタイミング

ポリシーを作成して割り当て後、実際に評価されるタイミング(トリガー)がいくつかあります。
(Microsoft Learn参照。詳細はこちらをご確認ください)

  • ポリシーの新規割り当て
  • すでに割り当てられているポリシーの更新
  • スコープ内のリソースのデプロイまたは更新
  • サブスクリプションの作成または管理グループ内での移動
  • ポリシーの免除(exemption)の作成、更新、削除
  • 標準のコンプライアンス評価サイクル (24時間ごとに自動的に再評価される)
  • オンデマンド(手動評価)

ポリシー規則に一致した際のアクション

Azure Policy内の各ポリシー定義に effect があり、その effect によってポリシー規則に一致したときの動作が決まります。アクションは、対象によって異なります。
参考:Azure Policy 定義の効果の基本 - Azure Policy | Microsoft Learn

自動修復機能

effectにてdeployIfNotExists または modify を設定しているポリシーに準拠していないリソースについては、修復機能を使って準拠状態にさせることができます。この操作にはマネージドIDが使われています。
参考:準拠していないリソースを修復する - Azure Policy | Microsoft Learn

検証

ポリシー作成手順

例として「パブリックネットワーク アクセスを無効にするようにストレージ アカウントを構成する」ポリシーの作成手順をご紹介します。
ポリシーはこちらから参照しました。

  1. Azure Portalの検索から「Policy」を入力し、[作成] > [割り当て] > [Assign policy] をクリック 。

  2. [Scope] にポリシーを適用させたいスコープを、[Policy Definition] に適用したいポリシーを選択し、[ 次へ ] 。

  3. [Parameters] は今回特に設定不要なのでそのまま [次へ] 。

  4. [Remediation](修復)タブにて [Create a remediation task] にチェックをし、修復タスクを作成します。(ポリシー作成後に後付けもできるようです。)
    修復タスク作成のチェックを入れる以外は今回はデフォルト値のまま、[次へ] 。

  5. コンプライアンス違反メッセージのカスタマイズも今回は特に設定をせずに[次へ] をクリックし、ポリシー作成を完了。

ダッシュボード確認

いくつかのポリシーを設定後にダッシュボードを確認しました。

特定のVMサイズ(SKU)のみ作成を許可するポリシー


試しに許可されていないVMを作成しようとすると、エラーが出ます。

リソースが作成されたらリソースグループのリージョンと一致しているかチェック(監査)するポリシー

ダッシュボードからポリシーを選択し、対象のリソースの [Conpliance reason] の [Details] をクリックすると詳細を確認できます。(添付画像は、リソースグループのリージョンはJapan WestなのにVMがJapan Eastで違反となっている)

パブリックネットワークアクセスが有効になっているストレージアカウントがあったら無効にするポリシー

Azure側で多くのポリシーと対応アクションが用意されていますので、組織のルールに合わせて利用することで効率的な運用に役立てることが可能です。