管理 Azure 自訂角色
在本單元中,您將了解誰可以管理 Azure 自訂角色及如何進行。
誰可以管理自訂角色?
一般來說,具有「擁有者」或「使用者存取管理員角色」的系統管理員,具有建立及管理自訂角色的權限。 根據預設,這些角色在所有角色指派範圍都具有 Microsoft.Authorization/roleDefinitions/write
權限。 在建立、刪除或更新自訂角色時,都需要該權限。
角色指派範圍是在 AssignableScopes 的自訂角色定義中定義。 如單元 2 所述,AssignableScopes 可以是一或多個訂用帳戶、資源群組或資源。
下表列出在建立、刪除、更新或檢視自訂角色時所需的權限。 若要管理自訂角色,您必須在角色定義中受指派具有相關 Actions 和 AssignableScopes 的角色。
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