
この記事の内容
Azure RBACは、Azureリソースに「誰が、何を、どの範囲でできるか」を決める仕組みです。Microsoft Entraロールは、ユーザーやグループなど、ID側の管理を受け持ちます。
今回は、架空の勉強会で「なおさんに申込アプリの設定を確認してもらう」場面から考えます。ロール名を覚えるだけでなく、どこまで任せるのかを一文で説明できるようになりましょう。アカウントを作ったり、権限を変更したりする必要はありません。
ロールの割り当ては、三つをひと組にする
「なおさんはReaderです」だけでは、どのリソースの設定を読めるのかが分かりません。Azure RBACのロール割り当ては、次の三つを組み合わせます。
| 考えること | 用語 | 今回の例 |
|---|---|---|
| 誰に | セキュリティプリンシパル | なおさん |
| 何を許可するか | ロール定義 | Reader(閲覧者) |
| どの範囲で | スコープ | 申込アプリ用のリソースグループ |
つまり、「なおさんに、申込アプリ用リソースグループの範囲で、Readerを割り当てる」と読むと、権限の意味が具体的になります。プリンシパルには人だけでなく、グループや、アプリが使うサービスプリンシパル・マネージドIDも含まれます。ロール割り当ての構成
ここでのReaderは、リソースの構成など、管理用の情報を読むロールです。保存してある資料や写真の中身まで、何でも読めるという意味ではありません。Readerの定義
同じReaderでも、スコープで届く範囲が変わる
勉強会の学習用サブスクリプションに、「申込アプリ」と「資料置き場」という二つのリソースグループがあるとします。なおさんのReaderをどこに割り当てるか、二つの例を比べましょう。
- 申込アプリのグループに割り当てる:そのグループと配下のリソースの管理情報を読める
- 学習用サブスクリプションに割り当てる:配下の両グループと、それぞれのリソースの管理情報を読める
上位の範囲で与えられた権限は、下位の範囲に継承されます。 反対に、申込アプリのグループへの割り当てが、それと並ぶ資料置き場のグループへ広がるわけではありません。スコープと継承
Azure RBACのスコープは、広い方から「管理グループ → サブスクリプション → リソースグループ → リソース」の4段階です。今回の依頼が申込アプリの設定確認だけなら、サブスクリプション全体を対象にする必要があるかを考えます。目的を満たす小さな範囲から検討するのが基本です。スコープの選び方
入れ物の関係が曖昧なら、リソース・リソースグループ・サブスクリプションの違いを先に読むと、図を追いやすくなります。
Reader・Contributor・Ownerは、任せる操作が違う
今度はスコープを「申込アプリのグループ」にそろえて、ロールを比べます。次は代表的な違いを読むための表です。
| Azureロール | その範囲でできる主なこと |
|---|---|
| Reader(閲覧者) | リソースの管理情報を読む。変更はできない |
| Contributor(共同作成者) | リソースを作成・変更・削除するなど、広く管理する。このロールだけではAzure RBACのロールを割り当てられない |
| Owner(所有者) | リソースを広く管理し、Azure RBACのロール割り当ても管理する |
なおさんが設定を確認するだけなら、作成や削除まで同じ依頼に含める必要はありません。Contributorも、単に「共同で見る人」ではなく、変更や削除を含む広いロールです。実際の担当作業では、サービス別のより限定されたロールも検討します。Reader・ContributorとOwner
また、OwnerやContributorの管理権限と、Blobの内容を読むようなデータへの権限は区別します。管理用ロールの名前だけで「保存データもすべて自動で読める」とは判断できません。別のロールやサービスの認証方式も関係します。管理操作とデータ操作
下位のReaderは、上位のContributorを打ち消さない
ここが、ロール名だけでは見落としやすい点です。アプリ担当のあおいさんには、すでに学習用サブスクリプションのContributorが割り当てられているとします。
そのあおいさんに、申込アプリのグループでReaderを追加したら、そのグループだけ変更できなくなるでしょうか。
答えは「いいえ」です。下位でReaderを追加しても、上位から継承したContributorの権限を消すことにはなりません。 Azure RBACでは、複数のロール割り当てによる許可を組み合わせて考えます。「より狭い場所のロールが、上のロールを上書きする」とは覚えないでください。複数のロール割り当て
見るべきものは、その場所に直接付けたロールだけではありません。上位からの継承や、所属グループを通じた割り当ても確認します。実際の操作には拒否割り当て、条件、サービス側の設定なども関わるため、この記事の表だけで操作の成否を断定はできません。アクセス判定の概要
OwnerとGlobal Administratorは、管理対象が違う
最後に、IDを管理するゆうさんも登場させましょう。「ゆうさんは管理者」と聞いたら、どちらの管理を指しているかが大切です。
- AzureのOwner:割り当てられたスコープ内のAzureリソースと、そのアクセスを管理する
- Microsoft EntraのGlobal Administrator(グローバル管理者):Entra IDや関連サービスの広範な管理機能を扱う
サブスクリプションのOwnerになっても、テナントのGlobal Administratorになるわけではありません。逆に、Global Administratorも、既定ではAzureリソースへのアクセス権を持ちません。 同じ人が両方を持つ場合はあっても、同じロールではないのです。二つのロールの関係・サブスクリプションとテナント
Entra側にもスコープの考え方があり、ロールに応じてテナント全体、管理単位、特定のアプリなどの範囲を使い分けます。「Azureは範囲を絞れるが、Entraは必ず全体」と覚えるのも避けましょう。Entraロールのスコープ
テナントそのものの役割やサインインとの関係は、Microsoft EntraテナントとAzureサブスクリプションの違いで整理しています。
「誰に・何を・どの範囲で」を一文にしてみる
最後に、次の依頼を読み直してみてください。
「なおさんに、申込アプリ用リソースグループの構成を確認してもらいたい。リソースの変更や、資料の中身の閲覧は今回の作業に含まれない」
この文なら、誰が、何をしたいのか、どこまで必要なのかが伝わります。そこからReaderの定義とスコープを照らし合わせ、既存の割り当ても確かめる、という順序で考えられます。
「管理者にしてほしい」「見られるようにしてほしい」で止めず、対象と必要な操作を一文にすることが、権限の話を分かりやすくする最初の一歩です。
出典を開く
- 確認日 https://learn.microsoft.com/en-us/azure/role-based-access-control/overview
- 確認日 https://learn.microsoft.com/en-us/azure/role-based-access-control/role-assignments
- 確認日 https://learn.microsoft.com/ja-jp/azure/role-based-access-control/scope-overview
- 確認日 https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/general
- 確認日 https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles/privileged
- 確認日 https://learn.microsoft.com/en-us/azure/role-based-access-control/role-definitions
- 確認日 https://learn.microsoft.com/en-us/azure/role-based-access-control/rbac-and-directory-admin-roles
- 確認日 https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/custom-overview
- 確認日 https://learn.microsoft.com/en-us/entra/fundamentals/how-subscriptions-associated-directory