Azure RBAC とは

完了

ID とアクセスに関しては、パブリック クラウドの使用を検討しているほとんどの組織は、次の 2 つの点を考慮します。

  1. ユーザーが組織を離れるときに、クラウド内のリソースへのアクセス権が確実に失われるようになります。
  2. 自律性と集中管理の間で適切なバランスを取ること。たとえば、プロジェクト チームがクラウドで仮想マシンを作成および管理できるようにしながら、それらの VM と他のリソースとの通信に使用するネットワークを一元的に制御します。

Microsoft Entra ID と Azure ロールベースのアクセス制御 (Azure RBAC) が連携することによって、これらの目標を簡単に実現できるようになります。

Azure サブスクリプション

まず、各 Azure サブスクリプションが 1 つの Microsoft Entra ディレクトリに関連付けられていることに注意してください。 そのディレクトリ内のユーザー、グループ、およびアプリケーションのみが、Azure サブスクリプションでリソースを管理できます。 サブスクリプションでは、シングル サインオン (SSO) とアクセス管理に Microsoft Entra ID が使用されます。 Microsoft Entra Connect を使用して、オンプレミスの Active Directory をクラウドに拡張できます。 この機能により、従業員が既存の職場 ID を使用して Azure サブスクリプションを管理することができます。 オンプレミスの Active Directory アカウントを無効にすると、Microsoft Entra ID に接続されているすべての Azure サブスクリプションへのアクセスが自動的に失われます。

Azure RBAC とは

Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure Resource Manager 上に構築された認可システムであり、Azure 内のリソースに対するアクセスをきめ細かく管理できます。 Azure RBAC を使用すると、ユーザーがジョブを実行するために必要なアクセス権を厳密に付与することができます。 たとえば、Azure RBAC を使用して、ある従業員はサブスクリプションで仮想マシンを管理できるようにし、別の従業員は同じサブスクリプション内で SQL データベースを管理できるようにすることができます。

次のビデオでは、Azure RBAC について詳しく説明しています。

ユーザー、グループ、アプリケーションに特定のスコープで適切な Azure ロールを割り当てることにより、アクセス権を付与できます。 ロールの割り当てのスコープには、管理グループ、サブスクリプション、リソース グループ、または単一のリソースを指定できます。 親スコープでロールが割り当てられると、その親に含まれる子スコープへのアクセス権も付与されます。 たとえば、リソース グループへのアクセス権を持つユーザーは、Web サイト、仮想マシン、サブネットなど、リソース グループに含まれるすべてのリソースを管理できます。 割り当てる Azure ロールにより、そのスコープ内でユーザー、グループ、またはアプリケーションが管理できるリソースが決まります。

次の図は、従来のサブスクリプション管理者ロール、Azure ロール、および Microsoft Entra ロールがどのように関連しているかを大まかに示しています。 サブスクリプション全体など、より高いスコープに割り当てられているロールは、サービス インスタンスなどの子スコープへ継承されます。

Diagram that depicts how the classic subscription administrator roles, Azure roles, and Microsoft Entra roles are related at a high level.

上の図では、サブスクリプションは 1 つの Microsoft Entra テナントのみに関連付けられています。 また、リソース グループには複数のリソースを含めることができますが、関連付けられるのは 1 つのサブスクリプションのみであることに注意してください。 この図では明確ではありませんが、リソースをバインドできるリソース グループは 1 つだけです。

Azure RBAC でできること

Azure RBAC を使用すると、自分が制御する Azure リソースに対するアクセス権を付与できます。 開発、エンジニアリング、およびマーケティング チームに対して、Azure 内のリソースへのアクセス許可を管理する必要があるものとします。 アクセス権の要求を受け取り始めており、Azure リソースに対してアクセス管理がどのように機能するのかを早く学習する必要があります。

ここでは、Azure RBAC を使用して実装できるシナリオをいくつか紹介します。

  • あるユーザーにサブスクリプション内の仮想マシンの管理を許可し、別のユーザーに仮想ネットワークの管理を許可します
  • データベース管理者グループにサブスクリプション内の SQL データベースの管理を許可します
  • あるユーザーに、仮想マシン、Web サイト、サブネットなど、リソース グループ内のすべてのリソースの管理を許可します
  • あるアプリケーションに、リソース グループ内のすべてのリソースへのアクセスを許可します

Azure portal での Azure RBAC

Azure portal のいくつかの領域に、[アクセス制御 (IAM)] という名前のペインが表示されます。[ID とアクセスの管理] となっていることもあります。 このペインでは、その領域へのアクセス権を持つユーザーとそのロールを確認できます。 この同じペインを使用して、アクセス許可を付与または削除できます。

リソース グループの [アクセス制御 (IAM)] ペインの例を次に示します。 この例では、このリソース グループに対するバックアップ オペレーター ロールが Alain に割り当てられています。

Screenshot of the Azure portal showing the Access control Role assignment pane with the Backup operator section highlighted.

Azure RBAC のしくみ

ロールの割り当てを作成することによって、Azure RBAC を使用してリソースへのアクセスを制御できます。これは、アクセス許可を適用する方法を制御します。 ロールの割り当てを作成するには、次の 3 つの要素が必要です。セキュリティ プリンシパル、ロールの定義、スコープです。 これらの要素を "だれが"、"何を"、"どこで" として考えることができます。

1.セキュリティ プリンシパル (だれが)

"セキュリティ プリンシパル" は、アクセス許可を付与するユーザー、グループ、またはアプリケーションへの単に装飾的な名前です。

An illustration showing security principal including user, group, and service principal.

2.ロールの定義 (実行できること)

ロール定義は、アクセス許可のコレクションです。 単にロールと呼ばれることもあります。 ロール定義には、ロールが実行できるアクセス許可 (読み取り、書き込み、削除など) が一覧表示されます。 ロールは、所有者のように高レベルにすることも、仮想マシン共同作成者のように特定することもできます。

An illustration listing different built-in and custom roles with zoom-in on the definition for the contributor role.

Azure には、お客様が使用できる複数の組み込みロールがあります。 4 つの基本的な組み込みロールを次に示します。

  • 所有者: 他のユーザーにアクセス許可を委任する権限を含め、すべてのリソースへのフル アクセス権を持ちます
  • 共同作成者: すべての種類の Azure リソースを作成および管理できますが、他のユーザーにアクセス許可を付与することはできません
  • 閲覧者: 既存の Azure リソースを表示できます
  • ユーザー アクセス管理者: Azure リソースへのユーザー アクセスを管理できます

組み込みロールが組織の特定のニーズを満たさない場合は、独自のカスタム ロールを作成することができます。

3.スコープ (どこで)

"スコープ" は、アクセス許可が適用されるレベルです。 これは、1 つのリソース グループについてのみ、あるユーザーを Web サイトの共同作成者として指定する場合に便利です。

Azure では、複数のレベル (管理グループ、サブスクリプション、リソース グループ、リソース) でスコープを指定できます。 スコープは親子関係で構造化されています。 親スコープでアクセス権を付与すると、それらのアクセス許可が子スコープに継承されます。 たとえば、サブスクリプション スコープで共同作成者ロールをグループに割り当てる場合、そのロールはサブスクリプション内のすべてのリソース グループとリソースに継承されます。

An illustration showing a hierarchical representation of different Azure levels to apply scope. The hierarchy, starting with the highest level, is in this order: Management group, subscription, resource group, and resource.

ロールの割り当て

だれが、何を、どこで、を決定すると、アクセス許可を付与するそれらの要素を結合させることができます。 "ロールの割り当て" は、アクセスの許可を目的として、特定のスコープでセキュリティ プリンシパルにロールをバインドするプロセスです。 アクセス権を付与するには、ロールの割り当てを作成します。 アクセス権を削除するには、ロールの割り当てを削除します。

この例では、マーケティング グループが、どのように営業リソース グループ スコープで共同作成者ロールを割り当てられているかを示しています。

An illustration showing a sample role assignment process for Marketing group, which is a combination of security principal, role definition, and scope. The Marketing group falls under the Group security principal and has a Contributor role assigned for the Resource group scope.

Azure RBAC は許可モデル

Azure RBAC は "許可" モデルです。 つまり、ロールを割り当てられると、Azure RBAC によって読み取り、書き込み、削除などの特定のアクションの実行を許可されます。 そのため、あるロールの割り当てによってリソース グループへの読み取りアクセス許可が付与され、別のロールの割り当てによって同じリソース グループへの書き込みアクセス許可が付与されている場合、ユーザーはそのリソース グループに対して読み取りと書き込みのアクセス許可を持つことになります。

Azure RBAC には、NotActions アクセス許可と呼ばれるものがあります。 NotActions を使って、許可されていないアクセス許可のセットを作成できます。 ロールによって付与されるアクセス権 ("有効なアクセス許可") は、NotActions の操作から Actions の操作を差し引くことによって求められます。 たとえば、Contributor ロールには ActionsNotActions が両方含まれています。 Actions のワイルドカード (*) は、そのコントロール プレーンですべての操作を実行できることを示しています。 次に、NotActions に含まれる以下の操作を差し引いて、有効なアクセス許可を求めます。

  • ロールとロール割り当ての削除する
  • ロールとロール割り当ての作成
  • テナント スコープで、ユーザー アクセス管理者のアクセス権を呼び出し元に付与する
  • 任意のブループリント アーティファクトを作成または更新する
  • 任意のブループリント アーティファクトを削除する