Azure Kubernetes Service (AKS) 中的叢集認證概念

本文說明 Azure Kubernetes Service(AKS)如何驗證 Kubernetes API 的呼叫者——也就是誰能連接到控制平面。 它涵蓋基於 Microsoft Entra ID 的建議驗證路徑,以及如何鎖定緊急存取。

關於 AKS 如何評估已認證呼叫者 被允許做什麼,請參見 叢集授權概念

關於AKS中其他身份情境,請參見:

關於四種 AKS 身份情境的定位,請參見 AKS 的存取與身份選項

對 Kubernetes API 伺服器(控制平面)進行認證

Kubernetes 本身並沒有提供身份目錄。 沒有外部身份提供者,你就得每個叢集管理本地憑證,這無法擴展,還會造成稽核缺口。

我們建議在 控制平面部署具備 Microsoft Entra ID 認證的 AKS 叢集。 透過此整合,叢集會根據 Microsoft Entra ID 驗證收到的 Kubernetes API 請求,並利用呼叫者的 Entra 身份來做授權決策。 Microsoft Entra ID 集中管理身份層——任何使用者或群組狀態的變更都會自動反映在叢集存取中——並啟用條件存取、多重身份驗證及特權身份管理。

這張圖顯示 Microsoft Entra 與 AKS 叢集的整合以進行認證。

關於設定,請參見 為 AKS 控制平面啟用 Microsoft Entra ID 驗證。 請注意下列事項:

  • 為叢集認證所設定的 Microsoft Entra 租戶必須與持有 AKS 叢集的訂閱租戶相同。
  • 對於非互動式登入或舊 kubectl 版本,請使用該 kubelogin 外掛。

外部身分識別提供者 (預覽版)

有些組織需要用非 Microsoft Entra ID 的 OIDC 合規身份提供者來認證叢集使用者,例如 GitHub、Google Workspace、Okta 或自架 IdP。 AKS 透過結構化認證支援此功能,該認證會配置 Kubernetes API 伺服器的 JWT 驗證器,以驗證外部提供者所發出的憑證。

只有在你有硬性要求必須將叢集身份保留在 Microsoft Entra ID 之外時,才使用這個選項。 否則,建議選擇 Microsoft Entra ID 路徑,能更豐富地整合條件存取、多重驗證及特權身份管理。

欲了解概述,請參閱 AKS 叢集的外部身份提供者認證。 關於設定,請參見 「配置外部身份提供者與 AKS 結構化認證」。

停用本機帳戶

本地帳號使用內建的叢集管理員憑證,繞過 Microsoft Entra ID。 任何能列出此憑證的來電者,皆可獲得完整的叢集管理員權限,無需經過 Entra ID,這會破壞集中式稽核、條件存取和特權身份管理。 在生產環境中,關閉本地帳號,讓所有存取都透過 Microsoft Entra ID 流動。

為了在多個叢集中大規模強制執行此策略,請在訂閱或管理群組範圍內指派內建的 Azure Policy《Azure Kubernetes 服務叢集應停用本地認證方法》。 該原則會稽核或拒絕在啟用本機帳戶的情況下建立或更新的叢集。 欲了解完整的 AKS 相關內建政策清單,請參閱 Azure Policy 內建的 AKS 定義

詳情請參見 AKS 管理本地帳戶

對叢集節點進行驗證

SSH 存取模式

除了驗證 Kubernetes API 之外,你可能還需要透過 SSH 直接認證節點以進行故障排除。 AKS 支援三種 SSH 存取模式,可依叢集或節點池設定:

  • 停用 SSH(預覽):完全封鎖節點的 SSH 存取。 建議用於正式環境,其中節點層級的存取僅透過kubectl debug或其他 Kubernetes 原生路徑來控管。
  • 基於 Microsoft Entra ID 的 SSH(預覽版):使用 Microsoft Entra 身份登入節點,無需管理 SSH 金鑰。 此模式與叢集認證的其他部分一致:它繼承了 Entra ID 的條件存取與多重驗證,支援透過 Azure RBAC 與特權身份管理(Privileged Identity Management)即時提升,並透過 Entra ID 登入日誌集中審核。
  • 本地使用者 SSH:傳統的 SSH 金鑰存取。 只有在無法使用 Entra ID 的 SSH 時才使用這個方法,並且定期更換按鍵。

關於設定及各模式設定步驟,請參見 「管理 AKS 叢集節點的 SSH 存取」。

下一步