若要限制對 Azure 資源的存取,您可以使用服務主體來管理角色指派。 每個角色在存取 Azure 資源時,都會提供用戶允許的不同許可權。 本教學課程中的此步驟說明如何建立和移除服務主體角色。
Azure CLI 具有下列命令來管理角色指派:
- az role assignment list(顯示角色分配列表的命令)
- az role assignment create (建立角色指派)
- az role assignment delete(刪除角色指派)
建立或移除角色指派
參與者角色具有讀取和寫入 Azure 帳戶的完整許可權。 讀取者 角色具有更為嚴格的唯讀存取限制。 務必遵循最低許可權的原則。 如需 Azure RBAC 中可用角色的完整清單,請參閱 Azure 內建角色。
新增角色不會限制先前分配的權限。 此範例會新增讀者角色,並移除參與者角色:
az role assignment create --assignee myServicePrincipalID \
--role Reader \
--scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
az role assignment delete --assignee myServicePrincipalID \
--role Contributor \
--scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
輸出主控台:
{
"condition": null,
"conditionVersion": null,
"createdBy": null,
"createdOn": "yyyy-mm-ddT00:00:00.000000+00:00",
"delegatedManagedIdentityResourceId": null,
"description": null,
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000",
"principalId": "00000000-0000-0000-0000-000000000000",
"principalType": "ServicePrincipal",
"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroupName",
"type": "Microsoft.Authorization/roleAssignments",
"updatedBy": "00000000-0000-0000-0000-000000000000",
"updatedOn": "yyyy-mm-ddT00:00:00.000000+00:00"
}
如何取得範圍參數的值
您可能會問:「如何知道--scope參數的值?」答案是尋找並複製您的服務主體所需存取的 Azure 資源的Resource ID。 此資訊通常位於每個資源的 Azure 入口網站 [屬性] 或 [端點] 頁面中。 以下是常見的 --scope 範例,但 依賴您的 資源標識符 來取得實際的格式和值。
| Scope | 範例 |
|---|---|
| 訂閱 | /subscriptions/mySubscriptionID |
| 資源群組 | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName |
| 虛擬機 | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname |
| 儲存帳戶檔案服務 | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default |
| 資料處理站 | /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName |
如需更多範圍範例,請參閱 瞭解 Azure RBAC 的範圍。
驗證變更
可以通過列出分配的角色來驗證更改。
# list all role assignments for the current subscription
az role assignment list --output table
# list role assignments for a user
az role assignment list --assignee myUserName@contoso.com
# list role assignments for a subscription
az role assignment list --subscription mySubscriptionID
您也可以進入 Azure 入口網站,並從 [訪問控制] 功能表手動將角色指派給服務主體。 如需列出角色指派的詳細資訊範例,請參閱 使用 Azure CLI 列出 Azure 角色指派。
後續步驟
既然您已瞭解如何管理服務主體角色,請繼續進行下一個步驟,瞭解如何使用服務主體來建立資源。