Azure カスタム ロールを管理する

完了

このユニットでは、Azure カスタム ロールを誰がどのように管理できるかを学習します。

カスタム ロールは誰が管理できるのですか?

一般に、所有者またはユーザー アクセス管理者のロールを持つ管理者には、カスタム ロールを作成および管理するためのアクセス許可があります。 既定では、これらのロールは、ロールの割り当てスコープのすべてにおいて Microsoft.Authorization/roleDefinitions/write アクセス許可を持ちます。 このアクセス許可は、カスタム ロールを作成、削除、または更新するために必要です。

ロールの割り当てスコープは、AssignableScopes のカスタム ロール定義内で定義されています。 ユニット 2 で説明したように、AssignableScopes は 1 つまたは複数のサブスクリプション、リソース グループ、またはリソースである可能性があります。

次の表に、カスタム ロールの作成、削除、更新、表示を行うために必要なアクセス許可を示します。 カスタム ロールを管理するには、ロール定義で、関連する ActionsAssignableScopes を持つロールに割り当てられている必要があります。

タスク アクション 説明
作成/削除 Microsoft.Authorization/roleDefinitions/write ユーザーは、スコープで使用するカスタム ロールを作成または削除できます。 例: サブスクリプション、リソース グループ、およびリソースの所有者とユーザー アクセス管理者。
更新 Microsoft.Authorization/roleDefinitions/write ユーザーは、スコープ内のカスタム ロールを更新できます。 例: サブスクリプション、リソース グループ、およびリソースの所有者とユーザー アクセス管理者。
表示 Microsoft.Authorization/roleDefinitions/read ユーザーは、スコープで割り当て可能なカスタム ロールを表示できます。 すべての組み込みロールを使用すると、カスタム ロールを割り当てに使用できます。

カスタム ロールを作成する

前のユニットでは、Azure CLI を使用してカスタム ロールを作成しました。 カスタム ロールは、Azure portal または Azure PowerShell を使用して作成することもできます。

Azure portal を使用してカスタム ロールを作成する

Azure portal で、カスタム ロール スコープの適用対象にしたいサブスクリプションまたはリソース グループに移動してから、[アクセス制御 (IAM)] に移動し、[追加]>[カスタム ロールの追加] の順に選択します。

[追加] ボタンの下の [カスタム ロールの追加] オプションを示すスクリーンショット。

既存のロールを複製するか、最初から作成するかを選択できます。

[ロールを複製します] ラジオ ボタンと、[複製するロール] として [仮想マシン共同作成者] が選択されているスクリーンショット。

どちらを選択した場合でも、アクセス許可、スコープ、および結果として得られる JSON を編集できます。

Azure PowerShell を使用してカスタム ロールを作成する

Azure PowerShell を使用してロールを作成する手順は、前の 2 つのユニットで説明したものと似ています。 JSON ファイルでカスタム ロールを定義した後、Azure CLI で次のコマンドを使用してカスタム ロールを作成します。

az role definition create --role-definition vm-operator-role.json

Azure PowerShell でロールを作成するには、次のコマンドを実行します。

New-AzRoleDefinition -InputFile "vm-operator-role.json"

カスタム ロールを更新する

カスタム ロールを更新するには、Azure CLI または Azure PowerShell を使用します。 次のユニットでは、カスタム ロール定義を更新するための具体的な手順について説明しますが、一般的には、JSON ファイルに変更を加えて更新した後、次のいずれかのコマンドを実行します。

Azure CLI を使用してカスタム ロールを更新するには、更新プログラムが含まれている JSON ファイルへのパスを使用して次のコマンドを実行します。

az role definition update --role-definition "<<path-to-json-file>>"

Azure PowerShell では、更新された JSON ファイルへのパスを使用して次のコマンドを実行します。

Set-AzRoleDefinition -InputFile "<<path-to-json-file>>"

カスタム ロールを表示する

次のユニットでは、Azure portal にカスタム ロールを表示する方法について学習します。 また、Azure CLI または PowerShell を使用して、カスタム ロールの一覧を取得することもできます。

Azure CLI を使用してすべてのカスタム ロールを一覧表示するには、次のコマンドを使用します。

az role definition list --custom-role-only true --output json | jq '.[] | {"roleName":.roleName, "roleType":.roleType}'

このコマンドはロール名とロールの種類を確認するだけであることに注意してください。 これにより、多数のロールを表示しやすくなります。

Azure PowerShell を使用してすべてのカスタム ロールを一覧表示するには、次のコマンドを使用します。 このコマンドは、サブスクリプションで割り当て可能なカスタム ロールの一覧を表示します。 サブスクリプションがロールの AssignableScopes にない場合、カスタム ロールは表示されません。

Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom

ロール定義を表示する

特定のロールの完全な定義を表示するには、次の Azure CLI コマンドを使用します。

az role definition list --name "Virtual Machine Operator"

PowerShell で定義を表示するには、次のコマンドを使用します。

Get-AzRoleDefinition "Virtual Machine Operator" 

カスタム ロールの割り当てを一覧表示する

次のコマンドを使用すると、Azure CLI で作成したカスタム ロールに割り当てられたユーザーを確認できます。

az role assignment list --role "Virtual Machine Operator"

PowerShell の場合は、次のコマンドを実行します。

Get-AzRoleAssignment -RoleDefinitionName "Virtual Machine Operator"

カスタム ロールを削除する

次のユニットの演習では、前のユニットで作成したカスタム ロールが必要なため、カスタム ロールはまだ削除しないでください。 まず、カスタム ロールを削除する方法について説明します。

ロールの割り当てを削除する

カスタム ロールが不要になった場合は、ロールを削除する前に、ロールの割り当てを削除する必要があります。

Azure portal では、カスタム ロールのスコープが適用されるサブスクリプション、リソース グループ、またはリソースに移動して、割り当てを削除できます。 その後、[アクセス制御 (IAM)]>[ロールの割り当て] の順に選択します。 ロール名でフィルター処理し、ロールに割り当てられているすべてのユーザーを選択し、[削除] を選択します。

Azure CLI では、カスタム ロールの名前で次のコマンドを使用します。

   az role assignment delete --role "role name"

Azure PowerShell で、Remove-AzRoleAssignment コマンドレット を使用します。 コマンドは次に示したもののようになります。

Remove-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName "role name" -Scope /subscriptions/<subscription_id>

ObjectID は、ユーザー、グループ、またはサービス プリンシパルの Microsoft Entra ObjectId です。

カスタム ロールを削除する

カスタム ロールは、Azure portal、Azure CLI、または Azure PowerShell を使用して削除できます。

Azure portal で、カスタム ロールのスコープが適用されるサブスクリプション、リソース グループ、またはリソースに移動し、[アクセス制御 (IAM)]>[ロール] に移動します。 ロールを検索するには、[種類]>[CustomRole] の順に選択します。

ドロップダウン リストから選択されたカスタム ロールを示すスクリーンショット。

ロールを選択し、[削除] を選択します。

次のユニットでは、次のコマンドを使用して、Azure CLI を使用してカスタム ロールを削除します。

az role definition delete --name "role name"

PowerShell では、次のコマンドを使用してロールを削除します。

Get-AzRoleDefinition "role name" | Remove-AzRoleDefinition

知識を確認

1.

カスタム ロールを更新するための Azure PowerShell コマンドレットは何ですか?

2.

カスタム ロールはどのような手順で削除するのですか?