PowerShellを使用してAzure ADの役割と権限を管理する方法

PowerShellを使用してAzure ADの役割とアクセス許可を管理する方法についての支援が必要ですか?この記事では、PowerShellを使用してAzure Role Based Access Control(RBAC)を自動化する典型的なシナリオを説明しています。

Azureの役割とアクセス許可を管理するための基礎を築き、準備するために、まずAzureの役割ベースのアクセス制御(RBAC)の概要から始めます。その後、役割割り当ての3つの要素を説明します。

Azure ADの役割とアクセス許可を管理するための前提条件を説明するセクションもあります。

次のセクションでは、PowerShellを使用してAzure ADの役割を割り当てる手順を説明します。

最後に、PowerShellを使用してユーザーとグループに割り当てられた役割をリストする方法について説明します。

Azure Role-Based Access Control(RBAC)とは何ですか?Azureの役割ベースのアクセス制御(RBAC)では、管理者がリソースへの細かいアクセス制御を行うことができます。言い換えれば、Azure RBACは、誰がリソースにアクセスできるかを管理者が制御できるようにします。

Azureのロールベースのアクセス制御(RBAC)により、管理者はリソースへの細かいアクセス制御を行うことができます。

言い換えると、Azure RBACは管理者がリソースへのアクセス権を持つユーザーを制御できるようにします。

さらに、RBACはAzureのリソースへのアクセスレベルを制御します。サービス プリンシパルに割り当てられるユーザーやグループには、Azureには事前定義された権限を持つ数百の組み込みロールがあります。

事前定義された権限を持つ組み込みロールが存在することにより、管理者はオブジェクトに直接権限を付与する必要がなく、ロールの割り当てが容易になります。

ただし、組織のニーズに適していない場合があります。このような状況では、カスタムロールが作成されます。

この記事では、既存のロールの割り当てとカスタムAzure ADロールの作成と割り当ての手順について説明します。

Azureロール割り当て要素

ロールの割り当てには3つの要素が関与します – セキュリティ プリンシパル、ロール定義、およびスコープです。セキュリティ プリンシパルは、ロールが割り当てられるAzure Active Directoryオブジェクトです。

一方、ロール定義は割り当てられる組み込みまたはカスタムのAzure ADロールであり、スコープはロールが割り当てられるレベルです。Azureでは、ロールが割り当てられる4つのスコープがあります。

具体的には、Azureの役割はリソース、リソースグループ、サブスクリプション、および管理グループに割り当てられます。リソースに役割を割り当てるには、リソースIDが必要です。

しかし、リソースグループのスコープに役割を割り当てるには、リソースグループの名前が必要です。Get-AzResourceGroupコマンドを実行すると、現在のサブスクリプションに含まれるすべてのリソースグループとその名前が返されます。

サブスクリプションのスコープで役割を割り当てる場合は、サブスクリプションIDが必要です。テナント内のすべてのサブスクリプションをリストするには、Get-AzSubscriptionコマンドを実行します。

最後に、管理グループのスコープに割り当てられた役割は、管理グループの名前が必要です。管理グループの名前を取得するには、Get-AzManagementGroupコマンドを実行します。

これらの要素を理解することは、PowerShellを使用したAzure ADの役割と権限の管理に重要です。記事の残りの部分では、セキュリティプリンシパル、役割定義、およびスコープが、PowerShellを使用してAzure ADでの役割の割り当てと管理にどのように使用されるかを探ります。

PowerShellでAzure ADの役割と権限を管理するための前提条件

管理者が役割を割り当てる前に、以下の要件を満たす必要があります:

  1. ユーザーには、Microsoft.Authorization/roleAssignments/write権限が必要です。この権限を持つ唯一の役割は、User Access Administrator、Owner、または Global Administratorです。
  2. 次に、Azure Cloud Shellまたは Azure PowerShellにアクセスする必要があります。
  3. PowerShellコマンドを実行するユーザーアカウントには、Microsoft Graph Directory.Read.All権限が必要です。
  4. 最後に、この記事のいくつかのタスクを実行するには、Azure AD Premium P1 ライセンスが必要です。

この記事では、これらの権限を割り当てる手順を説明します。

また、こちらもご覧くださいAzure AD Roles & Privileges: Azure AD RBAC Model

PowerShellを使用して組み込みのAzure ADロールを割り当てる手順上記のクラウドシェルリンクをクリックし、Azureアカウントでサインインすると、以下のスクリーンショットのような画面が表示されます。Azure Cloud Shellの利点は、PCにPowerShellモジュールをインストールする必要がないことです。

I’ll be running the PowerShell commands in this and subsequent sections from Azure Cloud Shell, a browser-based shell that allows running Azure CLI or PowerShell commands. However, I’ll be running the commands from my computer. 

上記のクラウドシェルリンクをクリックしてAzureアカウントでサインインすると、以下のスクリーンショットのような画面が表示されます。Azure Cloud Shellの利点は、PCにPowerShellモジュールをインストールする必要がないことです。

ステップ1:オブジェクトIDを決定する

Azureリソースにロールを割り当てる前に、オブジェクトIDを取得する必要があります。ユーザー、グループ、またはサブスクリプションのオブジェクトIDを決定するには、以下の手順に従ってください。

1. Azure Cloud Shellを開きます – shell.azure.com そして、あなたのAzureアカウントでサインインします。

Azure Cloud Shellを初めて開く場合、ストレージアカウントを作成する必要があります。

2. ロールを割り当てる必要があるユーザーまたはグループのIDを取得するために、以下のコマンドを実行します。最初のコマンドでは、

$userid = (Get-AzADUser -UserPrincipalName AnthonyRa@corp.itechguides.com).id
$groupid = (Get-AzADGroup -DisplayName "Helpdesk Admins (AAD)").id

と始まるユーザーのIDを返します。最初のコマンドはユーザーのIDをuserid変数に保存し、2つ目のコマンドはグループのIDをgrouped変数に保存します。コマンドを実行する前に、UserPrincipalNameとDisplayNameを変更することを忘れないでください。

ステップ2:割り当てるロールを取得する

次の手順で、PowerShellを使用してAzure ADの角色的权限を管理する場合、割り当てる角色を決定することが求められます。最初に、以下のコマンドを使用して、Azure ADテナント内にあるすべての可用な角色をリストアップするからです。

Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id

このコマンドは、テナント内のすべての角色の名前IDを表示します。また、IsCustom列にTrueまたはFalseを返します。

例示するために、私はステップ1で決定したユーザーとグループにセキュリティ管理者角色を割り当てたいです。この角色の名前を表示するために、Get-AzRoleDefinitionコマンドの出力をWhere-Objectに pipe して、以下のコマンドのように表示します。

$roleassignmentname = (Get-AzRoleDefinition | where-object {$_.name -eq "Security Admin"}).Name

ステップ3: 割り当てる角色的識別

以下のコマンドは、ストORAGEアカウント(リソーススコープ)のResourceIDを返し、ResourceID変数に保存します。

後で、ステップ1で決定したユーザーをこのストORAGEアカウントリソースに「セキュリティ管理者」角色に割り当てます。

$scoperesourceID = (Get-AzResource | Where-object {$_.name -eq "veeambackup21"}).ResourceID

ステップ4: Azure角色の割り当て

ステップ 1 から 3 の情報を利用して、以下のコマンドを使用して用户に角色を割り当てします。このコマンドを実行する前に、このストレージアカウントにはこの角色が割り当てられていません。以下のスCREENSHOTで示されています。

最初のコマンドは、$userid変数に保存されたユーザーに「セキュリティ管理者」の役割を割り当てます。同様に、2番目のコマンドは、$groupid変数に保存されたグループに同じ役割を割り当てます。

New-AzRoleAssignment -ObjectId $userid -RoleDefinitionName $roleassignmentname -Scope $scoperesourceID
New-AzRoleAssignment -ObjectId $groupid -RoleDefinitionName $roleassignmentname -Scope $scoperesourceID

上記のコマンドを実行した後に、ストレージアカウントを更新すると、Security Admin役割が表示され、割り当てられたユーザーとグループが表示されます。

PowerShellを使用してAzure AD ロール割り当てを表示

以前に、UPNを持つ「Security admin」役割を[email protected]のユーザーに割り当てました。覚えていると思いますが、そのユーザーのuserIdは$userid変数に保存されました。

同様に、ストレージアカウントのスコープIDは$scoperesourceID変数に保存されました。ユーザーの役割割り当てを表示するために、以下のコマンドを実行します。

get-AzRoleAssignment -scope $scoperesourceID -ObjectId $userid

このコマンドは、役割割り当ての詳細を表示します。これには、RoleAssignmentNameやスコープが含まれます。

このコマンドを実行することで、同様の情報をグループに表示することができます。

get-AzRoleAssignment -scope $scoperesourceID -ObjectId $groupid

PowerShell Conclusionを使用してAzure ADの役割と権限を管理する

管理者Azureの役割を管理するには、役割ベースのアクセス制御モデルの知識が必要です。また、PowerShellを使用して役割を割り当てる要素であるセキュリティ主体、役割定義、およびスコープを理解することは、役割の割り当てを効果的に管理するために不可欠です。

その上、役割を割り当てるアカウントは、PowerShellを必要なモジュールで構成し、適切な管理特権を確保するなど、いくつかの前提条件を満たさなければなりません。

この記事で提供されている段階的なガイドは、PowerShellを使用して組み込みAzure ADの役割を割り当てる際に従う明確な手順を示しており、Object IDの決定から役割の割り当てのスコープの特定まで、各段階が細かく説明されており、シームレスで管理された役割の割り当てプロセスを容易にします。

Source:
https://infrasos.com/managing-azure-ad-roles-and-permissions-with-powershell/