什麼是 Azure 資源受控識別?

開發人員常見的挑戰是管理用來保護服務間安全通訊的祕密、認證、憑證和金鑰。 受控識別會排除開發人員管理這些認證的需求。

雖然開發人員可以安全地將秘密儲存在 Azure 金鑰保存庫 ,但服務需要一種方式來存取 Azure 金鑰保存庫。 受控識別可針對應用程式提供 Microsoft Entra ID 中的自動受控識別,以在連線至支援 Microsoft Entra 驗證的資源時使用。 應用程式可以使用受控識別來取得 Microsoft Entra 權杖,而不需要管理任何認證。

下列影片示範如何使用受控識別:

以下是使用受控識別的一些優點:

  • 不需要管理認證。 甚至無法存取認證。
  • 您可以使用受控識別向任何支援 Microsoft Entra 驗證 的資源進行驗證,包括您自己的應用程式。
  • 受控識別不需額外費用。

注意

Azure 資源的受控識別是服務的新名稱,先前稱為受控服務識別(MSI)。

受控識別類型

受控身分識別有兩種:

  • 系統指派。 某些 Azure 資源,例如虛擬機器可讓您直接在資源上啟用受控識別。 當您啟用系統指派的受控識別時:

    • 在該身分識別的 Microsoft Entra ID 中建立特殊型別的服務主體。 服務主體會系結至該 Azure 資源的生命週期。 刪除 Azure 資源時,Azure 會自動為您刪除服務主體。
    • 根據設計,只有該 Azure 資源可以使用此身分識別,自 Microsoft Entra ID 要求權杖。
    • 您可以授權受控識別存取一或多個服務。
    • 系統指派的服務主體名稱一律與其建立的 Azure 資源名稱相同。 若為部署位置,其系統指派身分識別的名稱為 <app-name>/slots/<slot-name>
  • 使用者指派。 您也可以建立受控身分識別作為獨立 Azure 資源。 您可以 建立使用者指派的受控識別 ,並將它指派給一或多個 Azure 資源。 啟用使用者指派的受控識別時:

    • 在該身分識別的 Microsoft Entra ID 中建立特殊型別的服務主體。 服務主體會與使用它的資源分開管理。
    • 使用者指派的身分識別可供多個資源使用。
    • 您可以授權受控識別存取一或多個服務。

下表顯示兩種受控識別類型之間的差異:

屬性 系統指派的受控識別 使用者指派的受控識別
建立 建立為 Azure 資源的一部分(例如 Azure 虛擬機器 或 Azure App 服務)。 建立為獨立 Azure 資源。
生命週期 使用受控識別所建立的 Azure 資源分享生命週期。
當父代資源刪除時,受控識別也會一併刪除。
獨立的生命週期。
必須明確刪除。
由所有 Azure 資源共用 無法共用。
它只能與單一 Azure 資源相關聯。
可以共用。
使用者指派的同一個受控識別可與多個 Azure 資源相關聯。
常見使用案例 包含在單一 Azure 資源內的工作負載。
需要獨立身分識別的工作負載。
例如,在單一虛擬機器上執行的應用程式。
在多個資源上執行的工作負載,而且可以共用單一身分識別。
需要預先授權給安全資源的工作負載,做為布建流程的一部分。
資源回收頻率高、但權限應保持一致的工作負載。
例如,有多個虛擬機器需要存取相同資源的工作負載。

如何針對 Azure 資源使用受控識別?

您可以遵循下列步驟來使用受控識別:

  1. 在 Azure 中建立受控識別。 您可以選擇系統指派的受控識別或使用者指派的受控識別。
    1. 使用使用者指派的受控識別時,您會將受控識別指派給「來源」Azure 資源,例如虛擬機器、Azure 邏輯應用程式或 Azure Web 應用程式。
  2. 授權受控識別存取「目標」服務。
  3. 使用受控識別來存取資源。 在此步驟中,您可以使用 Azure SDK 搭配 Azure.Identity 程式庫。 某些「來源」資源提供連接器,這些連接器知道如何針對連線使用受控識別。 在此情況下,您會使用身分識別作為該「來源」資源的一項功能。

哪些 Azure 服務支援此功能?

適用於 Azure 資源的受控識別,可用來向支援 Microsoft Entra 驗證的服務進行驗證。 如需支援的 Azure 服務清單,請參閱 支援 Azure 資源 受控識別的服務。

我可以在受控識別上執行哪些作業?

支援系統指派受控識別的資源可讓您:

  • 在資源層級啟用或停用受控識別。
  • 使用角色型存取控制 (RBAC) 來 授與許可權
  • 在 Azure 活動記錄 檢視建立、讀取、更新和刪除 (CRUD) 作業。
  • 在 Microsoft Entra ID 登入記錄 中檢視登入活動。

如果您選擇使用者指派的受控識別,請改為:

您可以使用 Azure Resource Manager 範本、Azure 入口網站、Azure CLI、PowerShell 和 REST API 來執行受控識別的作業。

下一步