共用方式為


適用於 Azure 資源的受控識別:常見問題集

Azure 資源受控識別是 Microsoft Entra ID 的一項功能。 每個支援適用於 Azure 資源的受控識別 Azure 服務均受限於其本身的時間表。 在開始之前,請務必先檢閱資源的受控識別可用性狀態和已知問題

注意

先前稱為「受控服務識別」(MSI) 的服務,其新名稱為「Azure 資源適用受控識別」。

系統管理

如何尋找包含受控識別的資源?

您可以使用下列 Azure CLI 命令,尋找包含系統指派受控識別的資源清單:

az resource list --query "[?identity.type=='SystemAssigned'].{Name:name,  principalId:identity.principalId}" --output table

哪些 Azure RBAC 權限必須使用資源的受控識別?

  • 系統指派的受控識別:您需要具有該資源的寫入權限。 例如,對於虛擬機器您需要 Microsoft.Compute/virtualMachines/write。 此動作包含在資源特定的內建角色中,例如虛擬機器參與者
  • 指派使用者指派的受控識別給資源:您需要資源的寫入權限。 例如,對於虛擬機器您需要 Microsoft.Compute/virtualMachines/write。 對於使用者指派識別,您也需要 Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action 動作。 此動作包含在受控識別操作員的內建角色中。
  • 管理使用者指派的識別:若要建立或刪除使用者指派的受控識別,您需要受控識別參與者角色指派。
  • 管理受控識別的角色指派:授與存取權的資源需要擁有者使用者存取系統管理員的角色指派。 對於具有系統指派識別的資源,或是獲授予角色指派的使用者指派識別會需要讀者角色指派。 如果沒有讀取權限,您可以搜尋「使用者、群組或服務主體」,尋找身分識別的支援服務主體,而不是在新增角色指派時,搜尋受控識別。 深入了解指派 Azure 角色

如何防止建立使用者指派的受控識別?

您可以使用Azure 原則,防止使用者建立使用者指派的受控識別

  1. 登入 Azure 入口網站並移至政策

  2. 選擇定義

  3. 選取 [+ 原則定義],然後輸入必要資訊。

  4. 在 [原則規則] 區段中,貼上:

    {
      "mode": "All",
      "policyRule": {
        "if": {
          "field": "type",
          "equals": "Microsoft.ManagedIdentity/userAssignedIdentities"
        },
        "then": {
          "effect": "deny"
        }
      },
      "parameters": {}
    }
    
    

建立原則後,將其指派給您要使用的資源群組。

  1. 瀏覽至資源群組。
  2. 尋找您要用來測試的資源群組。
  3. 在左側選單選擇 [原則]
  4. 選取 [指派原則]
  5. 在 [基本] 區段,提供:
    1. 範圍:用來測試的資源群組
    2. 原則定義:之前建立的原則。
  6. 保留所有其他設定的預設值,然後選擇 [檢閱 + 建立]

此時,嘗試在資源群組建立使用者指派受控識別必定失敗。

顯示違反原則的螢幕擷取畫面。

概念

受控識別是否有支援的應用程式物件?

沒有,受控識別和 Microsoft Entra 應用程式註冊在目錄中是不一樣的。

應用程式註冊有兩個元件:應用程式物件 + 服務主體物件。 Azure 資源的受控識別只有一個元件:服務主體物件。

受控識別在目錄中沒有應用程式物件,而應用程式物件通常用來授與 MS Graph 的應用程式權限。 而且,受控識別的 MS Graph 權限必須直接授與服務主體。

受控識別相關的認證是什麼? 有效期限和循環的頻率為何?

注意

受控識別的驗證方式屬於內部實作細節,如有變更,恕不另行通知。

受控識別使用憑證式驗證。 每個受控識別的認證都是 90 天到期,並在 45 天後變換。

如果我沒有要求指定身分識別,IMDS 的身分識別將預設為何?

  • 如果啟用系統指派的受控識別,且要求中不指定身分識別,Azure Instance Metadata Service (IMDS) 會預設為系統指派的受控識別。
  • 如果未啟用系統指派的受控識別,且只有一個使用者指派的受控識別存在,則 IMDS 會預設為單一使用者指派的受控識別。

    如果因故將另一位使用者指派的受控識別指派給資源,您對 IMDS 的要求便會開始失敗,出現錯誤 Multiple user assigned identities exist, please specify the clientId / resourceId of the identity in the token request。 強烈建議您在要求中明確指定身分識別,即使資源中目前只有一個使用者指派的受控識別。

  • 如果未啟用系統指派的受控識別,且有多個使用者指派的受控識別存在,便需要在要求中指定受控識別。

限制

相同的受控識別可以跨多個區域使用嗎?

簡言之,可以。您可在一個以上的 Azure 區域使用使用者指派的受控識別。 更詳細的答案是,即使使用者指派的受控識別建立為區域資源,但 Microsoft Entra ID 中建立的相關服務主體 (SP) 則是全域可用。 您可以從任何 Azure 區域使用服務主體,而服務主體的可用性取決於 Microsoft Entra ID 的可用性。 例如,如果您在中南部區域建立了使用者指派的受控識別,而該區域無法使用時,這個問題只會影響受控識別本身的控制平面活動。 已設定使用受控識別的任何資源,其所執行的活動都不會受到影響。

Azure 資源適用受控識別是否可與 Azure 雲端服務 (傳統) 一起使用?

Azure 資源的受控識別目前不支援 Azure 雲端服務 (傳統) 。 /

什麼是 Azure 資源適用受控識別安全性界限?

身分識別的安全性界限,是指身分識別所連結到的資源。 例如,對於 Azure 資源適用受控識別已啟用的虛擬機器而言,其安全性界限就是虛擬機器。 在該虛擬機器上執行的任何程式碼,都能呼叫受控識別端點與要求權杖。 使用支援受控識別的其他資源時,其體驗會很類似。

如果我將訂用帳戶移到另一個目錄,系統是否會自動重新建立受控識別?

不會,如果您將訂閱移至另一個目錄,便須手動重新建立受控識別,並重新授與 Azure 角色指派。

  • 若為系統指派的受控識別:停用然後重新啟用。
  • 若為使用者指派的受控識別:刪除、重新建立,然後重新連結至所需的資源 (例如虛擬機器)

可以使用受控識別來存取不同目錄/租用戶中的資源嗎?

不行,受控識別目前不支援跨目錄案例。

受控識別是否有任何適用的速率限制?

受控識別限制取決於 Azure 服務限制、Azure Instance Metadata Service (IMDS) 限制和 Microsoft Entra 服務限制。

  • Azure 服務限制會定義租用戶和訂閱層級可執行的作業建立數目。 使用者指派的受控識別也有與命名相關的限制
  • IMDS 一般而言,對 IMDS 的要求限制為每秒五個要求。 超過此閾值的要求會遭到拒絕,並出現 429 回應。 受控識別類別的要求限制為每秒 20 個要求和 5 個並行要求。 您可在 Azure Instance Metadata Service (Windows) 文章,閱讀更多資訊。
  • Microsoft Entra 每個受控識別都會計入 Microsoft Entra 租用戶的物件配額限制中,如 Microsoft Entra 服務限制中所述。

使用者指派的受控識別可以移至不同的資源群組/訂閱嗎?

不支援將使用者指派的受控識別移至不同的資源群組。

受控識別權杖是否已經快取?

基於效能和復原目的,基礎 Azure 基礎結構會快取受控識別權杖:受控識別的後端服務會維護每個資源 URI 快取約 24 小時。 以受控識別的權限為例,變更可能需要數小時才會生效。 目前無法在到期前強制重新整理受控識別的權杖。 如需詳細資訊,請參閱使用受控識別授權的限制

是否已虛刪除受控識別?

是,已虛刪除受控識別 30 天。 您可以在刪除虛刪除的受控識別服務主體,但無法將其還原或永久刪除。

刪除受控識別之後,權杖會發生什麼事?

刪除受控識別時,先前與該身分識別相關聯的 Azure 資源無法再要求該身分識別的新權杖。 在刪除身分識別之前發行的權杖仍然有效,直到其原始到期日為止。 某些目標端點的授權系統可能會在目錄中執行身分識別的其他檢查,在此情況下,要求會失敗,因為找不到物件。 不過某些系統,例如 Azure RBAC,會繼續接受來自該權杖的要求,直到權杖到期為止。

下一步