Azure RBAC 中的合格和時間限制角色指派
如果您有 Microsoft Entra ID P2 或 Microsoft Entra ID Governance 授權,Microsoft Entra Privileged Identity Management (PIM) 會整合至角色指派步驟。 例如,您可以將角色指派給使用者一段有限的時間。 您也可以讓使用者符合角色指派的資格,他們必須啟用才能使用角色,例如要求核准。 符合資格的角色指派會在限定時間內提供角色的 Just-In-Time 存取權。
本文說明 Azure 角色型訪問控制 (Azure RBAC) 和 Microsoft Entra Privileged Identity Management (PIM) 整合,以建立符合資格和時間限制的角色指派。
PIM 功能
如果您有 PIM,您可以使用 Azure 入口網站 中的存取控制 (IAM) 頁面來建立符合資格和時間限制的角色指派。 您可以為使用者建立合格的角色指派,但無法為應用程式、服務主體或受控識別建立合格的角色指派,因為它們無法執行啟用步驟。 在 [訪問控制 (IAM)] 頁面上,您可以在管理群組、訂用帳戶和資源群組範圍建立合格的角色指派,但無法在資源範圍建立。
以下是當您使用訪問控制 (IAM) 頁面新增角色指派時,指派類型索引卷標的範例。 這項功能會分階段進行部署,因此您的租用戶中可能尚未提供此功能,或是介面可能有所不同。
您可用的指派類型選項具體取決於 PIM 原則。 例如,PIM 原則會定義是否可以建立永久指派、時間限制指派的最大持續時間、角色啟用需求 (核准、多重要素驗證或條件式存取驗證內容),以及其他設定。 如需更多資訊,請參閱在 Privileged Identity Management 中設定 Azure 資源角色設定。
具有合格和/或時間限制指派的用戶必須具有有效的授權。 如果您不想使用 PIM 功能,請選取 [作用中指派類型] 和 [永久] 指派持續時間選項。 這些設定會建立角色指派,其中主體一律具有角色的權限。
若要進一步了解 PIM,您應該檢閱下列詞彙。
詞彙或概念 | 角色指派類別 | 描述 |
---|---|---|
合格 | 類型 | 需要使用者執行一或多個動作才能使用角色的角色指派。 如果使用者已獲得角色的資格,即表示他們可以在需要執行特殊權限工作時啟用該角色。 使用者不論是具有永久角色指派還是合格角色指派,獲得的存取權並無差異。 唯一的差異在於有些使用者並不一直需要該存取權。 |
作用中 | 類型 | 不要求使用者執行任何動作即可使用角色的角色指派。 指派為有效的使用者具有指派給角色的權限。 |
啟用 | 此程序會執行一或多個動作,讓使用者使用有資格使用的角色。 動作可能包括執行多重要素驗證 (MFA) 檢查、提供業務理由,或向指定的核准者要求核准。 | |
永久合格 | 期間 | 使用者一律有資格啟用角色的角色指派。 |
永久有效 | 期間 | 使用者一律可以使用角色而不需執行任何動作的角色指派。 |
有時限的合格 | 期間 | 使用者只能在開始和結束日期內有資格啟動角色的角色指派。 |
有時限的作用中 | 期間 | 使用者只能在開始和結束日期內使用角色的角色指派。 |
Just-In-Time (JIT) 存取 | 一種模型,使用者會在其中獲得臨時權限以執行特殊權限的工作,這可防止惡意或未經授權的使用者在權限過期後取得存取權。 只有當使用者需要時才會獲得存取權。 | |
最低權限存取的原則 | 建議的安全性做法,只授與每位使用者獲授權執行的工作所需的最低權限。 這種做法會將全域管理員的數目降到最低,並改為針對特定案例使用特定的系統管理員角色。 |
如需詳細資訊,請參閱什麼是 Microsoft Entra Privileged Identity Management?
如何列出合格和限時角色指派
如果您想要查看哪些使用者使用 PIM 功能,以下是如何列出合格和限時角色指派的選項。
選項 1:使用 Azure 入口網站 列出
選項 2:使用 PowerShell 列出
沒有單一PowerShell命令可以同時列出合格和作用中時間綁定角色指派。 若要列出合格的角色指派,請使用 Get-AzRoleEligibilitySchedule 命令。 若要列出作用中的 角色指派,請使用 Get-AzRoleAssignmentSchedule 命令。
此範例示範如何在訂用帳戶中列出合格和時間綁定角色指派,其中包括這些角色指派類型:
- 永久合格
- 有時限的合格
- 有時限的作用中
此命令 Where-Object
會篩選出沒有 PIM 的 Azure RBAC 功能可用的作用中永久角色指派。
Get-AzRoleEligibilitySchedule -Scope /subscriptions/<subscriptionId>
Get-AzRoleAssignmentSchedule -Scope /subscriptions/<subscriptionId> | Where-Object {$_.EndDateTime -ne $null }
如需如何建構範圍的相關信息,請參閱 瞭解 Azure RBAC 的範圍。
如何將合格和限時角色指派轉換為作用中永久
如果您的組織有限制 PIM 使用的程式或合規性原因,以下是如何將這些角色指派轉換為作用中永久的選項。
選項 1:使用 Azure 入口網站 進行轉換
在 [Azure 入口網站] 的 [角色指派] 索引標籤和 [狀態] 數據行上,針對您想要轉換的每個角色指派,選取 [合格永久]、[合格時間範圍] 和 [作用中時間系結] 連結。
在 [ 編輯指派] 窗格中,針對工作分派 類型選取 [ 作用 中] 和 [永久 ] 以取得指派持續時間。
如需詳細資訊,請參閱 編輯指派。
完成作業後,選取 [儲存]。
您的更新可能需要一些時間才會開始處理並反映在入口網站中。
針對您想要轉換的管理群組、訂用帳戶和資源群組範圍的所有角色指派重複這些步驟。
如果您在想要轉換的資源範圍中有角色指派,則必須直接在 PIM 中進行變更。
選項 2:使用 PowerShell 轉換
沒有命令或 API 可以直接將角色指派轉換成不同的狀態或類型,因此您可以遵循下列步驟。
重要
拿掉角色指派可能會導致環境中的中斷。 請務必先了解影響,再執行這些步驟。
擷取並儲存安全位置中所有合格和限時角色指派的清單,以防止數據遺失。
重要
請務必儲存合格和限時角色指派的清單,因為這些步驟會要求您先移除這些角色指派,再建立與作用中永久相同的角色指派。
使用 New-AzRoleEligibilityScheduleRequest 命令來移除合格的角色指派。
此範例示範如何移除合格的角色指派。
$guid = New-Guid New-AzRoleEligibilityScheduleRequest -Name $guid -Scope <Scope> -PrincipalId <PrincipalId> -RoleDefinitionId <RoleDefinitionId> -RequestType AdminRemove
使用 New-AzRoleAssignmentScheduleRequest 命令來移除作用中的時間系結角色指派。
此範例示範如何移除作用中時間系結角色指派。
$guid = New-Guid New-AzRoleAssignmentScheduleRequest -Name $guid -Scope <Scope> -PrincipalId <PrincipalId> -RoleDefinitionId <RoleDefinitionId> -RequestType AdminRemove
使用 Get-AzRoleAssignment 命令來檢查現有的角色指派,並使用 New-AzRoleAssignment 命令,針對每個合格和時間限制的角色指派,使用 Azure RBAC 建立作用中永久角色指派。
此範例示範如何檢查現有的角色指派,並使用 Azure RBAC 建立作用中的永久角色指派。
$result = Get-AzRoleAssignment -ObjectId $RA.PrincipalId -RoleDefinitionName $RA.RoleDefinitionDisplayName -Scope $RA.Scope; if($result -eq $null) { New-AzRoleAssignment -ObjectId $RA.PrincipalId -RoleDefinitionName $RA.RoleDefinitionDisplayName -Scope $RA.Scope }
如何限制建立合格或限時角色指派
如果您的組織有限制 PIM 使用的程式或合規性原因,您可以使用 Azure 原則 來限制建立合格或限時角色指派。 如需詳細資訊,請參閱何謂 Azure 原則?。
以下是一個範例原則,可限制建立合格和時間綁定角色指派,但特定身分識別清單除外。 您可以針對其他允許條件新增其他參數和檢查。
{
"properties": {
"displayName": "Limit eligible and active time-bound role assignments except for allowed principal IDs",
"policyType": "Custom",
"mode": "All",
"metadata": {
"createdBy": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"createdOn": "2024-11-05T02:31:25.1246591Z",
"updatedBy": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"updatedOn": "2024-11-06T07:58:17.1699721Z"
},
"version": "1.0.0",
"parameters": {
"allowedPrincipalIds": {
"type": "Array",
"metadata": {
"displayName": "Allowed Principal IDs",
"description": "A list of principal IDs that can receive PIM role assignments."
},
"defaultValue": []
}
},
"policyRule": {
"if": {
"anyof": [
{
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/roleEligibilityScheduleRequests"
},
{
"not": {
"field": "Microsoft.Authorization/roleEligibilityScheduleRequests/principalId",
"in": "[parameters('allowedPrincipalIds')]"
}
}
]
},
{
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/roleAssignmentScheduleRequests"
},
{
"not": {
"field": "Microsoft.Authorization/roleAssignmentScheduleRequests/principalId",
"in": "[parameters('allowedPrincipalIds')]"
}
}
]
}
]
},
"then": {
"effect": "deny"
}
},
"versions": [
"1.0.0"
]
},
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4ef/providers/Microsoft.Authorization/policyDefinitions/1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5",
"type": "Microsoft.Authorization/policyDefinitions",
"name": "1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5",
"systemData": {
"createdBy": "test1@contoso.com",
"createdByType": "User",
"createdAt": "2024-11-05T02:31:25.0836273Z",
"lastModifiedBy": "test1@contoso.com",
"lastModifiedByType": "User",
"lastModifiedAt": "2024-11-06T07:58:17.1651655Z"
}
}
如需 PIM 資源屬性的相關信息,請參閱下列 REST API 檔:
如需如何使用參數指派 Azure 原則 的相關信息,請參閱教學課程:建立和管理原則以強制執行合規性。