AKS 的身分識別和存取管理考慮

本文提供使用 Azure Kubernetes Service (AKS) 時身分識別和存取管理的設計考慮和建議。 身分識別和存取管理有多個層面,包括叢集身分識別、工作負載身分識別和操作員存取。

設計考量

  • 決定要使用的叢集身分識別( 受控識別 或服務 主體 )。
  • 決定如何驗證叢集存取:根據用戶端憑證或透過 Microsoft Entra ID
  • 決定 多租使用者叢集 ,以及如何在 Kubernetes 中設定角色型存取控制 (RBAC)。
    • 選擇隔離的方法。 方法包括命名空間、 網路原則 (僅限 Azure CNI 允許 )、計算(節點集區)和叢集。
    • 判斷每個應用程式小組的 Kubernetes RBAC 角色和計算配置,以進行隔離。
    • 決定應用程式小組是否可以讀取其叢集或其他叢集中的其他工作負載。
  • 判斷 AKS 登陸區域的 自訂 Azure RBAC 角色 許可權。
    • 決定網站可靠性工程 (SRE) 角色需要哪些許可權,讓該角色能夠管理及疑難排解整個叢集。
    • 決定 SecOps 所需的許可權。
    • 決定登陸區域擁有者所需的許可權。
    • 決定應用程式小組部署至叢集所需的許可權。
  • 決定是否需要工作負載身分識別( Microsoft Entra 工作負載 ID )。 您可能需要這些服務,例如 Azure 金鑰保存庫 整合和 Azure Cosmos DB。

設計建議

  • 叢集身分識別。
    • 針對 AKS 叢集使用您自己的 受控識別
    • 定義 AKS 登陸區域的自訂 Azure RBAC 角色,以簡化叢集受控識別所需許可權的管理。
  • 叢集存取。
    • 使用 Kubernetes RBAC 搭配 Microsoft Entra ID 來 限制許可權 ,並將系統管理員許可權降到最低。 這樣做有助於保護設定和秘密存取。
    • 使用 AKS 管理的 Microsoft Entra 整合 ,讓您可以使用 Microsoft Entra 識別碼進行驗證和操作員和開發人員存取。
  • 在 Kubernetes 中定義必要的 RBAC 角色和角色系結。
    • 使用 Kubernetes 角色和角色系結 至 Microsoft Entra 群組,以進行網站可靠性工程 (SRE)、SecOps 和開發人員存取。
    • 請考慮使用 適用于 Kubernetes 的 Azure RBAC,以跨 Azure 資源、AKS 和 Kubernetes 資源進行統一管理和存取控制。 啟用適用于 Kubernetes 的 Azure RBAC 時,您不需要個別管理 Kubernetes 的使用者身分識別和認證。 Microsoft Entra 主體將由 Azure RBAC 獨佔驗證,但 Kubernetes RBAC 會獨佔驗證一般 Kubernetes 使用者和服務帳戶。
  • 視需要授與 SRE 完整存取權。
  • 針對 Kubernetes 使用 Microsoft Entra 工作負載 ID。 當您實作此同盟時,開發人員可以使用原生 Kubernetes 服務帳戶和同盟來存取由 Microsoft Entra ID 管理的資源,例如 Azure 和 Microsoft Graph。