提高存取權以管理所有 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項目標識碼 >管理 >屬性。
在 [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項目標識碼 >管理 >屬性。
將 [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
檢視具有提高存取權的使用者
如果您有提高存取權的用戶,橫幅會顯示在 Azure 入口網站 的幾個位置。 本節說明如何判斷您的租使用者中是否有提高存取權的使用者。 這項功能會分階段部署,因此您的租使用者可能尚未提供此功能。
選項 1
在 Azure 入口網站 中,流覽至 Microsoft Entra ID >Manage >Properties。
在 [Azure 資源的 存取管理] 底下,尋找下列橫幅。
You have X users with elevated access. Microsoft Security recommends deleting access for users who have unnecessary elevated access. Manage elevated access users
選取 [ 管理提高許可權的存取權使用者 ] 連結,以檢視具有更高存取權的使用者清單。
選項 2
在 Azure 入口網站 中,流覽至訂用帳戶。
選取 [存取控制 (IAM)]。
在頁面頂端,尋找下列橫幅。
Action required: X users have elevated access in your tenant. You should take immediate action and remove all role assignments with elevated access. View role assignments
選取 [ 檢視角色指派 ] 連結,以檢視具有更高存取權的用戶清單。
拿掉使用者提高許可權的存取權
如果您有提高存取權的使用者,您應該立即採取行動並移除該存取權。 若要移除這些角色指派,您也必須具有提升許可權的存取權。 本節說明如何使用 Azure 入口網站,移除租用戶中使用者提高許可權的存取權。 這項功能會分階段部署,因此您的租使用者可能尚未提供此功能。
以全域系統管理員身分登入 Azure 入口網站 。
流覽至Microsoft項目標識碼 >管理 >屬性。
在 [Azure 資源的存取管理] 下 ,將切換設定為 [是 ],如步驟 1:提高全域管理員 的存取權中所述。
選取 [ 管理提高許可權的存取權使用者 ] 連結。
[ 具有提高許可權存取權的使用者] 窗格隨即出現 ,其中包含租使用者中具有更高存取權的用戶清單。
若要移除使用者的提高存取權,請在使用者旁邊新增複選標記,然後選取 [ 移除 ]。
檢視提高存取權記錄專案
提高或移除存取權時,會將專案新增至記錄。 身為Microsoft Entra ID 中的系統管理員,您可能會想要檢查存取權是否已提高,以及誰這麼做。
提高存取記錄專案會出現在 Microsoft Entra 目錄稽核記錄和 Azure 活動記錄中。 目錄稽核記錄和活動記錄的提高存取記錄專案包括類似的資訊。 不過,目錄稽核記錄更容易篩選和匯出。 此外,導出功能可讓您串流存取事件,其可用於警示和偵測解決方案,例如Microsoft Sentinel 或其他系統。 如需如何將記錄傳送至不同目的地的資訊,請參閱 設定活動記錄 的Microsoft Entra 診斷設定。
本節說明您可以檢視提升許可權存取記錄專案的不同方式。
重要
Microsoft Entra 目錄稽核記錄中的提高存取記錄專案目前為預覽狀態。
此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。
如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款 。
以全域系統管理員身分登入 Azure 入口網站 。
流覽至 Microsoft Entra ID >Monitoring> Audit logs。
在 [ 服務 篩選] 中,選取 [Azure RBAC[已提高存取權], 然後選取 [ 套用 ]。
隨即顯示提高許可權的存取記錄。
若要在提高或移除存取權時檢視詳細數據,請選取這些稽核記錄專案。
User has elevated their access to User Access Administrator for their Azure Resources
The role assignment of User Access Administrator has been removed from the user
若要下載並檢視 JSON 格式記錄項目的承載,請選取 [下載] 和 [ JSON ]。
使用 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項目標識符> 群組]。
建立新的安全組,並記下群組對象標識碼。
使用 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
下一步