変更要約: AZ-900 第2章を新基準で全面拡充(地理構造・リソース階層・スコープ継承・ARM/IaC)
2.2リソースの階層(管理グループ・サブスクリプション・リソースグループ)
Azure のリソースを整理・統制する階層——管理グループ > サブスクリプション > リソースグループ > リソース——と、それらを操作する管理レイヤー Azure Resource Manager(ARM)を理解します。
Azure を使い始めると、VM・ストレージ・データベースといったリソースがすぐに数百・数千に増えます。これらを整理し、権限やコストを統制するために、Azure には4段の階層が用意されています。上から 管理グループ > サブスクリプション > リソースグループ > リソース。上位ほど広い範囲をまとめ、下位ほど個々の実体に近づきます。この入れ子を理解すると、「どこにルール(ポリシーや権限)を当てれば、どこまで効くか」が見通せます。
2.2.14つの階層
- 管理グループ(Management group):複数のサブスクリプションをまとめる最上位のコンテナ。組織全体や部門単位で、ポリシーやアクセス制御を一括適用する。入れ子にもできる。
- サブスクリプション(Subscription):課金と利用の境界であり、リソースの論理的な入れ物。請求や上限(クォータ)の単位で、部門・環境(本番/開発)ごとに分けることが多い。
- リソースグループ(Resource group, RG):関連するリソースをまとめるコンテナ。権限やライフサイクル(まとめて削除など)を一括で扱える。1つのリージョンに「所属情報」を持つが、中のリソースは別リージョンでもよい。
- リソース(Resource):VM・ストレージアカウント・データベースなど、個々のサービスの実体。必ず1つのリソースグループに属する(複数には属せない)。
| 階層 | 役割 | 主な用途 | 例 |
|---|---|---|---|
| 管理グループ | サブスクリプションの束 | 全社ポリシー/権限の一括適用 | 「本番」「開発」管理グループ |
| サブスクリプション | 課金・利用の境界 | 請求・クォータの分離 | 部門ごとのサブスクリプション |
| リソースグループ | リソースのコンテナ | 権限・ライフサイクル一括管理 | アプリ一式をまとめる |
| リソース | サービスの実体 | 実際に動く個々のサービス | VM・ストレージ・SQL DB |
2.2.2スコープと継承
この階層が効いてくるのが スコープ(適用範囲)と継承 です。アクセス制御(RBAC)や Azure Policy は、4つのどの階層にも割り当てられ、割り当てた階層より下のすべてに継承(伝播)されます。たとえば管理グループに「特定リージョンしか使わせない」ポリシーを当てれば、配下の全サブスクリプション・全リソースグループ・全リソースに自動で効きます。広く効かせたいルールは上位に、限定的なルールは下位に当てる——これが統制(ガバナンス)の基本戦略です。
2.2.3Azure Resource Manager(ARM)
Azure Resource Manager(ARM)は、リソースの作成・変更・削除を受け付ける統一された管理レイヤーです。Azure ポータル・Azure CLI・Azure PowerShell・SDK・ARM テンプレート / Bicep など、どの入口から操作しても、要求はすべて ARM を通ります。だからこそ、どのツールを使っても一貫した認証・アクセス制御(RBAC)・タグ・ロックが効くのです。
ARM のもう一つの価値は 宣言的なテンプレート(ARM テンプレート=JSON、または Bicep=より簡潔な記法)です。「欲しい状態」をコードで書いて適用すると、ARM がその状態を作ります。同じテンプレートから同一環境を何度でも再現でき、構成をコード管理(IaC:Infrastructure as Code)できます。
ARM が提供する統制の道具も押さえましょう。タグは「key=value」のラベルをリソースに付け、部門・環境・コスト中心などで横断的に分類・集計できます(リソースグループの境界をまたいでコストを見たいときに有効)。リソースロックは、誤操作を防ぐために「削除禁止(CanNotDelete)」「読み取り専用(ReadOnly)」を設定する仕組みで、重要な本番リソースの事故的な削除・変更を防ぎます。これらはサブスクリプション・リソースグループ・リソースの各レベルで設定でき、下位へ継承されます。
実務では、増え続けるリソースを見失わないために 命名規則 と タグ付けの方針 を最初に決めるのが定石です。たとえば「環境-アプリ-リージョン-種別」のような命名や、必須タグ(owner / costCenter / env)を Azure Policy で強制しておくと、後からの整理やコスト按分が一気に楽になります。
シナリオ:ある企業の整理。 全社で「本番」「開発」の2つの管理グループを作り、共通ポリシー(許可リージョン・必須タグ)を適用。経理・営業など部門ごとにサブスクリプションを分けて請求を分離。各アプリは専用のリソースグループにまとめ、チームに RG 単位で権限付与。こうすると、上位のルールは継承で全体に効き、権限と請求は適切な粒度で分けられます。
混同に注意:
①サブスクリプション(課金の境界)とリソースグループ(リソースのコンテナ)——課金で分けるのがサブスク、まとめて管理するのが RG。
②リソースは必ず1つの RGに属す(複数不可)。
③管理グループは課金単位ではない(束ねて統制する箱)。選択肢で役割を入れ替えてくる点に注意。
Q. リソースグループに地域(リージョン)があるのはなぜ? 中のリソースは別リージョンでもいい? RG 自体はメタデータの保存先としてリージョンを持ちますが、中のリソースは別のリージョンに置けます。RG は「論理的なまとめ」であって、物理的な配置を縛るものではありません。
階層の順(管理グループ > サブスクリプション > リソースグループ > リソース)、サブスクリプション=課金の境界、リソースグループ=コンテナ(リソースは1つのRGに属す)、RBAC/Policy は割り当て階層より下へ継承、ARM=全操作が通る管理レイヤー(テンプレート/Bicep でIaC) は頻出です。
2.2.4この節のまとめ
- 階層は 管理グループ > サブスクリプション > リソースグループ > リソース
- サブスクリプション=課金/利用の境界、リソースグループ=コンテナ(リソースは1つのRGに属す)
- RBAC/Policy は割り当てた階層より下に継承=広いルールは上位、限定ルールは下位に当てる
- ARM=作成・変更・削除が通る統一管理レイヤー。テンプレート/Bicep で環境をコード化(IaC)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. Azure のリソース階層を上位から正しく並べたものはどれですか?
Q2. 課金と利用の単位(リソースの論理コンテナ)はどれですか?
Q3. ポータル・CLI・PowerShell・テンプレートなど、すべての操作要求が通る管理レイヤーはどれですか?
Q4. 管理グループに割り当てた Azure Policy はどこに効きますか?
Q5. リソースとリソースグループの関係として正しいものはどれですか?

