マルチクラウド 担当者コラム
マルチクラウド・Azure
Azure 第26回『「Azure ロール」と「Entra ID ロール」って何が違うの?ー管理権限の基礎知識ー』
Azure ロールと Entra ID ロール - Azure の管理権限を理解する
Azure 上でシステムを構築・運用する上で、システムを構成するサブスクリプションやリソースへのアクセス権限を適切に構成することが重要です。ユーザーへの過剰なアクセス権限は誤操作や不正行為などによるシステムの破損や情報の漏洩・流出の原因となりますし、逆に構築や運用のエンジニアに適切な権限が不足していると、作業の妨げとなり効率が悪くなります。
この記事では Azure のアクセス権限管理の考え方と、Azure のユーザーなどを管理する Entra ID でのアクセス権限管理の考え方について解説します。
ロールとは
Azure や Entra ID では、アクセス制御に「ロール」を利用します。
「ロール」(role)は日本語で言えば「役割」ですが、Azure や Entra ID のロールはアクセス許可のコレクションとして定義されます。
アクセス許可とは、どのような種類の対象(リソースの種類など)にどのような操作を許可するのかという設定で、読み取り・書き込み・削除などの操作が登録されています。このアクセス許可を関連性でグループ化して集めたもの(コレクション)が「ロール」となります。
例えば以下のスクリーンショットは、Azure の「仮想マシン共同作成者」ロールに含まれているアクセス許可の一覧(一部)です。
また以下のスクリーンショットは、Entra ID の「Cloud App Security 管理者」ロールに含まれているアクセス許可の一覧(一部)です。
このように特定の操作や機能の実現のために必要なアクセス許可をまとめたものが「ロール」です。
ロールに含まれる「アクセス許可」は文字通りアクセスを許可する設定ですが、Azure ではこれとは別に「拒否割り当て」という仕組みが用意されています。拒否割り当てを使用すると、ロールで規定されているアクセス許可を上書きして、アクセスを拒否することができます。
参考:
RBAC(ロールベースのアクセス制御)
RBAC(Role-Based Access Control、ロールベースのアクセス制御)は、ロールの割り当てを利用したアクセス制御です。ロールの割り当ては、セキュリティプリンシパル、ロール、スコープの3つの要素で構成されています。
セキュリティプリンシパル
「セキュリティプリンシパル」とは、リソースへのアクセスを要求する主体のことで、具体的にはユーザー、グループ、サービスプリンシパル、マネージド ID が相当します。これらのセキュリティプリンシパルのいずれかに、ロールを割り当てることができます。
ロール
ロールは、前節で説明したように個別のアクセス許可をグループ化したコレクションです。
Azure にも Entra ID にも多数の組み込みロールが用意されており、すぐに使用することができます。また組み込みロールでは特定のニーズを満たさない場合は、カスタムロールを作成して利用することもできます。
スコープ
「スコープ」はアクセス許可が適用される実際のリソースです。スコープを定義することで、ロールに定義されたアクセス許可が適用されるリソースを限定することができます。
Azure では、管理グループ・サブスクリプション・リソースグループ・リソースの4つのレベルでスコープを指定できます。これらのレベルでのスコープは親子関係にあるので、上位のレベルのスコープで割り当てられたロールのアクセス許可は、下位のレベルに継承されます。
例えばサブスクリプションレベルでスコープを指定した場合、スコープに含まれるサブスクリプション内のすべてのリソースがアクセス許可の対象となります。
Entra ID の場合、スコープはテナント・管理グループ・アプリの登録の3つのスコープを持ちます。
ロールの割り当て
「ロールの割り当て」は、アクセスの許可を目的として、特定のスコープで、特定のセキュリティプリンシパルにロールを割り当てることです。スコープに含まれるリソースへのアクセスは、ロールの割り当てを作成することによって許可され、ロールの割り当てを削除することによって取り消されます。
ロールの割り当ては以下の図のように機能します。
この例では以下のようなロールの割り当てが行われています。
・ロールが割り当てられるセキュリティプリンシパル:Marketing グループ
・ロールの対象となるスコープ:pharma-sales リソースグループ
・割り当てるロール:共同作成者ロール(Azure の組み込みロールの一つ)
これにより、Marketing グループのユーザーは、pharma-sales リソースグループ内の任意の Azure リソースを作成または管理できます。ただしMarketing ユーザーは、別のロール割り当ての一部になっていない限り、pharma-sales リソースグループに含まれないリソースにはアクセスできません。
Azure ロールの割り当ては Azure ポータルで行えます。また Azure CLI または Azure PowerShell のコマンドから、Azure SDK または Azure REST API を利用したプログラムから、割り当てを行うこともできます。
Entra ID ロールの割り当ては Microsoft Entra 管理センターで行えます。またMicrosoft Graph PowerShell のコマンドから、Microsoft Graph API を利用したプログラムから、割り当てを行うこともできます。
ロールの機能や役割について詳しくは、以下のページを参照してください。
RBAC の注意点
RBAC(ロールベースのアクセス制御)を利用する場合、以下のような注意点があります。
最小権限で開始する
Azure ロールには他のユーザーの権限を管理する、すべてのリソースに対して権限を持つなどの強い権限を持つ「特権管理者ロール」が存在しています。特権管理者ロールを利用すると個別のアクセス許可を構成しなくてもリソースの作成・操作・削除が行えるので便利な反面、誤操作や不正行為などによるシステムの破損や情報の漏洩・流出の原因となる危険性があり、安易な利用は避けるべきです。
Azure での作業に当たっては、作業するユーザーに作業に必要な最小限のロールを与えることが推奨されています。これにより不要な事故やセキュリティインシデントの発生を防止することができます。その上で、必要に応じてロールの割り当てが迅速に行えるよう最小限のユーザーに対して特権の移譲を行い、効率の低下を防ぐようにします。
入れ子のグループ
グループに対するロールの割り当ては、グループに対して推移的に機能します。つまりグループが入れ子になっている場合、親グループへ割り当てられたロールは、子グループにも自動的に割り当てられます。
以下の図では、UserはDesign クループのメンバーであり、Design クループは Marketing グループのメンバーとなっています。そのため Marketing グループに割り当てられたロールは Design クループにも適用され、User はロールに含まれるアクセス許可が与えられます。
複数ロールの割り当て
あるセキュリティプリンシパルに複数のロールが割り当てられている場合、アクセス許可は各ロールの加算方式で決められます。つまり割り当てられたすべてのロールに含まれるすべてのアクセス許可が与えられます。
そのため、テナント内のアクセス許可の割り当てを設計する際は、上記の推移的な動作と併せて、無駄な割り当てが発生しないよう、また意図しないアクセス許可が与えられることが無いよう、注意して行う必要があります。
リソースの削除
Microsoft Entra ID からユーザー、グループ、サービスプリンシパル、マネージド ID などのセキュリティプリンシパルを削除しても、削除対象のセキュリティプリンシパルに割り当てられていたロールの割り当ては自動的には削除されません。削除されたセキュリティプリンシパルの ID を参照するすべてのロールの割り当てが無効になるだけです。
無効になっているロールの割り当ての名前を別のロールの割り当てに再利用しようとすると、デプロイは失敗します。そのため、セキュリティプリンシパルを削除する場合は、その前に削除したいセキュリティプリンシパルを対象とするロール割り当てをすべて削除することが推奨されています。
ライセンス
Azure では、ライセンスやサブスクリプションの形態に関わらず、すべての RBAC の機能が利用できます。
Entra ID では、カスタムロールの作成と、Entra ロールのグループへの割り当てに Entra ID Premium ライセンスが必要となります。
Entra ID Premium ライセンスは、Microsoft 365 Business Premium・Microsoft 365 E3/E5 に含まれている他、単独のライセンスとして購入できます。
Azure ロールと Entra ロールの違い
同じように RBAC で割り当てられる Azure のロールと Entra ID のロールですが、その目的は異なります。
・Azure ロール:仮想マシンや仮想ネットワーク、PaaS のアプリケーションなどの Azure リソースの管理を目的としています。
・Entra ID ロール:組織アカウント(Entra ID アカウント)のユーザーやグループ、サービスプリンシパルなどの Entra ID リソースの管理を目的としています。
これを含めて、Azure ロールと Entra ID ロールの違いを表にまとめると以下のようになります。
Azure ロール | Entra ID ロール | |
目的 | Azure リソースの管理 | Entra ID リソースの管理 |
セキュリティプリンシパル | ユーザー グループ サービスプリンシパル マネージド ID |
ユーザー グループ(要 Premium ライセンス) サービスプリンシパル |
スコープ | 管理グループ サブスクリプション リソースグループ リソース |
テナント 管理グループ アプリの登録 |
カスタムロール | 作成可能 | Premium ライセンスが必要 |
代表的な組み込みロール
Azure
Azure ロールで、他のユーザーの権限を管理する、すべてのリソースに対して権限を持つなどの強い権限を持つ「特権管理者ロール」は以下の5つです。
共同作成者 | すべてのリソースを管理するためのフルアクセスが付与されますが、Azure RBAC でロールを割り当てたり、Azure Blueprints で割り当てを管理したり、イメージ ギャラリーを共有したりすることはできません。 |
所有者 | Azure RBAC でロールを割り当てる権限を含め、すべてのリソースを管理するためのフルアクセスが付与されます。 |
Access Review Operator Service Role | アクセスレビューシステムアプリにアクセス許可を付与して、アクセスレビュープロセスで必要に応じてアクセスを検出および取り消すことができます。 |
ロール ベースのアクセスの制御の管理者 | Azure RBACを使用してロールを割り当てることにより、Azure リソースへのアクセスを管理できる権限が付与されます。このロールでは、Azure Policy などの他の方法を使用してアクセスを管理することはできません。 |
ユーザーアクセス管理者 | Azure リソースに対するユーザーアクセスを管理する権限が付与されます。 |
またすべてのリソースの表示が可能なロールもあります。
閲覧者 | すべてのリソースを表示できる権限が付与されますが、リソースに変更を加えることはできません。 |
これ以外に多数の「職務ロール」と呼ばれるさまざまな作業ごとに必要なアクセス許可をコレクションしたロールが用意されています。すべての組み込みロールの内容については、以下を参照してください。
またロールの適切な割り当て方法については、以下を参照してください。
Entra ID
代表的な Entra ID ロールは以下のようなものです。
全体管理者 | Microsoft Entra ID のすべての管理機能や、Microsoft Entra ID に統合されたサービスへのアクセスを管理します。 他のユーザーに管理者ロールを割り当てます。 すべてのユーザーと他のすべての管理者のパスワードをリセットします。 Microsoft Entra テナントにサインアップしたユーザーが全体管理者になります。 |
ユーザー管理者 | ユーザーとグループのすべての側面を作成および管理します。 サポートチケットを管理します。 サービス正常性を監視します。 ユーザー、ヘルプデスク管理者、およびその他のユーザー管理者のパスワードを変更します。 |
課金管理者 | テナントで新しい製品やサービスを購入します。 サブスクリプションを管理します。 サポートチケットを管理します。 サービスの正常性を監視します。 |
これ以外にも多数のロールが用意されています。すべての組み込みロールの内容については、以下を参照してください。
また Entra ID でのタスク別の最小特権については以下を参照してください。
ロール割り当ての操作
ポータルでロールを割り当てる操作は以下の通りです。
Azure
-
Azure ポータル に必要なアクセス権のあるユーザーでサインインし、アクセス権を割り当てる対象(スコープ)となる管理グループ・サブスクリプション・リソースグループ・リソースを開きます。
-
[アクセス制御(IAM)] を開きます。
-
[追加] をクリックし、[ロール割り当ての追加] をクリックします。
-
[ロール割り当ての追加] 画面で、割り当てるロールを検索して見つけ、クリックして選択します。
[種類] で組み込みロールとカスタムロールを絞り込むことができます。
[カテゴリ] で Azure サービスのカテゴリを絞り込むことができます。
※特権管理者ロールを割り当てる場合は、[特権管理者ロール] をクリックして表示を切り替えます。 -
割り当てるセキュリティプリンシパルを選択します。[メンバーを選択する] をクリックし、追加するユーザー、グループ、セキュリティプリンシパルを追加します。
必要に応じて説明(Description)も記入します。 -
割り当ての内容が表示されますので、問題なければ [レビューと割り当て] をクリックします。
-
割り当てが完了すると、[ロールの割り当て] に追加した割り当てが表示されます。
Entra ID
-
Entra ID 管理センター に必要なアクセス権のあるユーザーでサインインし、[ID] - [役割と管理者] - [役割と管理者] の順に開きます。
-
必要なロールを見つけます。検索ボックスまたは [フィルターの追加] を使用して、ロールを絞り込むことができます。
-
ロール名をクリックしてロールを開きます。ロールの横にチェック マークを付けないでください。
-
[割り当ての追加] をクリックして、ロールを割り当てるユーザーやグループを指定します。
-
ロールを割り当てるユーザーやグループにチェックを付けて、[追加] をクリックします。
-
割り当てが追加されます。
まとめ
Azure を利用する上で Azure リソースへのアクセス権を適切に管理することは、誤操作などでの不慮の事故防止、セキュリティインシデントの発生防止などセキュリティとコンプライアンスのために非常に重要です。
また Azure リソースにアクセスするユーザーを管理する Entra ID でも、ユーザーやグループなどオブジェクトへのアクセス権限の管理は重要です。
こうしたアクセス権を管理する仕組みが RBAC(役割ベースのアクセス管理)です。RBAC の機能や役割を正しく理解して、適切なアクセス権管理を行ってください。
なお Entra ID の RBAC では一部の機能で Entra ID Premium ライセンスが必要となります。
Azure サブスクリプションの契約、Entra ID Premium ライセンスを含む Microsoft 365 Business Premium・Microsoft 365 E3/E5 の契約や既存のサブスクリプションからのアップグレードにつきましては、お気軽に当社担当営業までご相談ください。
マルチクラウドの記事
- AWS 第34回『快適なパッチ管理をーPatch Managerー』
- AWS 第33回『DISオリジナル 月額固定プラン for AWS のご紹介』
- Azure 第31回『Azure の SQL データベース - どう使い分けるか?』
- AWS 第32回『やってみようシリーズ:AWSのサービスでウェブサーバーをHTTPS化してみよう「証明書を取得しアタッチしてみた」編』
- AWS 第31回『やってみようシリーズ:AWSのサービスでウェブサーバーをHTTPS化してみよう「AWSでドメインを所得してみた」編』
- Azure 第30回『Azure Virtual Machineのセキュリティ対策 - 5つのポイント -』