0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本のお客様向け Azure Policy 実践ガイド ~Built-in だけで始めるガバナンス~

0
Last updated at Posted at 2026-06-16

本記事は GitHub Copilot および Microsoft Foundry を活用して作成されています。内容の正確性については各公式ドキュメントをご確認ください。

クラウドのガバナンスを語るうえで避けて通れないのが Azure Policy です。
本記事では「カスタムポリシーは作らず、Built-in(組み込み)ポリシーだけで実用的な統制を始める」ことをゴールに、Azure Policy の基礎から、CAF(クラウド導入フレームワーク)に沿ったカテゴリ設計、そしてよく使う Built-in ポリシーとサンプルパラメータまでをまとめます。

想定読者: これから Azure のガバナンス設計を始める情報システム部門・クラウド基盤担当の方


目次


1. Azure Policy とは

Azure Policy は、Azure リソースが組織のルール(標準・コンプライアンス要件)に準拠しているかを評価・強制するためのサービスです。

ポイントは大きく3つです。

  • 自動評価: 「こうあるべき」というルール(ポリシー定義)を JSON で宣言すると、Azure が自動的に評価します。評価は約24時間ごとに再実行されるほか、ポリシー割り当ての作成・更新時や、対象リソースの作成・更新時にもトリガーされます。評価対象は新規作成リソースだけでなく、割り当てスコープ内の既存リソースもすべて含まれるため、ルールを追加すると既存環境の準拠状況も自動的に可視化されます。
  • 適用範囲: 管理グループ(MG)→ サブスクリプション → リソースグループ → リソースの階層に割り当てます。上位スコープへの割り当ては下位へ自動的に継承されるため、中間ルート MG に割り当てれば配下の全サブスクリプションへ一括適用できます。一方で、特定のサブスクリプションやリソースグループを評価対象から外したい場合は、割り当て時の除外(exclusion) や、ポリシー定義の notScopes 指定で柔軟に除外できます。
  • イニシアティブ(ポリシーセット): 複数のポリシーを束ねた「イニシアティブ」として一括管理できます(例: 後述の MCSB)。

ガバナンスの基本は「上位の管理グループに Built-in ポリシーを割り当て、組織全体へ継承させる」ことです。Azure Landing Zone(ALZ)も同じ考え方で設計されています。

用語: 本記事では「管理グループ」を MG、「中間ルート MG」を ALZ の最上位(テナントルート直下の組織用ルート)として扱います。


2. 効果(Effect)の種類

Azure Policy の挙動は「効果(Effect)」で決まります。代表的な4つ(+関連)を押さえれば十分です。

効果 挙動 既存リソース 新規作成 主な用途
Disabled 割り当てるが評価しない 影響なし 影響なし 一時的な無効化、段階導入の初期値
Audit 違反を記録するだけ(ブロックしない) 非準拠としてレポート 作成は許可 まず現状把握したいとき
Deny 違反するリソースの作成・更新を拒否 既存は変更されない ブロック 確実に守らせたいルール
DeployIfNotExists (DINE) 不足している構成を自動展開 修復タスクで是正可 作成後に自動構成 診断設定や Defender の自動有効化

補足としてよく出てくる効果:

  • AuditIfNotExists (AINE): 関連リソースが存在しない/非準拠なら監査。「NSG が付いていない」等の関連チェックに使用。
  • Modify: 作成・更新時にプロパティやタグを追加・変更(例: タグの継承付与)。

Disabled / Audit / Deny / DINE の違いを一言で

  • Disabled = 何もしない(評価すらしない)
  • Audit = 見張るだけ(止めない)
  • Deny = 止める
  • DINE = 足りないものを作る

段階導入のセオリー

いきなり Deny で割り当てると既存ワークロードが壊れるリスクがあります。実務では次の順で“締めていく”のが定石です。

Disabled → Audit(現状把握)→ Deny(強制)

補足: 同じポリシー(同一 GUID)を二重に割り当てると効果が衝突します。より厳しい効果(Deny > Audit > Disabled)が優先されるため、二重割り当ては避けましょう。


3. 統制すべきカテゴリ(CAF の定義より)

統制対象は、Microsoft の Cloud Adoption Framework(CAF)の Govern で定義されたカテゴリに沿って整理すると漏れがありません。本記事では以下のカテゴリ ID を使います。

ID カテゴリ 統制の狙い
RC Regulatory compliance(規制対応) データ所在地・許可リージョンなど法令/規制対応
SC Security(セキュリティ) ネットワーク露出・暗号化・脅威防御
CM Cost management(コスト管理) SKU 制限など無駄なコストの抑制
OP Operations(運用) 監視・ログ・アラートの自動化
DG Data(データ) 暗号化・転送保護・キー管理
RM Resource management(リソース管理) 命名・タグ・リソース種別の統制
ID Identity(ID) MFA・特権アカウントの統制

重要: Azure Policy “だけ” では完結しない

Azure Policy は強力ですが、万能ではありません。評価できるのは「Azure リソースの構成」に限られます。次のような領域は、専用サービスと組み合わせることで初めて統制が完成します。

領域 Azure Policy の役割 組み合わせるべきサービス
脅威検知・セキュリティ態勢 Defender プランの有効化を強制(DINE) Microsoft Defender for Cloud が検知・スコアリング
データガバナンス・分類 ストレージの暗号化等を強制 Microsoft Purview がデータ分類・カタログ・DLP
ID・アクセス制御 特権アカウントの MFA を監査するのみ Entra 条件付きアクセス / PIM が強制
運用アラート アラートルールを展開(DINE) Azure Monitor(AMBA) が通知・可視化

たとえば「全アカウントの MFA 必須化」や「PIM による Just-In-Time 特権昇格」は Azure Policy では強制も監査もできません。これらは Entra ID(条件付きアクセス・PIM)側で構成します。

結論: Policy は“予防と強制”、Defender/Purview/Monitor は“検知と運用” という役割分担で設計しましょう。


4. よく使われる Built-in Policy 一覧とサンプルパラメータ

ここからは実際に割り当てる Built-in ポリシーの一覧です。前提としてカスタムポリシーは使わず、Built-in(と一部 ALZ 標準イニシアティブ)から選定しています。

表の見方:

  • MCSB v2 に含まれるか: 〇 = Microsoft cloud security benchmark v2 に内包され、評価(監査)は自動で行われる。ただし Effect を変更できるのはパラメーター化された一部(約 16 個)のみのため、希望の Effect(例: Deny)で強制したい場合は個別割り当てが必要。空白 = 個別追加が必要。
  • 効果(Prod / 非Prod): 本番は厳しめ(Deny)、非本番は緩め(Audit/Disabled)の推奨値。
CAF ID カテゴリ 種別 名称(英語) 名称(日本語) ポリシーID MCSB v2 効果(Prod / 非Prod) パラメータ 推奨スコープ
SC01 Security イニシアティブ Microsoft cloud security benchmark v2 Microsoft クラウド セキュリティ ベンチマーク v2 1f3afdf9-d0c9-4c3d-847f-89da613e70a8 項目毎 *Effect 中間ルート MG
SC02 Security イニシアティブ(複数ポリシーの束) Configure Microsoft Defender for Cloud plans Microsoft Defender for Cloud プランの構成 Configure Microsoft Defender for Cloud plans(組み込みイニシアティブ / MDC_Defender_Full_Plans_DINE DeployIfNotExists 各 Defender プラン(pricingTier=Standard)・拡張機能の有効化 中間ルート MG
RC01 Regulatory compliance ポリシー Allowed locations 許可される場所 e56962a6-4747-49cd-b67b-bf8b01975c4c Deny / Deny listOfAllowedLocations=[japaneast,japanwest] 中間ルート MG
RC02 Regulatory compliance ポリシー Allowed locations for resource groups リソースグループに許可される場所 e765b5de-1225-4ba3-bd56-1ac6695af988 Deny / Deny listOfAllowedLocations=[japaneast,japanwest] 中間ルート MG
SC03 Security ポリシー Network interfaces should not have public IPs NIC はパブリックIPを持つべきでない 83a86a26-fd1f-447c-b59d-e51f44264114 Deny / Audit effect 中間ルート MG
SC04 Security ポリシー Storage accounts should disable public network access ストレージはパブリックネットワークアクセスを無効化すべき b2982f36-99f2-4db5-8eff-283140c09693 Deny / Audit effect Prod MG=Deny
SC05 Security ポリシー All Internet traffic should be routed via your deployed Azure Firewall 全インターネットトラフィックは Azure Firewall 経由にすべき fc5e4038-4584-4632-8c85-c0448d374b2c AuditIfNotExists / Disabled effect Landing zones MG
SC06 Security ポリシー Subnets should be associated with a Network Security Group サブネットは NSG に関連付けるべき e71308d3-144b-4262-b144-efdc3cc90517 AuditIfNotExists effect 中間ルート MG
SC07 Security ポリシー Azure DDoS Protection should be enabled Azure DDoS Protection を有効にすべき a7aca53f-2ed4-4466-a25e-0b45ade68efd AuditIfNotExists / Disabled effect Prod MG
SC08 Security ポリシー Key vaults should have deletion protection enabled Key Vault は削除保護(purge protection)を有効にすべき 0b60c0b2-2dc2-4e1c-b5c9-abbed971de53 Deny / Audit effect 中間ルート MG
SC09 Security ポリシー Network Watcher flow logs should have traffic analytics enabled NSG フローログを有効にすべき 27960feb-a23c-4577-8d36-ef8b5f35e0be Audit / Disabled effect 中間ルート MG
CM01 Cost management ポリシー Allowed virtual machine size SKUs 許可される VM サイズ SKU cccc23c7-8427-4f53-ad12-b6a63eb452b3 Disabled / Deny listOfAllowedSKUs=[Standard_D2s_v5,...] 非Prod/Sandbox MG
OP01 Operations イニシアティブ Deploy Azure Monitor Baseline Alerts (AMBA) Azure Monitor ベースライン アラートの展開 AMBA イニシアティブ群 DeployIfNotExists Log Analytics ワークスペースID Platform / Landing zones MG
OP02 Operations イニシアティブ(複数ポリシーの束) Enable allLogs category group resource logging for supported resources to Log Analytics サポート対象リソースの allLogs ログを Log Analytics へ有効化 0884adba-2312-4468-abeb-5422caed1038 DeployIfNotExists logAnalytics(送信先WS), diagnosticsLogCategoryGroup(audit/allLogs) Platform MG
OP03 Operations ポリシー Configure subscriptions to send activity logs to Log Analytics アクティビティログを Log Analytics へ送信 2465583e-4e78-4c15-b6be-a36cbc7c8b0f DeployIfNotExists logAnalytics 各サブスク
DG01 Data ポリシー Secure transfer to storage accounts should be enabled ストレージはセキュア転送(HTTPS)を有効にすべき 404c3081-a854-4457-ae30-26a93ef643f9 Deny / Audit effect 中間ルート MG=Deny
DG02 Data ポリシー App Service apps should only be accessible over HTTPS Web アプリは HTTPS のみでアクセス可能にすべき a4af4a39-4135-47fb-b175-47fbdf85311d Deny / Audit effect 中間ルート MG
DG03 Data ポリシー Managed disks should be double encrypted マネージドディスクは二重暗号化(CMK)すべき 702dd420-7fcc-42c5-afe8-4026edd20fe0 Audit / Disabled effect Prod MG
DG04 Data ポリシー Storage accounts should use customer-managed key (CMK) for encryption ストレージは CMK を使用すべき 6fac406b-40ca-413b-bf8e-0bf964659c25 Audit / Disabled effect Prod MG
DG05 Data ポリシー Storage accounts should have the specified minimum TLS version ストレージは最小 TLS バージョンを満たすべき fe83a0eb-a853-422d-aac2-1bffd182c5d0 Deny / Audit minimumTlsVersion=TLS1_2 中間ルート MG
RM01 Resource management ポリシー Not allowed resource types 許可されないリソースの種類 6c112d4e-5bc7-47ae-a041-ea2d9dccd749 Deny / Deny listOfResourceTypesNotAllowed 中間ルート MG
RM02 Resource management ポリシー Require a tag on resources リソースにタグを必須にする 871b6d14-10aa-478d-b590-94f262ecfa99 Deny / Audit tagName(CostCenter/Environment/Owner) 中間ルート MG
RM03 Resource management ポリシー Inherit a tag from the resource group リソースグループからタグを継承 cd3aa116-8754-49c9-a813-ad46512ece54 Modify tagName 中間ルート MG
ID01 Identity ポリシー Users must authenticate with multi-factor authentication to create or update resources リソースの作成・更新時にユーザーは多要素認証で認証する必要がある 4e6c27d5-a6ee-49cf-b2b4-d8fe90fa2b8b Audit effect 中間ルート MG
ID02 Identity ポリシー A maximum of 3 owners should be designated for your subscription サブスクリプションのオーナーは最大3名にすべき 4f11b553-d42e-4e3a-89be-32ca364cad4c AuditIfNotExists effect 各サブスク
ID03 Identity ポリシー Storage accounts should prevent shared key access ストレージは共有キー認証を禁止すべき(マネージドID利用) 8c6a50c6-9ffd-4ae7-986f-5fa6111f9a54 Audit / Deny effect Prod MG

ID01 の3ポリシー: owner=e3e008c3-56b9-4133-8fd7-d3347377402a / write=931e118d-50a1-4457-a5e4-78550e086c52 / read=81b3ccb4-e6e8-4e4a-8d05-5df25cd29fd4

サンプルパラメータセット(許可リージョン: 日本)

RC01 / RC02 を「日本リージョンのみ許可」で割り当てる例です(Azure CLI)。

# 許可リージョンを日本に限定するパラメータ(RC01: Allowed locations)
az policy assignment create \
  --name "allowed-locations-japan" \
  --display-name "Allowed locations (Japan only)" \
  --policy "e56962a6-4747-49cd-b67b-bf8b01975c4c" \
  --scope "/providers/Microsoft.Management/managementGroups/<中間ルートMG名>" \
  --params '{
    "listOfAllowedLocations": { "value": ["japaneast", "japanwest"] }
  }'

補足: RC01(Allowed locations)は global リージョンのリソース(Front Door・DNS など)を自動的に評価免除するため、listOfAllowedLocationsglobal を含める必要はありません。RC02(リソースグループ用)とセットで割り当てることで、リソース本体とメタデータの双方を日本リージョンに限定できます。

タグ必須化(RM02)のサンプル:

# CostCenter タグを必須にする(無いと Deny)
az policy assignment create \
  --name "require-costcenter-tag" \
  --policy "871b6d14-10aa-478d-b590-94f262ecfa99" \
  --scope "/providers/Microsoft.Management/managementGroups/<中間ルートMG名>" \
  --params '{ "tagName": { "value": "CostCenter" } }'

許可 VM サイズ SKU の制限(CM01)のサンプル:

# 汎用・バースト系の標準サイズのみ許可し、高額な GPU/大型 SKU の乱立を防ぐ
az policy assignment create \
  --name "allowed-vm-skus" \
  --policy "cccc23c7-8427-4f53-ad12-b6a63eb452b3" \
  --scope "/providers/Microsoft.Management/managementGroups/<非Prod/Sandbox MG名>" \
  --params '{
    "listOfAllowedSKUs": {
      "value": [
        "Standard_B2s", "Standard_B2ms", "Standard_B4ms",
        "Standard_D2s_v5", "Standard_D4s_v5", "Standard_D8s_v5",
        "Standard_E4s_v5", "Standard_E8s_v5"
      ]
    }
  }'

許可しないリソース種別の制限(RM01)のサンプル:

# 非推奨のクラシックリソースや、誤用・高コストにつながりやすい種別の作成を Deny
az policy assignment create \
  --name "not-allowed-resource-types" \
  --policy "6c112d4e-5bc7-47ae-a041-ea2d9dccd749" \
  --scope "/providers/Microsoft.Management/managementGroups/<中間ルートMG名>" \
  --params '{
    "listOfResourceTypesNotAllowed": {
      "value": [
        "Microsoft.ClassicCompute/virtualMachines",
        "Microsoft.ClassicStorage/storageAccounts",
        "Microsoft.ClassicNetwork/virtualNetworks",
        "Microsoft.Compute/galleries/images",
        "Microsoft.Network/expressRouteCircuits"
      ]
    }
  }'

5. MCSB v2 に含まれる Policy の例

Microsoft cloud security benchmark(MCSB)v2 は、Microsoft Defender for Cloud のセキュリティ標準として提供される組み込みイニシアティブで、414 個の Built-in ポリシーを束ねています(ポリシーID: 1f3afdf9-d0c9-4c3d-847f-89da613e70a8)。割り当て直後の Effect は 大半が Audit/AuditIfNotExists(約 95%) で、リソース作成をブロックする Deny はごく少数(4 件)にとどまります。なお、割り当ての effect パラメーターで変更できるのはパラメーター化された一部(約 16 個)のみで、残りは Effect がイニシアティブ定義に固定(ハードコード)されています。

注意: 本記事執筆時点(2026 年 6 月)で MCSB v2 はプレビュー(Preview) です。本番環境への適用前に最新の提供状況を確認してください。詳細は Microsoft クラウド セキュリティ ベンチマーク v2 の概要(プレビュー) を参照してください。

つまり「MCSB を割り当てておけば、上表で〇が付いたポリシーは評価(監査)が自動で行われる」という点がメリットです。ただし注意点があります。MCSB v2 のイニシアティブ割り当てでは、各ポリシーの Effect を変更できるのはパラメーター化された一部(約 16 個)のみで、残りは Effect がイニシアティブ定義に固定(ハードコード)されています。そのため、特定のポリシーを希望する Effect(例: Deny)で強制したい場合は、その組み込みポリシーを個別に割り当てる必要があります(MCSB 本体の評価はそのまま残ります)。

MCSB v2 に内包される代表例:

名称 ポリシーID MCSB の主な統制
Secure transfer to storage accounts should be enabled 404c3081-a854-4457-ae30-26a93ef643f9 データ保護(転送時の暗号化)
App Service apps should only be accessible over HTTPS a4af4a39-4135-47fb-b175-47fbdf85311d データ保護(HTTPS 強制)
Subnets should be associated with a Network Security Group e71308d3-144b-4262-b144-efdc3cc90517 ネットワークセキュリティ
Accounts with owner permissions should be MFA enabled e3e008c3-56b9-4133-8fd7-d3347377402a 特権アクセス管理
A maximum of 3 owners should be designated for your subscription 4f11b553-d42e-4e3a-89be-32ca364cad4c 特権アクセス管理

ポイント: MCSB は「監視・評価」が主目的。Defender プランの実際の有効化は別途 Deploy-MDFC-Config(SC02)のような DINE イニシアティブで行います。MCSB(評価)と Defender 有効化(強制)は役割が異なる点に注意してください。

MCSB v2 は AI ワークロードも考慮している

MCSB v2 では、近年の生成 AI 利用拡大を踏まえ、AI サービス(Microsoft Foundry など)に関する統制も含まれるようになりました。代表的なものとして、次のような観点があります。

  • 利用可能なモデルの制限: デプロイできる AI モデルを許可リストで限定する(例: 承認済みモデルのみデプロイ可能にする)
  • ネットワーク分離: AI サービスのパブリックネットワークアクセス無効化・プライベートエンドポイント利用
  • データ保護・認証: 顧客管理キー(CMK)による暗号化、ローカル認証の無効化(Entra ID 認証への統一)

ただし注意点として、Azure Policy で制御できるのは「リソース構成レベル」のガードレール(どのモデルを・どのネットワークで・どの認証方式で使えるか)までです。プロンプトインジェクション対策や有害コンテンツのブロックといった実行時の入出力制御は、Azure AI Content Safety(コンテンツフィルター)側で実装すべき領域です。

役割分担: Azure Policy = AI リソースの構成ガードレール(許可モデル・ネットワーク・暗号化)コンテンツフィルター = 実行時のプロンプト・応答の安全性制御。両者を組み合わせて初めて AI ガバナンスが完成します。


6. AMBA に含まれる Policy(アラート)の例

AMBA(Azure Monitor Baseline Alerts) は、Azure サービスに対する推奨アラートルールをポリシー(DINE)で自動展開するイニシアティブ群です。ALZ では管理グループ階層(Connectivity / Management / Identity / Landing Zone など)ごとに割り当てられます。

AMBA は「ログを集める(OP02)」のではなく「異常を通知する」ための仕組みで、メトリックアラート・アクティビティログアラート・サービス正常性アラートを展開します。代表的に展開されるアラート例:

対象 アラート例 種類
Virtual Machine CPU 使用率・利用可能メモリ・OS ディスク IOPS 超過 メトリックアラート
Storage Account 可用性低下・スロットリング発生 メトリックアラート
Key Vault リクエスト遅延・可用性低下 メトリックアラート
サブスクリプション全体 Service Health(計画メンテ・障害・アドバイザリ) サービス正常性アラート
すべてのリソース リソース削除・ポリシー違反などの操作 アクティビティログアラート

補足: AMBA は OSS として GitHub で公開・更新されており、ALZ の既定割り当てに組み込まれています。詳細は Azure Monitor Baseline Alerts を参照してください。

OP01(AMBA)と OP02(診断ログ)の違い

混同しやすいので整理します。

  • OP01 = AMBA: 「異常を検知して通知」する(アラート)
  • OP02 = 診断ログ: 「リソースログを Log Analytics へ集約」する(ログ転送)

両方を組み合わせて初めて「ログが集まり、異常時に通知が飛ぶ」運用が完成します。


7. まとめ

  • Azure Policy は Built-in だけでも実用的なガバナンスが組めます。まずはカスタムを作らず、組み込みとイニシアティブから選定しましょう。
  • 効果は Disabled → Audit → Deny の順で段階導入するのが安全です。
  • 統制カテゴリは CAF(RC/SC/CM/OP/DG/RM/ID) で整理すると漏れません。
  • Policy 単独では完結しない領域(脅威検知・データ分類・ID 強制)は、Defender / Purview / Entra(条件付きアクセス・PIM)/ Azure Monitor(AMBA) と組み合わせて設計します。
  • セキュリティ系の多くは MCSB v2 に内包されるため、まず MCSB を割り当て、effect で締めていくのが効率的です。

そして見逃せないのが、これらのガバナンス機能の多くが無料で使えるという点です。

  • Azure Policy 自体は追加料金なしで利用できます。Built-in ポリシーの割り当て・評価・コンプライアンスレポートにサービス課金は発生しません
  • MCSB v2 の割り当て・評価も無料です(Defender for Cloud の Foundational CSPM/無料枠で利用可能)。
  • AMBA のイニシアティブ展開そのものも無料です。

つまり、本記事で紹介した「Built-in ポリシー+ MCSB + AMBA」によるガバナンスの土台は、ほぼコストをかけずに始められるわけです。

ただし注意: Policy が展開・有効化する先のリソースには料金が発生します。たとえば Defender for Cloud の各保護プラン(拡張機能)、AMBA が作成するアラートルール、診断ログの Log Analytics 取り込み・保持などは従量課金の対象です。「ガバナンスの仕組み(Policy)は無料、守る対象や付随リソースは有料」と整理しておくと安心です。

ガバナンスは「一度に完璧」を目指すより、Audit で現状を可視化 → 段階的に Deny へという進め方が現実的です。本記事のテーブルをチェックリストとして活用いただければ幸いです。


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?