Azure Kubernetes Service (AKS) 中的受管理身份概述

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

如需 Azure 中受控識別的詳細資訊,請參閱 Azure 資源的受控識別檔。

備註

管理身份涵蓋了 AKS 中叢集 到 Azure 身份的情境——AKS 叢集如何在 Azure 上代表你管理資源。 關於其他身份情境(控制平面認證與授權,以及 Pod 到 Azure 工作負載身份),請參見 AKS 的存取與身份選項。

備註

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

AKS 受控識別授權流程

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

AKS 中的受控識別行為

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

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

備註

你也可以建立一個包含應用程式 服務主體 的叢集,而非管理身份。 不過,為了安全性與易用性,應使用受管理身份而非應用程式服務主體。 如果您有使用應用程式服務主體的現有叢集,您可以將其更新為使用受控識別。

AKS 身分識別和認證管理

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

系統指派的管理身份識別

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

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

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

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

它是如何被創造的 生命週期行為 資源共用 AKS 的常見使用案例
建立為獨立 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 身份,而這些資源位於工作節點資源群組之外,我們建議使用使用者指派的管理身份作為控制平面,並手動使用該身份的主 ID 來分配所需的角色。

當控制平面使用系統指派的管理身份時,你會和叢集同時建立該身份,因此在叢集建立之前無法執行角色指派。 建立叢集後,取得該身分識別的主體識別碼,並 新增必要的角色指派。

AKS 所使用的受控識別摘要

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

身份 名稱 用例 預設權限 帶上自己的身份
控制平面 AKS 叢集名稱 AKS 控制平面元件用來管理叢集資源,包括輸入負載平衡器和 AKS 受控公用 IP、叢集自動調整程式、Azure 磁碟、檔案、Blob CSI 驅動程式 節點資源群組的參與者角色 支援
庫貝萊特 AKS 叢集名稱-agentpool 使用 Azure Container Registry (ACR) 進行驗證 無;須具備基於登錄權限模式的 ACR 提取角色 支援
附加元件 AzureNPM 無需身份 N/A 不支援
附加元件 AzureCNI 網路監視 無需身份 N/A 不支援
附加元件 azure-policy (gatekeeper) 無需身份 N/A 不支援
附加元件 Calico 無需身份 N/A 不支援
附加元件 應用路由(NGINX) 管理 Azure DNS 和 Azure 金鑰保存庫憑證 金鑰保存庫 的 金鑰保存庫 憑證使用者角色,以及 DNS 區域的 DNS 區域參與者角色 不支援
附加元件 ingressapplicationgateway-AKS 叢集名稱 管理應用閘道入口控制器(AGIC)所需的網路資源 視部署拓撲而定 不支援
附加元件 容器深入解析 收集容器日誌和庫存資料,並傳送到 Log Analytics 工作區 使用叢集受控識別;不需具備監視計量發佈者角色 使用叢集識別
附加元件 Virtual-Node (ACIConnector) 管理 Azure 容器執行個體 (ACI) 所需的網路資源 節點資源群組的參與者角色 不支援
附加元件 成本-分析-身分識別 收集用於成本配置的 Azure Resource Manager 識別碼 對於節點資源群組的讀取權限 不支援
工作負載身分識別 使用者設定的 Microsoft Entra 身份 讓應用程式能夠使用 Microsoft Entra 工作負載識別碼安全地存取雲端資源 取決於工作負載存取的資源 Required

備註

kubelet 身分識別需要 ACR 提取角色。 對於採用 RBAC 登錄權限模式的登錄,請使用AcrPull角色。 對於採用 RBAC 登錄 + ABAC 儲存庫權限模式的登錄,請使用Container Registry Repository Reader角色。 只有在該身分需要列出存放區時,才新增 Container Registry Repository Catalog Lister 角色。 更多資訊請參閱 AKS 節點映射身份。

應用程式路由列描述了基於 NGINX 的體驗。 Microsoft 支援應用程式路由附加 NGINX Ingress 資源的關鍵安全修補程式,持續至 2026 年 11 月。 請於 2026 年 11 月前遷移至 Application Routing Gateway API 或其他支援的實作。 The Gateway API DNS 與 TLS 整合會使用 Microsoft Entra 工作負載身分識別,而非附加元件的受控身分識別。 對於閘道 API,建立一個使用者指派的管理身份,授予其必要的 Azure DNS 和 Azure Key Vault 角色,並為 Kubernetes 服務帳號建立聯邦身份憑證。

AGIC 權限取決於你如何部署 Application Gateway。 當外掛建立新的應用程式閘道時,通常會自動分配所需的權限。 若您需要手動指派權限,請在應用程式閘道子網路上授與附加元件身分識別網路參與者權限。 對於與 AKS 叢集位在不同資源群組中的現有應用程式閘道,請在應用程式閘道資源群組上授與附加元件身分識別網路參與者及讀取器權限。 如需詳細資訊,請參閱 啟用具有新應用程式閘道的 AGIC 以及 啟用具有現有應用程式閘道的 AGIC。

Container Insights 預設採用受管理身份驗證,並利用叢集管理身份將資料傳送到 Azure 監視器。 須監控指標發行者角色的舊版驗證,將於 2026 年 9 月 30 日淘汰。 Container Insights 會在 Log Analytics 工作區中收集記錄和庫存資料;Azure 監視器 managed service for Prometheus 則會另外在 Azure 監視器 工作區中收集 Prometheus 指標。 欲了解更多資訊,請參閱 容器洞察認證。

AKS 會建立具有節點資源群組讀取權限的 cost-analysis-identity,並在您啟用成本分析時將其指派給叢集的節點集區。 你無法為附加元件提供不同的身份。 欲了解更多資訊,請參閱 啟用 AKS 成本分析。

Microsoft Entra 工作負載 ID 是 Pod 對 Azure 的身分識別模型,而非叢集或附加元件的受控身分識別。 你要設定每個工作負載使用的 Microsoft Entra 身份,並用該身份的客戶端 ID 標註 Kubernetes 服務帳號,並建立聯邦身份憑證。 欲了解更多資訊,請參閱部署與配置 Microsoft Entra 工作負載 ID。

下一個步驟

請依照以下指南,在新建或現有的 AKS 叢集上啟用您想要的管理身份類型: