共用方式為


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 入口網站 列出

  1. 登入 Azure 入口網站,開啟 [訪問控制][IAM] 頁面,然後選取 [角色指派] 索引標籤。

  2. 篩選合格和限時角色指派。

    您可以依 狀態分組和排序,並尋找不是作用中 永久 類型的角色指派。

    [存取控制] 及 [作用中指派] 和 [合格指派] 索引標籤的螢幕擷取畫面。

選項 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 入口網站 進行轉換

  1. 在 [Azure 入口網站] 的 [角色指派] 索引標籤和 [狀態] 數據行上,針對您想要轉換的每個角色指派,選取 [合格永久]、[合格時間範圍] 和 [作用中時間系結] 連結。

  2. 在 [ 編輯指派] 窗格中,針對工作分派 類型選取 [ 作用 中] 和 [永久 ] 以取得指派持續時間。

    如需詳細資訊,請參閱 編輯指派

    [編輯指派] 窗格的螢幕擷取畫面,其中顯示 [指派類型] 選項。

  3. 完成作業後,選取 [儲存]

    您的更新可能需要一些時間才會開始處理並反映在入口網站中。

  4. 針對您想要轉換的管理群組、訂用帳戶和資源群組範圍的所有角色指派重複這些步驟。

    如果您在想要轉換的資源範圍中有角色指派,則必須直接在 PIM 中進行變更。

選項 2:使用 PowerShell 轉換

沒有命令或 API 可以直接將角色指派轉換成不同的狀態或類型,因此您可以遵循下列步驟。

重要

拿掉角色指派可能會導致環境中的中斷。 請務必先了解影響,再執行這些步驟。

  1. 擷取並儲存安全位置中所有合格和限時角色指派的清單,以防止數據遺失。

    重要

    請務必儲存合格和限時角色指派的清單,因為這些步驟會要求您先移除這些角色指派,再建立與作用中永久相同的角色指派。

  2. 使用 New-AzRoleEligibilityScheduleRequest 命令來移除合格的角色指派。

    此範例示範如何移除合格的角色指派。

    $guid = New-Guid
    New-AzRoleEligibilityScheduleRequest -Name $guid -Scope <Scope> -PrincipalId <PrincipalId> -RoleDefinitionId <RoleDefinitionId> -RequestType AdminRemove
    
  3. 使用 New-AzRoleAssignmentScheduleRequest 命令來移除作用中的時間系結角色指派。

    此範例示範如何移除作用中時間系結角色指派。

    $guid = New-Guid
    New-AzRoleAssignmentScheduleRequest -Name $guid -Scope <Scope> -PrincipalId <PrincipalId> -RoleDefinitionId <RoleDefinitionId> -RequestType AdminRemove
    
  4. 使用 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 原則 的相關信息,請參閱教學課程:建立和管理原則以強制執行合規性

下一步