如果 Azure 內建的角色無法滿足您組織的特定需求,您可以建立自己的自訂角色。 在本教學課程中,您會使用 Azure CLI 建立名為 [讀者支援票證] 的自訂角色。 自訂角色可讓使用者檢視訂用帳戶控制平面中的所有內容,也可以開啟支援票證。
在本教學課程中,您將瞭解如何:
- 建立自訂角色
- 列出自訂角色
- 更新自訂角色
- 刪除自訂角色
如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
先決條件
若要完成本教學課程,您將需要:
- 建立自訂角色的權限,例如 使用者存取管理員
- Azure Cloud Shell 或 Azure CLI
登入到 Azure CLI
登入 Azure CLI。
建立自訂角色
建立自訂角色的最簡單方法是從 JSON 範本開始,新增變更,然後建立新角色。
檢閱 Microsoft.Support 資源提供者的動作清單。 瞭解可用於建立權限的動作會很有幫助。
動作 Description Microsoft.支援/註冊/動作 支援資源提供者的註冊 Microsoft.Support/supportTickets/read 取得支援票證詳細資料 (包括狀態、嚴重性、連絡人詳細資料和通訊) 或取得跨訂用帳戶的支援票證清單。 Microsoft.Support/supportTickets/write 建立或更新支援票證。 您可以針對技術、計費、配額或訂閱管理相關問題建立支援票證。 您可以更新現有支援票證的嚴重性、連絡人詳細資料和通訊。 建立名為 ReaderSupportRole.json的新檔案。
在編輯器中開啟 ReaderSupportRole.json,然後新增下列 JSON。
如需不同屬性的相關資訊,請參閱 Azure 自訂角色。
{ "Name": "", "IsCustom": true, "Description": "", "Actions": [], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/{subscriptionId1}" ] }將下列動作新增至
Actions屬性。 這些動作可讓使用者檢視訂閱中的所有內容,並建立支援票證。"*/read", "Microsoft.Support/*"使用 az account list 命令取得訂用帳戶的識別碼。
az account list --output table在
AssignableScopes中,輸入您的訂閱 ID 以取代{subscriptionId1}。您必須新增明確的訂用帳戶識別碼,否則您將無法將角色匯入訂用帳戶。
將
Name和Description屬性變更為「讀者支援票證」和「檢視訂閱中的所有內容,並開啟支援票證」。您的 JSON 檔案應如下所示:
{ "Name": "Reader Support Tickets", "IsCustom": true, "Description": "View everything in the subscription and also open support tickets.", "Actions": [ "*/read", "Microsoft.Support/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }若要建立新的自訂角色,請使用 az role definition create 命令並指定 JSON 角色定義檔案。
az role definition create --role-definition "~/CustomRoles/ReaderSupportRole.json"{ "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" }新的自訂角色現在可供使用,而且可以指派給使用者、群組或服務主體,就像內建角色一樣。
列出自訂角色
若要列出所有自訂角色,請使用 az role definition list 命令搭配參數
--custom-role-only。az role definition list --custom-role-only true[ { "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*", "Microsoft.Insights/diagnosticSettings/*/read" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" } ]您也可以在 Azure 入口網站 中查看自訂角色。
更新自訂角色
若要更新自訂角色,請更新 JSON 檔案,然後更新自訂角色。
開啟 ReaderSupportRole.json 檔案。
在
Actions中,新增動作以建立和管理資源群組部署"Microsoft.Resources/deployments/*"。 請務必在上一個動作後加上逗號。您更新的 JSON 檔案應如下所示:
{ "Name": "Reader Support Tickets", "IsCustom": true, "Description": "View everything in the subscription and also open support tickets.", "Actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }若要更新自訂角色,請使用 az role definition update 命令並指定更新的 JSON 檔案。
az role definition update --role-definition "~/CustomRoles/ReaderSupportRole.json"{ "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" }
刪除自訂角色
使用 az role definition delete 命令,並指定角色名稱或角色識別碼來刪除自訂角色。
az role definition delete --name "Reader Support Tickets"