提高存取權以管理所有 Azure 訂用帳戶和管理群組
本文內容
身為 Microsoft Entra ID 中的全域管理員,您可能沒有目錄中所有訂用帳戶與管理群組的存取權。 本文說明您可以提高所有訂用帳戶和管理群組存取權的方式。
為什麼您需要提高存取權?
如果您是全域管理員,有時候您可能會想要執行下列動作:
當使用者失去存取權時,重新取得 Azure 訂用帳戶或管理群組的存取權
將 Azure 訂用帳戶或管理群組的存取權授與其他使用者或您自己
查看組織中的所有 Azure 訂用帳戶或管理群組
允許自動化應用程式(例如發票或稽核應用程式)存取所有 Azure 訂用帳戶或管理群組
已提高的存取權會如何運作?
Microsoft Entra ID 和 Azure 資源會獨立地受到保護。 也就是說,Microsoft Entra 角色分配不授予對 Azure 資源的存取權,Azure 角色分配不授予對 Microsoft Entra ID 的存取權。 不過,如果您是 Microsoft Entra ID 中的全域管理員 ,您可以藉由指派存取權給自己,來存取您目錄中的所有 Azure 訂用帳戶與管理群組。 如果您沒有 Azure 訂用帳戶資源 (例如虛擬機器或儲存體帳戶) 的存取權,而且想要使用全域管理員權限來取得這些資源的存取權,您可以使用這項功能來達成。
當您提高存取權時,系統會在根範圍 (/
) 中指派 Azure 中的使用者存取系統管理員 角色。 這可讓您檢視所有資源,並指派目錄中任何訂用帳戶或管理群組的存取權。 您可以使用 Azure PowerShell、Azure CLI 或 REST API 來移除「使用者存取管理員」的角色指派。
一旦您在根範圍上進行所需的變更後,您應該移除此提高的存取權。
步驟 1:提高全域管理員的存取權
請遵循下列步驟,使用 Azure 入口網站提高全域管理員的存取權。
以全域系統管理員身分登入 Azure 入口網站 。
如果您使用 Microsoft Entra Privileged Identity Management,請 啟用您的全域管理員角色指派 。
開啟 Microsoft Entra ID 。
在 [管理] 底下,選取 [屬性] 。
在 [Azure 資源的存取管理] 下,將設定切換為 [是] 。
當您將切換開關設定為 [是 ] 時,系統會在根範圍 (/) 的 Azure RBAC 中指派使用者存取系統管理員角色。 這會授與您在與此 Microsoft Entra 目錄相關聯的所有 Azure 訂用帳戶和管理群組中指派角色的權限。 此切換僅適用於在 Microsoft Entra ID 中獲指派全域管理員角色的使用者。
當您將切換開關設定為 [否 ] 時,Azure RBAC 中的 [使用者存取管理員] 角色會從您的使用者帳戶中移除。 您無法再指派與此 Microsoft Entra 目錄相關聯的所有 Azure 訂用帳戶和管理群組中的角色。 您只能檢視和管理已授與您存取權的 Azure 訂用帳戶和管理群組。
按一下 [儲存] 以儲存您的設定。
此設定不是全域屬性,僅適用於目前登入的使用者。 您無法提高全域管理員角色之所有成員的存取權。
登出並重新登入以重新整理您的存取權。
您現在應該可以存取您目錄中的所有訂用帳戶和管理群組。 當您檢視 [存取控制 (IAM)] 窗格時,您會注意到您已在根範圍獲取使用者存取管理員角色。
執行您需要以更高存取權執行的變更。
如需指派角色的相關信息,請參閱使用 Azure 入口網站 指派 Azure 角色。 如果您使用 Privileged Identity Management,請參閱 探索 Azure 資源來管理 或 指派 Azure 資源角色 。
執行下一節中的步驟,以移除提升許可權的存取權。
步驟 2:移除提升許可權的存取權
若要移除根範圍 (/
) 的使用者存取系統管理員角色指派,請遵循下列步驟。
以用來提高存取權的相同使用者身分登入。
在瀏覽清單中,按一下 [Microsoft Entra ID] ,然後按一下 [屬性] 。
將 [Azure 資源的存取管理] 切換開關設回 [否] 。 因為這是依各個使用者設定,因此您必須以與用來提升存取權相同的使用者身分登入。
如果您嘗試移除 [存取控制 (IAM)] 窗格上的 [使用者存取管理員] 角色指派,您會看到下列訊息。 若要移除角色指派,您必須將切換開關設回 [否] ,或使用 Azure PowerShell、Azure CLI 或 REST API。
以全域管理員身分登出。
如果您使用 Privileged Identity Management,請停用您的全域管理員角色指派。
步驟 1:提高全域管理員的存取權
使用 Azure 入口網站 或 REST API 來提升全域管理員的存取權。
步驟 2:列出根範圍的角色指派 (/)
提高存取權之後,若要列出根範圍 (/
) 使用者的使用者存取系統管理員角色指派,請使用 Get-AzRoleAssignment 命令。
Get-AzRoleAssignment | where {$_.RoleDefinitionName -eq "User Access Administrator" `
-and $_.SignInName -eq "<username@example.com>" -and $_.Scope -eq "/"}
RoleAssignmentId : /providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope : /
DisplayName : username
SignInName : username@example.com
RoleDefinitionName : User Access Administrator
RoleDefinitionId : 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
ObjectId : 22222222-2222-2222-2222-222222222222
ObjectType : User
CanDelegate : False
步驟 3:移除提升許可權的存取權
若要為自己或根範圍中的其他使用者移除使用者存取系統管理員角色指派,/
請遵循下列步驟。
以可移除提升許可權存取權的使用者身分登入。 這可以是用來提高存取權的相同使用者,或根範圍具有更高存取權的另一個全域管理員。
使用 Remove-AzRoleAssignment 命令來移除使用者存取系統管理員角色指派。
Remove-AzRoleAssignment -SignInName <username@example.com> `
-RoleDefinitionName "User Access Administrator" -Scope "/"
步驟 1:提高全域管理員的存取權
使用下列基本步驟,使用 Azure CLI 提升全域管理員的存取權。
使用 az rest 命令來呼叫elevateAccess
端點,這會授與您根範圍 (/
) 的使用者存取系統管理員角色。
az rest --method post --url "/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
執行您需要以更高存取權執行的變更。
如需指派角色的相關信息,請參閱 使用 Azure CLI 指派 Azure 角色。
執行稍後一節中的步驟,以移除提升許可權的存取權。
步驟 2:列出根範圍的角色指派 (/)
提高存取權之後,若要列出根範圍 (/
) 使用者的使用者存取系統管理員角色指派,請使用 az role assignment list 命令。
az role assignment list --role "User Access Administrator" --scope "/"
[
{
"canDelegate": null,
"id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
"name": "11111111-1111-1111-1111-111111111111",
"principalId": "22222222-2222-2222-2222-222222222222",
"principalName": "username@example.com",
"principalType": "User",
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
"roleDefinitionName": "User Access Administrator",
"scope": "/",
"type": "Microsoft.Authorization/roleAssignments"
}
]
步驟 3:移除提升許可權的存取權
若要為自己或根範圍中的其他使用者移除使用者存取系統管理員角色指派,/
請遵循下列步驟。
以可移除提升許可權存取權的使用者身分登入。 這可以是用來提高存取權的相同使用者,或根範圍具有更高存取權的另一個全域管理員。
使用 az role assignment delete 命令來移除使用者存取系統管理員角色指派。
az role assignment delete --assignee username@example.com --role "User Access Administrator" --scope "/"
必要條件
您必須使用下列版本:
2015-07-01
或更新版本以列出和移除角色指派
2016-07-01
或更新版本以提升存取權
2018-07-01-preview
或更新版本列出拒絕指派
如需詳細資訊,請參閱 Azure RBAC REST API 的 API 版本 。
步驟 1:提高全域管理員的存取權
使用下列基本步驟,使用 REST API 提升全域管理員的存取權。
使用 REST 呼叫 elevateAccess
,這會授與您根範圍 (/
) 的使用者存取系統管理員角色。
POST https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01
執行您需要以更高存取權執行的變更。
如需指派角色的相關信息,請參閱 使用 REST API 指派 Azure 角色。
執行稍後一節中的步驟,以移除提升許可權的存取權。
步驟 2:列出根範圍的角色指派(/)
提高存取權之後,您就可以列出根範圍 (/
) 使用者的所有角色指派。
呼叫 角色指派 - 列出範圍 ,其中 {objectIdOfUser}
是您要擷取其角色指派的用戶物件標識碼。
GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectIdOfUser}'
步驟 3:列出根範圍中的拒絕指派 (/)
提高存取權之後,您就可以列出根範圍 (/
) 使用者的所有拒絕指派。
呼叫 拒絕指派 - 範圍 清單,其中 {objectIdOfUser}
是您要擷取拒絕指派之使用者的物件標識符。
GET https://management.azure.com/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01&$filter=gdprExportPrincipalId+eq+'{objectIdOfUser}'
步驟 4:移除提升許可權的存取權
當您呼叫 elevateAccess
時,您可以為自己建立角色指派,因此若要撤銷這些許可權,您必須在根範圍 (/
) 移除使用者存取系統管理員角色指派。
呼叫 角色定義 - 取得 等於使用者存取管理員的位置 roleName
,以判斷使用者存取系統管理員角色的名稱識別碼。
GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?api-version=2022-04-01&$filter=roleName+eq+'User Access Administrator'
{
"value": [
{
"properties": {
"roleName": "User Access Administrator",
"type": "BuiltInRole",
"description": "Lets you manage user access to Azure resources.",
"assignableScopes": [
"/"
],
"permissions": [
{
"actions": [
"*/read",
"Microsoft.Authorization/*",
"Microsoft.Support/*"
],
"notActions": []
}
],
"createdOn": "0001-01-01T08:00:00.0000000Z",
"updatedOn": "2016-05-31T23:14:04.6964687Z",
"createdBy": null,
"updatedBy": null
},
"id": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
"type": "Microsoft.Authorization/roleDefinitions",
"name": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9"
}
],
"nextLink": null
}
儲存 參數中的 name
識別碼,在此案例中為 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
。
您也需要在目錄範圍中列出目錄管理員的角色指派。 列出目錄管理員在目錄範圍內 principalId
進行提高存取權呼叫的所有指派。 這會列出 objectid 目錄中的所有指派。
GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectid}'
注意
目錄管理員不應該有許多指派,如果先前的查詢傳回太多指派,您也可以查詢目錄範圍層級的所有指派,然後篩選結果: GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()
先前的呼叫會傳回角色指派的清單。 尋找範圍所在的"/"
roleDefinitionId
角色指派,並以您在步驟 1 中找到的角色名稱標識子結尾,並principalId
符合目錄管理員的 objectId。
角色指派範例:
{
"value": [
{
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
"principalId": "{objectID}",
"scope": "/",
"createdOn": "2016-08-17T19:21:16.3422480Z",
"updatedOn": "2016-08-17T19:21:16.3422480Z",
"createdBy": "22222222-2222-2222-2222-222222222222",
"updatedBy": "22222222-2222-2222-2222-222222222222"
},
"id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
"type": "Microsoft.Authorization/roleAssignments",
"name": "11111111-1111-1111-1111-111111111111"
}
],
"nextLink": null
}
同樣地,請從 name
參數儲存標識符,在此案例中為 111111-1111-1111-1111-1111111111111。
最後,使用角色指派標識符移除 所 elevateAccess
新增的指派:
DELETE https://management.azure.com/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111?api-version=2022-04-01
在目錄活動記錄中檢視提高存取記錄項目的許可權
提高存取權時,會將專案新增至記錄。 身為 Microsoft Entra ID 中的全域管理員,您可能會想要檢查存取權是否已提高,以及誰這麼做。 提高存取記錄專案不會出現在標準活動記錄中,而是會出現在目錄活動記錄中。 本節說明您可以檢視提升許可權存取記錄專案的不同方式。
使用 Azure 入口網站 檢視提高存取記錄項目的許可權
以全域系統管理員身分登入 Azure 入口網站 。
開啟 [監視 >活動記錄]。
將 [活動] 列表變更為 [ 目錄活動 ]。
搜尋下列作業,表示提高存取權動作。
Assigns the caller to User Access Administrator role
使用 Azure CLI 檢視提高存取記錄項目的許可權
使用 az login 命令以全域管理員身分登入。
使用 az rest 命令進行下列呼叫,您必須依日期進行篩選,如範例時間戳所示,並指定要儲存記錄的檔名。
會 url
呼叫 API 來擷取 Microsoft.Insights 中的記錄。 輸出將會儲存至您的檔案。
az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
輸出檔案中, 搜尋 elevateAccess
。
記錄檔會類似下列內容,您可以在其中查看動作發生的時間和呼叫它的人員時間戳。
"submissionTimestamp": "2021-08-27T15:42:00.1527942Z",
"subscriptionId": "",
"tenantId": "33333333-3333-3333-3333-333333333333"
},
{
"authorization": {
"action": "Microsoft.Authorization/elevateAccess/action",
"scope": "/providers/Microsoft.Authorization"
},
"caller": "user@example.com",
"category": {
"localizedValue": "Administrative",
"value": "Administrative"
},
使用 Azure CLI 委派群組的存取權,以檢視提升許可權的存取記錄專案
如果您想要定期取得提高許可權的存取記錄專案,您可以委派群組的存取權,然後使用 Azure CLI。
開啟 Microsoft Entra ID> 群組。
建立新的安全組,並記下群組對象標識碼。
使用 az login 命令以全域管理員身分登入。
使用 az role assignment create 命令,將讀取者角色指派 給只能讀取目錄層級記錄的群組,這些記錄位於 Microsoft/Insights
。
az role assignment create --assignee "{groupId}" --role "Reader" --scope "/providers/Microsoft.Insights"
將讀取記錄的使用者新增至先前建立的群組。
群組中的用戶現在可以定期執行 az rest 命令,以檢視提高許可權的存取記錄專案。
az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
下一步