什麼是 Azure 資源受控識別?
開發人員常見的挑戰是管理用來保護服務間安全通訊的祕密、認證、憑證和金鑰。 受控識別會排除開發人員管理這些認證的需求。
雖然開發人員可以安全地將祕密儲存在 Azure Key Vault 中,但是服務需要存取 Azure Key Vault 的方法。 受控識別可針對應用程式提供 Microsoft Entra ID 中的自動受控識別,以在連線至支援 Microsoft Entra 驗證的資源時使用。 應用程式可以使用受控識別來取得 Microsoft Entra 權杖,而不需要管理任何認證。
下列影片說明如何使用受控識別:
以下為使用受控識別的一些優點:
- 不需要管理認證。 甚至無法存取認證。
- 您可以使用受控識別,驗證支援 Microsoft Entra 驗證的任何資源 (包括您自己的應用程式)。
- 不需任何額外成本,即可使用受控識別。
注意
先前稱為「受控服務識別」(MSI) 的服務,其新名稱為「Azure 資源適用受控識別」。
受控識別類型
受控身分識別有兩種:
系統指派。 某些 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 Service) 的一部分。 | 建立為獨立的 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 角色指派來授與權限。
- 使用者指派的受控識別可用於多個資源。
- 您可以在 Azure 活動記錄中取得 CRUD 作業進行檢閱。
- 在 Microsoft Entra ID 登入記錄中檢視登入活動。
您可以使用 Azure Resource Manager 範本、Azure 入口網站、Azure CLI、PowerShell 和 REST API 來執行對受控識別的作業。
下一步
- 開發人員簡介和指導方針
- 使用 M 系統指派的受控識別來存取 Resource Manager
- 如何使用 App Service 和 Azure Functions 的受控身分識別
- 如何搭配 Azure 容器執行個體使用受控識別
- 實作 Microsoft Azure 資源的受控識別
- 使用受控識別的工作負載身分識別同盟來存取受 Microsoft Entra 保護的資源,而不需要管理祕密