什麼是 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 資源使用受控識別?
您可以遵循下列步驟來使用受控識別:
- 在 Azure 中建立受控識別。 您可以選擇系統指派的受控識別或使用者指派的受控識別。
- 使用使用者指派的受控識別時,您會將受控識別指派給「來源」Azure 資源,例如虛擬機器、Azure 邏輯應用程式或 Azure Web 應用程式。
- 授權受控識別存取「目標」服務。
- 使用受控識別來存取資源。 在此步驟中,您可以使用 Azure SDK 搭配 Azure.Identity 程式庫。 某些「來源」資源提供連接器,這些連接器知道如何針對連線使用受控識別。 在此情況下,您會使用身分識別作為該「來源」資源的一項功能。
哪些 Azure 服務支援此功能?
適用於 Azure 資源的受控識別,可用來向支援 Microsoft Entra 驗證的服務進行驗證。 如需支援的 Azure 服務清單,請參閱 支援 Azure 資源 受控識別的服務。
我可以在受控識別上執行哪些作業?
支援系統指派受控識別的資源可讓您:
- 在資源層級啟用或停用受控識別。
- 使用角色型存取控制 (RBAC) 來 授與許可權 。
- 在 Azure 活動記錄 中 檢視建立、讀取、更新和刪除 (CRUD) 作業。
- 在 Microsoft Entra ID 登入記錄 中檢視登入活動。
如果您選擇使用者指派的受控識別,請改為:
- 您可以 建立、讀取、更新和刪除 身分識別。
- 您可以使用 RBAC 角色指派來 授與許可權 。
- 使用者指派的受控識別可用於多個資源。
- CRUD 作業可在 Azure 活動記錄 中 檢閱。
- 在 Microsoft Entra ID 登入記錄 中檢視登入活動。
您可以使用 Azure Resource Manager 範本、Azure 入口網站、Azure CLI、PowerShell 和 REST API 來執行受控識別的作業。
下一步
- 開發人員簡介和指導方針
- 使用 Windows VM 系統指派的受控識別來存取 Resource Manager
- 使用 Linux VM 系統指派的受控識別來存取 Resource Manager
- 如何使用 App Service 和 Azure Functions 的受控身分識別
- 如何搭配 Azure 容器執行個體使用受控識別
- 實作 Microsoft Azure 資源的受控識別
- 使用 受控識別的 工作負載身分識別同盟來存取受 Microsoft Entra 保護的資源,而不需管理秘密