檢視次數:
設定檔適用性:等級 1
Amazon EKS 已引入叢集存取管理器 API,以簡化並增強 EKS 叢集內存取控制的管理。這種新方法現在被推薦用於管理基於角色的存取控制 (RBAC) 和服務帳戶,取代傳統的 aws-auth ConfigMap。
使用叢集存取管理器 API 的主要優勢:
  • 簡化的存取管理:Cluster Access Manager API 允許管理員直接透過 Amazon EKS API 管理存取,無需手動修改 aws-auth ConfigMap。這樣可以減少操作負擔並降低配置錯誤的風險。
  • 增強的安全控制:使用此 API,管理員可以將預定義的 AWS 管理 Kubernetes 權限(稱為「存取政策」)指派給 IAM 主體。這比手動編輯 ConfigMap 提供了一種更安全且可審核的權限管理方式。
  • 提升可見性和審核:API提供更佳的叢集存取配置可見性,便於進行審核和合規檢查。管理員可以直接透過EKS API列出和描述存取條目及政策。
注意
注意
在建立 EKS 叢集時,預設會選擇 EKS API,但可以在初始配置時更改
使用叢集存取管理器 API 取代 Amazon EKS 中傳統的 aws-auth ConfigMap 的令人信服的理由在於安全性、可擴展性、操作效率和簡化管理。
提升安全性與降低風險
  • 通過 API 直接管理:Cluster Access Manager API 使您能夠直接通過 EKS API 管理 RBAC 和 IAM 權限,而不是編輯 ConfigMap。這樣可以消除在手動修改 aws-auth ConfigMap 時發生意外錯誤的風險。
  • 不可變的存取項目:API確保一旦定義了存取項目,它們將受到嚴格控制,減少在編輯 YAML 文件時可能發生的意外覆寫或錯誤配置的風險。
  • 細粒度存取控制:透過利用新的 API,您可以在比以往方法更細緻的層級上定義存取政策。這確保僅授予必要的權限,從而將攻擊面降至最低。
運營效率和可擴展性
  • 可擴展性:隨著使用者和服務數量的增加,透過 aws-auth ConfigMap 管理存取控制變得愈加困難。新的 API 透過標準 AWS Identity and Access Management (IAM) 工具進行存取管理,具有更好的擴展性。
  • 降低運營負擔:API透過移除手動更新ConfigMap的需求,簡化了存取控制的管理,降低人為錯誤的風險,並透過像Terraform或CloudFormation這樣的基礎設施即代碼(IaC)工具自動化存取配置。
提升可見性、審核和合規性
  • 可審核及可追蹤的變更:Cluster Access Manager API 與 AWS CloudTrail 整合,讓您能追蹤誰對存取配置進行了變更。這種可見性對於需要遵循 SOC 2、GDPR 或 HIPAA 等合規框架的組織至關重要。
  • 集中管理:與在 Kubernetes 層級管理的 aws-auth ConfigMap 不同,新的 API 利用 AWS IAM 的集中管理和審核功能,提供您 AWS 環境中存取控制的統一視圖。
更快速且更安全的存取配置
  • 不再有叢集停機:在 aws-auth ConfigMap 中的錯誤可能會意外鎖定使用者或管理員,使其無法進入叢集,並需要複雜的恢復過程。基於 API 的方法更具韌性,降低了錯誤配置導致停機的風險。
  • 立即生效:透過 API 所做的變更會立即生效,而對 aws-auth ConfigMap 的更新可能需要延遲,甚至在某些情況下需要重新啟動元件。
未來防護及符合 AWS 最佳實踐
  • Kubernetes 版本中的原生技術支援:從 Kubernetes 1.23 開始,Cluster Access Manager API 已獲得完整支援,並設計用來取代 aws-auth ConfigMap 方法。這與 AWS 的路線圖和 EKS 的最佳實踐保持一致,確保您的基礎設施與未來的更新保持相容。
  • 現代化的 Pod 身分識別方法:結合服務帳戶的 IAM 角色 (IRSA) 或新的 Pod 身分識別功能時,API 支援更具動態性和安全性的模型來分配 Pod 的權限,使實施最小權限訪問更為容易。

影響

使用 Cluster Access Manager API 取代 aws-auth ConfigMap 影響 EKS RBAC 和服務帳戶,透過簡化存取控制管理、降低錯誤配置風險及增強安全性。它允許更細緻、直接地管理 IAM 權限和 Kubernetes 角色,消除手動編輯 ConfigMap 並減少操作負擔。對於服務帳戶,它更好地與現有機制如 IAM Roles for Service Accounts (IRSA) 整合,以確保 pod 安全存取 AWS 資源,並更容易執行最小權限原則。此轉換改善了可擴展性、審計和合規性,同時提供符合 AWS Kubernetes 身份管理路線圖的未來解決方案。

稽核

要檢查您的 Amazon EKS 叢集上的 Cluster Access Manager API 是否處於活動狀態,您可以使用以下 AWS CLI 命令:
aws eks describe-cluster --name $CLUSTER_NAME --query 
"cluster.accessConfig" --output json 
將 $CLUSTER_NAME 替換為您 EKS 叢集的名稱。該命令查詢 cluster.accessConfig 屬性,該屬性指示叢集的驗證模式。
可能的輸出:
如果輸出顯示"authenticationmode": "API" or "authenticationmode": "API_AND_CONFIG_MAP",則表示已啟動叢集存取管理 API。如果僅顯示"authenticationmode": "CONFIG_MAP",則表示叢集仍在使用傳統的aws-auth ConfigMap方法。

補救

登入 AWS 管理控制台。導航至 Amazon EKS 並選擇您的 EKS 叢集。前往「存取」標籤頁,然後在「存取配置」部分中點擊「管理存取」。在叢集存取設定中選擇叢集驗證模式。
  • 點擊 EKS API 以更改叢集將僅從 EKS 存取入口 API 來源驗證的 IAM 主體。
  • 點擊 ConfigMap 以更改叢集將僅從 aws-auth ConfigMap 來源驗證的 IAM 主體。
注意
注意
在建立叢集時,必須選擇 EKS API 和 ConfigMap,且在叢集佈建後無法更改。