共用方式為


Azure Kubernetes Service (AKS) 中的受控識別概觀

本文提供 AKS 中系統指派和使用者指派的受控識別概觀,包括其運作方式、角色指派,以及 AKS 特定的受控識別功能。

若要在新的或現有的 AKS 叢集上啟用受控識別,請參閱在 Azure Kubernetes Service (AKS) 中使用受控識別。 如需 Azure 中受控識別的詳細資訊,請參閱 Azure 資源的受控識別檔。

備註

系統指派和使用者指派的身分類型不同於 工作負載身分類型,後者是供在容器上執行的應用程式使用的。

AKS 受控識別授權流程

AKS 叢集會使用系統指派或使用者指派的受控識別,向 Microsoft Entra 要求權杖。 這些權杖有助於授權您存取在 Azure 上執行的其他資源。 您可以將 Azure 角色型存取控制 (Azure RBAC) 角色指派給受控識別,以授與特定 Azure 資源的許可權。 例如,您可以授與受控識別的權限,以存取 Azure 金鑰保存庫中的秘密,以供叢集使用。

AKS 中的受控識別行為

當您部署 AKS 叢集時,預設會為您建立系統指派的受控識別。 您也可以使用使用者指派的受控識別來建立叢集,或將現有的叢集更新為不同類型的受控識別。

如果您的叢集已使用受控識別,而且您變更身分識別類型 (例如,從系統指派為使用者指派),則控制平面元件切換至新身分識別時會發生延遲。 控制平面元件會繼續使用舊的身分識別,直到其權杖到期為止。 權杖重新整理後,它們會切換至新的身分識別。 此過程可能需要數小時。

備註

您也可以使用應用程式 服務主體 來建立叢集,而不是受控識別。 不過,建議您在應用程式服務主體上使用受控識別,以確保安全性和易用性。 如果您有使用應用程式服務主體的現有叢集,您可以將其更新為使用受控識別。

AKS 身分識別和認證管理

Azure 平臺會同時管理系統指派和使用者指派的受控識別及其認證,因此您可以授權應用程式的存取,而不需要佈建或輪替任何秘密。

系統指派的管理身份識別

下表摘要說明 AKS 中系統指派受控識別的主要特性:

創造 Lifecycle 跨資源共用 常見使用案例
作為 Azure 資源的一部分建立,例如 AKS 叢集 繫結至父資源的生命週期,因此在刪除父資源時會刪除它 只能與單一資源相關聯 • 單一 Azure 資源中包含的工作負載
• 需要獨立身分的工作負載

使用者指派的受管理的身分識別

下表摘要說明 AKS 中使用者指派的受控識別的主要特性:

創造 Lifecycle 跨資源共用 常見使用案例
建立為獨立 Azure 資源,且必須在建立叢集之前存在 與任何特定資源的生命週期無關,因此如果不再需要,則需要手動刪除 可跨多個資源共用 • 在多個資源上執行且可共用單一身分識別的工作負載
• 在佈建程序中需要對安全資源進行預授權的工作負載
經常回收資源且需要一致權限的工作負載

預先建立的 Kubelet 受控識別

預先建立的 kubelet 受控識別是選擇性的使用者指派身分識別,kubelet 可用來存取 Azure 中的其他資源。 此功能支援的案例包括在叢集建立期間連線至 Azure Container Registry(ACR)。 如果您未指定 kubelet 的使用者指派受控識別,AKS 會在節點資源群組中建立使用者指派的 kubelet 身分識別。 針對預設背景工作節點資源群組外部的使用者指派 kubelet 身分識別,您需要在 kubelet 身分識別上指派控制平面受控識別的受控識別操作員角色。

AKS 中受控識別的角色指派

您可以將 Azure RBAC 角色指派給受控識別,以授與另一個 Azure 資源的叢集權限。 Azure RBAC 支援內建和自訂角色定義,以指定權限層級。 若要指派角色,請參閱 指派 Azure 角色的步驟

當您將 Azure RBAC 角色指派給受控識別時,您必須定義角色的範圍。 一般而言,最佳做法是將角色的範圍限制為受控識別所需的最低許可權。 如需設定 Azure RBAC 角色範圍的詳細資訊,請參閱 了解 Azure RBAC 的範圍

控制平面受控識別角色指派

當您建立並使用自己的 VNet、連結的 Azure 磁碟、靜態 IP 位址、路由表或使用者指派的 kubelet 身分識別時,其中資源位於背景工作節點資源群組之外,Azure CLI 會自動新增角色指派。 如果您使用 ARM 範本或其他方法,請使用受控識別的主體識別碼來執行角色指派。

如果您未使用 Azure CLI,但使用自己的 VNet、連結的 Azure 磁碟、靜態 IP 位址、路由表,或背景工作節點資源群組外部的使用者指派的 kubelet 身分識別,建議您針對 控制平面使用使用者指派的受控識別

當控制平面使用系統指派的受控識別時,身分識別會與叢集同時建立,因此在建立叢集之前無法執行角色指派。

AKS 所使用的受控識別摘要

AKS 會針對內建服務和附加元件使用數個受控識別。 下表摘要說明 AKS 所使用的受控識別、其使用案例、預設許可權,以及您是否可以自備身分識別:

身份 名稱 用例 預設權限 帶上自己的身份
控制平面 AKS 叢集名稱 AKS 控制平面元件用來管理叢集資源,包括輸入負載平衡器和 AKS 受控公用 IP、叢集自動調整程式、Azure 磁碟、檔案、Blob CSI 驅動程式 節點資源群組的貢獻者角色 支援
庫貝萊特 AKS 叢集名稱-agentpool 使用 Azure Container Registry (ACR) 進行驗證 不適用於 Kubernetes 1.15 版及其後版本 支援
附加元件 AzureNPM 無需身份 N/A 不支援
附加元件 AzureCNI 網路監視 無需身份 N/A 不支援
附加元件 azure-policy (gatekeeper) 無需身份 N/A 不支援
附加元件 Calico 無需身份 N/A 不支援
附加元件 應用程式路由 管理 Azure DNS 和 Azure 金鑰保存庫憑證 Key Vault 秘密 Key Vault 的使用者角色、DNS 區域的 DNS 區域參與者角色、私人 DNS 區域的私人 DNS 區域參與者角色 不支援
附加元件 HTTP Application Routing 管理所需的網路資源 節點資源群組的讀取者角色、DNS 區域的參與者角色 不支援
附加元件 輸入應用程式閘道 管理所需的網路資源 節點資源群組的參與者角色 不支援
附加元件 歐姆斯代理 用來將 AKS 計量傳送至 Azure 監視器 監視計量發行者角色 不支援
附加元件 Virtual-Node (ACIConnector) 管理 Azure 容器執行個體 (ACI) 所需的網路資源 節點資源群組的參與者角色 不支援
附加元件 成本分析 用於收集成本分配資料 N/A 支援
工作負載身分識別 Microsoft Entra 工作負載 ID 讓應用程式能夠使用 Microsoft Entra 工作負載識別碼安全地存取雲端資源 N/A 不支援

下一個步驟:在 AKS 中啟用受控識別

若要瞭解如何在新的或現有的 AKS 叢集上啟用受控識別,請參閱在 Azure Kubernetes Service (AKS) 中使用受控識別