Azure ロールを割り当てる手順

Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure のリソースに対するアクセスを管理するために使用する承認システムです。 アクセス権を付与するには、特定のスコープでユーザー、グループ、サービス プリンシパル、またはマネージド ID にロールを割り当てます。 この記事では、Azure portal、Azure PowerShell、Azure CLI、または REST API を使用して Azure ロールを割り当てる手順の概要について説明します。

手順 1: アクセス権が必要なユーザーを決定する

まず、アクセス権が必要なユーザーを決定する必要があります。 ロールを、ユーザー、グループ、サービス プリンシパル、またはマネージド ID に割り当てることができます。 セキュリティ プリンシパル とも呼ばれます。

Security principal for a role assignment

  • ユーザー - Microsoft Entra ID のプロファイルを持つ個人。 他のテナント内のユーザーにロールを割り当てることもできます。 他の組織のユーザーについては、Microsoft Entra B2B を参照してください
  • グループ - Microsoft Entra ID で作成されたユーザーのセット。 グループにロールを割り当てると、そのグループ内のすべてのユーザーがそのロールを持つようになります。
  • サービス プリンシパル - 特定の Azure リソースにアクセスするためにアプリケーションまたはサービスによって使用されるセキュリティ ID です。 アプリケーションに対する "ユーザー ID" (ユーザー名とパスワード、または証明書) と考えることができます。
  • マネージド ID - Azure によって自動的に管理される Microsoft Entra ID の ID。 通常、マネージド ID は、Azure サービスに対する認証を受けるための資格情報を管理するクラウド アプリケーションを開発するときに使用します。

手順 2: 適切なロールを選ぶ

アクセス許可は"ロールの定義"でまとめてグループ化されます。 通常は単に "ロール" と呼ばれます。 いくつかの組み込みロールの一覧から選択できます。 組み込みロールが組織の特定のニーズを満たさない場合は、独自のカスタム ロールを作成することができます。

Role definition for a role assignment

ロールは、ジョブ機能ロールと特権管理者ロールに編成されます。

ジョブ関数ロール

ジョブ関数ロールを使用すると、特定の Azure リソースを管理できます。 たとえば、仮想マシン共同作成者ロールが割り当てられたユーザーには、仮想マシンの作成と管理が許可されます。 適切なジョブ機能ロールを選択するには、次の手順に従います。

  1. まず、包括的な記事である「Azure 組み込みロール」から始めます。 この記事の冒頭にある表は、記事の後の方にある詳細説明へのインデックスです。

  2. この記事で、アクセス許可を付与する対象リソースのサービス カテゴリ (コンピューティング、ストレージ、データベースなど) に移動します。 通常、探しているものを見つけるのに最も簡単な方法は、"BLOB"、"仮想マシン" などの関連キーワードをページ内で検索することです。

  3. サービス カテゴリに一覧表示されているロールを確認し、必要な特定のアクションを特定します。 繰り返しになりますが、常に、最も制限の厳しいロールから始めるようにしてください。

    たとえば、セキュリティ プリンシパルが Azure Storage アカウントの BLOB を読み取る必要がある一方で、書き込みアクセスを必要としない場合は、ストレージ BLOB データ共同作成者ではなくストレージ BLOB データ閲覧者を選択します (決して管理者レベルのストレージ BLOB データ所有者ロールを選択しないようにしてください)。 ロールの割り当ては、必要に応じて後でいつでも更新できます。

  4. 適切なロールが見つからない場合は、カスタム ロールを作成できます。

特権管理者ロール

特権管理者ロールは、Azure リソースを管理したり他のユーザーにロールを割り当てたりする機能など、特権管理者アクセスを付与するロールです。 次のロールは特権と見なされ、すべてのリソースの種類に適用されます。

Azure ロール アクセス許可
所有者
  • すべてのリソースを管理するためのフル アクセスを許可します
  • Azure RBAC でロールを割り当てる
Contributor
  • すべてのリソースを管理するためのフル アクセスを許可します
  • Azure RBAC でロールを割り当てることができない
  • Azure Blueprints で割り当てを管理したり、イメージ ギャラリーを共有したりできない
ロール ベースのアクセスの制御の管理者
  • Azure リソースに対するユーザー アクセスを管理する
  • Azure RBAC でロールを割り当てる
  • 自分自身または他のユーザーに所有者ロールを割り当てる
  • Azure Policy などの他の方法を使用してアクセスを管理できない
User Access Administrator
  • Azure リソースに対するユーザー アクセスを管理する
  • Azure RBAC でロールを割り当てる
  • 自分自身または他のユーザーに所有者ロールを割り当てる

特権管理者ロールの割り当てを使用する場合のベスト プラクティスについては、「Azure RBAC のベスト プラクティス」を参照してください。 詳細については、「特権管理者ロールの定義」を参照してください

手順 3: 必要なスコープを特定する

"スコープ" は、アクセスが適用されるリソースのセットです。 Azure では、4 つのレベル (管理グループ、サブスクリプション、リソース グループ、リソース) でスコープを指定できます。 スコープは親子関係で構造化されています。 階層のレベルごとに、スコープがより限定的になります。 これらのスコープレベルのいずれかで、ロールを割り当てることができます。 選択するレベルで、ロールの適用範囲が決まります。 上位レベルのロールのアクセス許可が下位レベルに継承されます。

Scope for a role assignment

親スコープでロールを割り当てると、それらのアクセス許可が子スコープに継承されます。 次に例を示します。

  • 管理グループ スコープでユーザーに閲覧者ロールを割り当てた場合、そのユーザーは、その管理グループに存在する全サブスクリプションの内容をすべて閲覧できます。
  • 課金データ閲覧者ロールをサブスクリプション スコープでグループに割り当てた場合、そのグループのメンバーは、サブスクリプション内のすべてのリソース グループとリソースの課金データを読み取ることができます。
  • 共同作成者ロールをリソース グループ スコープでアプリケーションに割り当てた場合、そのアプリケーションは、そのリソース グループ内のすべての種類のリソースを管理できますが、サブスクリプション内の他のリソース グループは管理できません。

セキュリティ プリンシパルには、そのジョブを実行するために必要な最小特権を付与することをお勧めします。 最初はより便利に思える場合でも、より広範なスコープのより広範なロールを割り当てることは避けてください。 ロールとスコープを制限することで、セキュリティ プリンシパルが侵害された場合にリスクにさらされるリソースを制限することができます。 詳細については、スコープの概要に関する記事を参照してください。

手順 4: 前提条件を確認する

ロールを割り当てるには、ロールを割り当てようとしているスコープのロール ベースのアクセス制御管理登録者など、ロールの割り当て書き込みアクセス許可を持つロールが割り当てられているユーザーを使用してサインインする必要があります。 同様に、ロールの割り当てを削除するには、ロールの割り当ての削除のアクセス許可が必要です。

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.Authorization/roleAssignments/delete

ユーザー アカウントにサブスクリプション内のロールを割り当てるアクセス許可がない場合は、アカウントに "アクション 'Microsoft.Authorization/roleAssignments/write' を実行する承認がありません" というエラー メッセージが表示されます。この場合は、サブスクリプションの管理者に連絡して、ユーザーに代わってアクセス許可を割り当てることができます。

サービス プリンシパルを使用してロールを割り当てる場合は、"操作を完了するための特権が不十分です" というエラーが表示されることがあります。このエラーは、Azure が Microsoft Entra ID で割り当て先 ID を検索しようとしており、サービス プリンシパルが既定で Microsoft Entra ID を読み取ることができないために発生する可能性があります。 この場合は、ディレクトリ内のデータを読み取るためのアクセス許可をサービス プリンシパルに付与する必要があります。 または、Azure CLI を使用している場合は、割り当て先オブジェクト ID を使用してロールの割り当てを作成し、Microsoft Entra 参照をスキップすることもできます。 詳細については、「Azure RBAC のトラブルシューティング」を参照してください。

手順 5:ロールを割り当てる

セキュリティ プリンシパル、ロール、およびスコープについて理解できたら、ロールを割り当てることができます。 ロールは Azure portal、Azure PowerShell、Azure CLI、Azure SDK、または REST API を使用して割り当てることができます。

各サブスクリプションには、最大 4,000 個のロールの割り当てを保持できます。 この制限には、サブスクリプション、リソース グループ、およびリソースのスコープでのロールの割り当てが含まれます。 各管理グループには、最大 500 個のロールの割り当てを保持できます。 詳細については、「Azure RBAC の制限のトラブルシューティング」を参照してください

ロールを割り当てる方法の詳細な手順については、次の記事をご覧ください。

次のステップ