第 2 章 Azure ID とガバナンスを管理する(20〜25%)

Azure リソースへのアクセス管理(RBAC)

この章で学ぶこと

  • 組み込みの Azure ロールを管理する
  • 異なるスコープでロールを割り当てる
  • アクセス割り当てを理解する

この章に出てくる用語

Azure RBAC
Azure のリソースに対して「誰が何をしてよいか」を決める仕組み。 Role-Based Access Control(ロールベースのアクセス制御)の略で、権限を 1 人ずつ列挙するのではなく、あらかじめ用意された「役割(ロール)」を人やグループに割り当てる形を取る。ポータルでは各リソースの[アクセス制御 (IAM)]から設定する。
マネージド ID
Azure のリソース自身に与えられる ID。 仮想マシンや関数アプリが「自分は誰か」を名乗れるようになるので、接続文字列やシークレットをコードに書かずに他の Azure サービスへ認証できる。パスワードの保管も更新も Azure がやるため、漏洩の経路そのものが消える。

Azure RBAC は、セキュリティプリンシパル(誰が)、ロール定義(何をしてよいか)、スコープ(どこまで効くか)の 3 つを結び付けたものだ。この結び付き 1 件を「ロールの割り当て」と呼ぶ。

図 2-1 RBAC の 3 要素
図 2-1 RBAC の 3 要素

セキュリティプリンシパルは 4 種類ある。ユーザー、グループ、サービスプリンシパル(アプリ)、そしてマネージド ID だ。実務でも試験でも、個人ではなくグループに割り当てるのが推奨で、「担当者が増えるたびに権限を付け直したくない」と書かれていたらグループが答えになる。

試験では

3 要素の名前はそのまま問われる。「セキュリティプリンシパル」「ロール定義」「スコープ」という語で答えられるようにしておく。

スコープは 4 階層ある。管理グループ → サブスクリプション → リソースグループ → リソースだ。上位スコープで割り当てたロールは、下位すべてに継承される。

図 2-2 スコープの継承
図 2-2 スコープの継承

逆方向は無い。リソース 1 つに割り当てた権限が、そのリソースグループ全体に広がることはない。「必要最小限の範囲に絞る」という原則からすると、要件を満たす一番下のスコープを選ぶのが正解になることが多い。

複数の割り当てが重なった場合、許可は足し算される。リソースグループで閲覧者、個別の VM で共同作成者を持っていれば、その VM は変更できる。ただし例外が 1 つある。

試験では

拒否割り当て(Deny assignment)はロールの割り当てより常に優先される。所有者であっても拒否されている操作はできない。拒否割り当ては利用者が自分で作ることはできず、Azure Blueprints や Managed Application が作るものだという点もあわせて覚える。

組み込みロールは何百もあるが、AZ-104 で問われるのは実質 4 つだ。違いは「読み取り」「作成・変更・削除」「ロールの割り当て」の 3 つができるかどうかで決まる。

図 2-3 主要な組み込みロールの違い
図 2-3 主要な組み込みロールの違い
ロールできることこう聞かれたら選ぶ
所有者(Owner)すべて。ロールの割り当ても可全権を渡す。めったに正解にならない
共同作成者(Contributor)リソースの作成・変更・削除。ロールの割り当ては不可「リソースは自由に作らせたいが、権限は配らせたくない」
閲覧者(Reader)表示のみ「見るだけ」「監査のため」
ユーザーアクセス管理者リソースの中身は触れないが、アクセス権だけ管理できる「権限管理だけ任せたい」

試験では

最頻出は所有者と共同作成者の違いで、分かれ目は「他人にロールを割り当てられるか」の一点だけ。共同作成者は VM を作れるが、同僚に権限を渡すことはできない。

カスタムロール

組み込みロールで過不足があるときに自作する。JSON で定義し、Actions(許可する操作)、NotActions(そこから除く操作)、DataActions / NotDataActions(データ面の操作)、そして AssignableScopes(このロールを割り当ててよい範囲)を書く。

試験では

AssignableScopes にはワイルドカードだけを書くことはできない。必ず具体的な管理グループやサブスクリプションを指定する。また、テナントあたりのカスタムロール作成数には上限がある。

# 組み込みロールの定義を見る。 カスタムロールの雛形にする
az role definition list --name "Contributor"
# カスタムロールを作る (PowerShell: New-AzRoleDefinition)
az role definition create \
  --role-definition ./myrole.json
# ロールを割り当てる (PowerShell: New-AzRoleAssignment)
az role assignment create --assignee <ID> \
  --role "Contributor" --scope <スコープ>

ここが混乱の最大の原因になる。Azure には権限の体系が 2 つあり、交わらない。

図 2-4 2 つのロール体系
図 2-4 2 つのロール体系
Azure RBACMicrosoft Entra ロール
管理対象Azure リソース(VM、ストレージなど)ディレクトリ(ユーザー、グループ、アプリ)
スコープ管理グループ/サブスクリプション/リソースグループ/リソーステナント全体、または管理単位
代表例所有者、共同作成者、閲覧者全体管理者、ユーザー管理者
設定場所対象リソースの[アクセス制御 (IAM)]Microsoft Entra ID の[ロールと管理者]

試験では

「ユーザーを作成できるようにしたい」→ Entra ロール(ユーザー管理者)。「仮想マシンを作成できるようにしたい」→ Azure RBAC(共同作成者)。全体管理者でも、既定では Azure のリソースを管理できない。必要なら[Azure リソースのアクセス管理]を有効にして、自分に昇格させる操作が要る。

アプリから Azure のサービスへ接続するとき、接続文字列やシークレットをコードに書くのは避けたい。マネージド ID は、Azure のリソース自身に ID を持たせ、その ID に RBAC でロールを割り当てることで、資格情報なしで認証させる仕組みだ。

図 2-5 システム割り当てとユーザー割り当て
図 2-5 システム割り当てとユーザー割り当て
システム割り当てユーザー割り当て
作られ方リソースの設定で有効にすると自動で作られる独立したリソースとして自分で作る
付けられる数1 リソースに 1 つ1 つの ID を複数のリソースに付けられる
寿命リソースを削除すると ID も消えるリソースを削除しても残る
向いている場面そのリソース専用の権限複数のリソースで同じ権限を共有したい

補足

マネージド ID はセキュリティプリンシパルの一種なので、作ったあとは普通に RBAC でロールを割り当てる。たとえば VM のマネージド ID に、あるストレージアカウントの「ストレージ BLOB データ閲覧者」を与える、という使い方になる。

この章のまとめ

  1. RBAC を構成する 3 要素
  2. セキュリティプリンシパルの 4 種類
  3. スコープの 4 階層
  4. 継承の向き
  5. 所有者と共同作成者の唯一の違い
  6. リソースは触らせず権限管理だけ任せたいときのロール

この章の根拠

試験 AZ-104 の学習ガイド(Microsoft Learn)

最終確認 2026-10-04 / 対応バージョン DEA 2026-05-04 改訂版