管理 Azure 自訂角色

已完成

在本單元中,您將了解誰可以管理 Azure 自訂角色及如何進行。

誰可以管理自訂角色?

一般來說,具有「擁有者」或「使用者存取管理員角色」的系統管理員,具有建立及管理自訂角色的權限。 根據預設,這些角色在所有角色指派範圍都具有 Microsoft.Authorization/roleDefinitions/write 權限。 在建立、刪除或更新自訂角色時,都需要該權限。

角色指派範圍是在 AssignableScopes 的自訂角色定義中定義。 如單元 2 所述,AssignableScopes 可以是一或多個訂用帳戶、資源群組或資源。

下表列出在建立、刪除、更新或檢視自訂角色時所需的權限。 若要管理自訂角色,您必須在角色定義中受指派具有相關 ActionsAssignableScopes 的角色。

Task 動作 描述
建立/刪除 Microsoft.Authorization/roleDefinitions/write 使用者可以建立或刪除要在範圍中使用的自訂角色。 例如,訂用帳戶、資源群組和資源的「擁有者」及「使用者存取系統管理員」。
更新 Microsoft.Authorization/roleDefinitions/write 使用者可以更新範圍中的自訂角色。 例如,訂用帳戶、資源群組和資源的「擁有者」及「使用者存取系統管理員」。
檢視 Microsoft.Authorization/roleDefinitions/read 使用者可以檢視範圍中可供指派的自訂角色。 所有內建角色都允許自訂角色以供指派。

建立自訂角色

在上一個單元中,您已使用 Azure CLI 建立自訂角色。 您也可以使用 Azure 入口網站或 Azure PowerShell 來建立自訂角色。

使用 Azure 入口網站來建立自訂角色

在 Azure 入口網站中,移至要套用自訂角色範圍的訂用帳戶或資源群組,然後移至 [存取控制 (IAM)],並選取 [新增]> [新增自訂角色]。

螢幕擷取畫面:顯示 [新增] 按鈕下的 [新增自訂角色] 選項。

您可以選擇複製現有的角色或從頭開始。

螢幕擷取畫面:已選取 [複製角色] 選項按鈕,且要複製的角色是「虛擬機器參與者」。

不論您的選項為何,都可以編輯權限、範圍及產生的 JSON。

使用 Azure PowerShell 建立自訂角色

使用 Azure PowerShell 建立角色所涉及的步驟,類似於前面兩個單元中所討論的步驟。 在 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 入口網站中檢視自訂角色。 您也可以使用 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 入口網站中,您可以前往自訂角色範圍適用的訂用帳戶、資源群組或資源來移除指派。 然後前往 [存取控制 (IAM)>[角色指派]。 依角色名稱篩選,選取所有指派給該角色的使用者,然後選取 [移除]

在 Azure CLI 中,使用下列命令搭配自訂角色的名稱:

   az role assignment delete --role "role name"

在 Azure PowerShell 中,請使用 Remove-AzRoleAssignment Cmdlet。 命令看起來可能如下所示:

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

ObjectID 是使用者、群組或服務主體的 Microsoft Entra ObjectId。

刪除自訂角色

您可以使用 Azure 入口網站、Azure CLI 或 Azure PowerShell 來刪除自訂角色。

在 Azure 入口網站中,移至套用自訂角色範圍的訂用帳戶、資源群組或資源,然後移至 [存取控制 (IAM)]>[角色]。 若要尋找角色,請選取 [類型]>[CustomRole]

顯示從下拉式清單中選取自訂角色的螢幕擷取畫面。

選取該角色,然後選取 [移除]。

在下一個單元中,您會透過 Azure CLI 使用下列命令刪除自訂角色:

az role definition delete --name "role name"

在 PowerShell 中,請使用下列命令來刪除角色:

Get-AzRoleDefinition "role name" | Remove-AzRoleDefinition

檢定您的知識

1.

用於更新自訂角色的 Azure PowerShell Cmdlet 為何?

2.

移除自訂角色的步驟為何?