第 2 章 Azure ID とガバナンスを管理する(20〜25%)
この章で学ぶこと
この章に出てくる用語
Azure RBAC は、セキュリティプリンシパル(誰が)、ロール定義(何をしてよいか)、スコープ(どこまで効くか)の 3 つを結び付けたものだ。この結び付き 1 件を「ロールの割り当て」と呼ぶ。

セキュリティプリンシパルは 4 種類ある。ユーザー、グループ、サービスプリンシパル(アプリ)、そしてマネージド ID だ。実務でも試験でも、個人ではなくグループに割り当てるのが推奨で、「担当者が増えるたびに権限を付け直したくない」と書かれていたらグループが答えになる。
試験では
3 要素の名前はそのまま問われる。「セキュリティプリンシパル」「ロール定義」「スコープ」という語で答えられるようにしておく。
スコープは 4 階層ある。管理グループ → サブスクリプション → リソースグループ → リソースだ。上位スコープで割り当てたロールは、下位すべてに継承される。

逆方向は無い。リソース 1 つに割り当てた権限が、そのリソースグループ全体に広がることはない。「必要最小限の範囲に絞る」という原則からすると、要件を満たす一番下のスコープを選ぶのが正解になることが多い。
複数の割り当てが重なった場合、許可は足し算される。リソースグループで閲覧者、個別の VM で共同作成者を持っていれば、その VM は変更できる。ただし例外が 1 つある。
試験では
拒否割り当て(Deny assignment)はロールの割り当てより常に優先される。所有者であっても拒否されている操作はできない。拒否割り当ては利用者が自分で作ることはできず、Azure Blueprints や Managed Application が作るものだという点もあわせて覚える。
組み込みロールは何百もあるが、AZ-104 で問われるのは実質 4 つだ。違いは「読み取り」「作成・変更・削除」「ロールの割り当て」の 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 つあり、交わらない。

| Azure RBAC | Microsoft Entra ロール | |
|---|---|---|
| 管理対象 | Azure リソース(VM、ストレージなど) | ディレクトリ(ユーザー、グループ、アプリ) |
| スコープ | 管理グループ/サブスクリプション/リソースグループ/リソース | テナント全体、または管理単位 |
| 代表例 | 所有者、共同作成者、閲覧者 | 全体管理者、ユーザー管理者 |
| 設定場所 | 対象リソースの[アクセス制御 (IAM)] | Microsoft Entra ID の[ロールと管理者] |
試験では
「ユーザーを作成できるようにしたい」→ Entra ロール(ユーザー管理者)。「仮想マシンを作成できるようにしたい」→ Azure RBAC(共同作成者)。全体管理者でも、既定では Azure のリソースを管理できない。必要なら[Azure リソースのアクセス管理]を有効にして、自分に昇格させる操作が要る。
アプリから Azure のサービスへ接続するとき、接続文字列やシークレットをコードに書くのは避けたい。マネージド ID は、Azure のリソース自身に ID を持たせ、その ID に RBAC でロールを割り当てることで、資格情報なしで認証させる仕組みだ。

| システム割り当て | ユーザー割り当て | |
|---|---|---|
| 作られ方 | リソースの設定で有効にすると自動で作られる | 独立したリソースとして自分で作る |
| 付けられる数 | 1 リソースに 1 つ | 1 つの ID を複数のリソースに付けられる |
| 寿命 | リソースを削除すると ID も消える | リソースを削除しても残る |
| 向いている場面 | そのリソース専用の権限 | 複数のリソースで同じ権限を共有したい |
補足
マネージド ID はセキュリティプリンシパルの一種なので、作ったあとは普通に RBAC でロールを割り当てる。たとえば VM のマネージド ID に、あるストレージアカウントの「ストレージ BLOB データ閲覧者」を与える、という使い方になる。
この章のまとめ