はじめに
Azure の利用が広がるにつれて、多くの企業様が同じような壁にぶつかります。「リソースが増えて全体像を把握できない」「誰がどのリソースを管理しているのか分からない」「設定不備が発見されず、後になってコストやセキュリティの問題が表面化する」。こうした課題は、リソースを作り始めた段階でガバナンスを組み込んでいれば、大部分を防げます。
本記事では、Azure リソースの 設計と構築の段階 にフォーカスし、ガバナンスの効いた運用を実現するための 5 つの手法をご紹介します。すべて今日から着手できる実践的な内容です。
目次
- 手法1:管理グループとサブスクリプションの構造を設計する
- 手法2:命名規則とタグを標準化する
- 手法3:Azure Policy でルールを自動適用する
- 手法4:RBAC で最小権限の権限設計を行う
- 手法5:IaC で構築を再現可能にする
なぜ「設計・構築」の段階でガバナンスが必要なのか
ガバナンスを後から整備しようとすると、すでに作られた数百のリソースを対象に、修正や再設定が必要になります。Azure Policy の割り当てやタグの追加は可能ですが、リソースが増えるほど作業は増え、対応コストは大きくなります。
一方、設計・構築の段階で仕組みを組み込んでおくと、新しいリソースは最初からルールに従った形で作られます。Microsoft のクラウド採用フレームワーク(Cloud Adoption Framework)でも、ガバナンスは「後付け」ではなく「最初の設計」に含めることが推奨されています。5 つの手法の全体像は以下の通りです。
| 手法 | 主な目的 | 主な成果物 |
|---|---|---|
| 1. 構造設計 | 環境の整理・境界の明確化 | 管理グループ階層、サブスクリプション分割 |
| 2. 命名規則・タグ | 一覧性・検索性・コスト配分の基盤 | 命名規則表、タグ標準 |
| 3. Azure Policy | ルールの自動適用・違反検知 | ポリシー/イニシアティブの割り当て |
| 4. RBAC | 最小権限の権限設計 | ロール定義、スコープ設計 |
| 5. IaC | 構築の再現性・レビュー性 | テンプレート、CI/CD パイプライン |
手法1:管理グループとサブスクリプションの構造を設計する
Azure ガバナンスの土台となるのが、 管理グループ(Management Group) による階層構造です。管理グループを使うと、複数のサブスクリプションを束ねて、ポリシーやロール、コスト管理の設定を一括で適用できます。
構造設計の考え方
Microsoft が推奨するのは、環境(本番・検証・開発)と部門(事業部・プロジェクト)を軸にした階層設計です。たとえば、次のような構造が一般的です。
- ルート管理グループ
- 本番環境
- 事業部A
- 事業部B
- 検証環境
- 開発環境
- 本番環境
サブスクリプションの分割基準
サブスクリプションは「環境」「部門」「システム」のいずれかを単位に分割します。すべてを 1 つのサブスクリプションに集約すると、ポリシーや予算、権限の境界が曖昧になり、後々の管理が難しくなります。分割の目安は以下の通りです。
- 環境単位:本番、検証、開発で分ける(最も多いパターン)
- 部門・予算単位:部門別にコストを把握したい場合
- システム単位:重要システムやコンプライアンス要件が異なる場合
実装のポイント:管理グループとサブスクリプションの構造は、Azure Portal や Bicep、Terraform で宣言的に定義できます。最初は最小構成(環境単位の分割)から始め、運用しながら育てていくことをお勧めします。
手法2:命名規則とタグを標準化する
構造が決まったら、次に命名規則とタグを標準化します。これはリソースの一覧性と検索性を高め、コスト管理や運用の土台になります。
命名規則の例
Azure にはリソースごとに名前の制約(長さや使える文字)があり、それに従ったうえで統一ルールを決めます。たとえば、リソースグループは次のような形式が分かりやすいです。
rg-{システム}-{環境}-{用途}
例)rg-sales-prod-webapp
各リソースにも接頭辞を決めます。例えば、仮想ネットワークは vnet-、ストレージは st、Web アプリは app- などです。Microsoft の公式ドキュメントでは、Azure リソースの推奨略称(Abbreviation examples)が公開されているため、それを基準にするのがお勧めです。
タグ標準の設計
タグは「キー=値」のラベルで、リソースの分類やコストの配分、運用担当の特定に使います。多くの企業様で有効なタグの例は以下の通りです。
| タグキー | 値の例 | 用途 |
|---|---|---|
| Environment | prod / staging / dev | 環境の識別、開発環境の自動停止 |
| Owner | 担当チーム名 | 問い合わせ先の特定 |
| CostCenter | 部門コード | コスト配分、部門別レポート |
| AppName | システム名 | システム単位の把握 |
実装のポイント:命名規則とタグの標準は、ドキュメント化して共有するだけでなく、次の手法で紹介する Azure Policy によって「必須タグ」として強制すると定着します。
手法3:Azure Policy でルールを自動適用する
設計ルールを「人間の意識」に頼らず運用するのが Azure Policy です。ポリシーを割り当てておくと、リソースの作成時に自動的にルールがチェックされ、違反を防いだり検知したりできます。
よく使われるポリシーの例
- 必須タグの強制:
Environment、Ownerなどのタグがないリソースを拒否、または自動でタグを付与 - 許可リージョンの制限:利用できる Azure リージョンを指定し、海外リージョンへのリソース作成を防止
- SKU の制限:高額な SKU や許可外の SKU の使用を防止
- パブリックアクセスの禁止:ストレージや仮想マシンの公開設定を規制
ポリシーは複数まとめた**イニシアティブ(ポリシーセット)**として定義すると、テーマごとに管理しやすくなります。
導入の進め方
- まず対象とするルールを 3〜5 個に絞って定義する
- 監査モード(違反の検知のみ)で割り当て、現状を把握する
- 影響を確認しながら、拒否モードへ切り替える
- 既存リソースの違反は「修復タスク」で自動修正する
実装のポイント:Azure Policy は管理グループ単位で割り当てると、複数のサブスクリプションに一括適用できます。手法1 の構造設計と組み合わせることで効果を発揮します。
手法4:RBAC で最小権限の権限設計を行う
Azure の権限は **RBAC(ロールベースのアクセス制御)**で管理します。メンバーを直接権限付与するのではなく、ロールを定義し、そのロールを「誰に」割り当てるかを管理します。
スコープの考え方
RBAC の割り当ては「管理グループ」「サブスクリプション」「リソースグループ」「リソース」の単位で行えます。上位で割り当てた権限は下位に継承されるため、次のような設計が基本です。
- 管理グループ:全環境に共通の閲覧ロール
- サブスクリプション:環境ごとの管理者ロール
- リソースグループ:開発チームの所有者・投稿者ロール
最小権限の実践
- 組み込みロール(
Contributor、Reader、Ownerなど)を基本に選ぶ - 特殊な要件がある場合のみカスタムロールを作成する
- リソースグループ単位の割り当てを優先し、サブスクリプション全体への
Owner付与は最小限にする - 特権操作は PIM(Privileged Identity Management)による一時的な昇格を検討する
実装のポイント:権限は「誰が何をできるか」を定期的に見直します。特に退職者や担当変更時の失効した権限の削除は、監査の観点でも重要です。
手法5:IaC で構築を再現可能にする
最後は、Azure リソースの構築を手作業ではなく **IaC(Infrastructure as Code)**で行う手法です。Bicep や Terraform を使ってリソースをコードで定義すると、構築手順が属人化せず、レビューや監査の対象にもできます。
Bicep の例(タグ付きリソースグループ)
resource rg 'Microsoft.Resources/resourceGroups@2024-03-01' = {
name: 'rg-sales-prod-webapp'
location: 'japaneast'
tags: {
Environment: 'prod'
Owner: 'sales-platform'
CostCenter: 'CC-1002'
}
}
このようなテンプレートを Git で管理し、Pull Request によるレビューと承認を経てデプロイすることで、「誰が、いつ、何を変更したか」の履歴が残ります。
ドリフトの検知
コードで構築した後、ポータルからの手動変更が入ると「コードと実環境の乖離(ドリフト)」が発生します。Bicep や Terraform にはドリフトを検出する機能があり、定期的にチェックして実環境をコードの状態に戻す運用が有効です。
実装のポイント:最初から完璧なパイプラインを作る必要はありません。まずは 1 つのシステムの標準テンプレートを作り、CI/CD に組み込むところから始めることをお勧めします。
まとめ
Azure リソースのガバナンスは、後から整備するよりも、設計・構築の段階で仕組みとして組み込むことが効果的です。本記事でご紹介した 5 つの手法の要点は、以下の通りです。
- 構造設計で管理グループとサブスクリプションの境界を明確にする
- 命名規則・タグでリソースの一覧性とコスト配分の基盤を作る
- Azure Policy でルールを自動適用し、属人運用を防ぐ
- RBAC で最小権限の権限設計を行い、安全な運用を実現する
- IaC で構築を再現可能にし、レビューと監査を可能にする
これらをすべて一度に完璧に整える必要はありません。「構造設計と命名規則・タグ」から始め、Azure Policy と IaC で自動化・標準化していく段階的な進め方がお勧めです。
実際に、自社の Azure 環境でどこから着手すればよいか迷われている場合は、まず現状のリソースを可視化して、ガバナンスの課題を洗い出すことから始めるとよいでしょう。無料デモでは、Azure 環境の可視化やタグ・ポリシーの適用状況の確認をご体験いただけます。