設定檔適用性:等級 1
Amazon EKS 已引入叢集存取管理器 API,以簡化並增強 EKS 叢集內存取控制的管理。這種新方法現在是管理基於角色的存取控制(RBAC)和服務帳戶的推薦方法,取代傳統的
aws-auth ConfigMap。使用叢集存取管理 API 的主要優勢:
-
Simplified Access Management:叢集存取管理 API 允許管理員直接透過 Amazon EKS API 管理存取,無需手動修改 aws-auth ConfigMap。這樣可以減少操作負擔並降低配置錯誤的風險。
-
Enhanced Security Controls:透過此 API,管理員可以將預定義的 AWS 管理 Kubernetes 權限(稱為「存取政策」)指派給 IAM 主體。這比手動編輯 ConfigMap 提供了一種更安全且可審核的權限管理方式。
-
Improved Visibility and Auditing:該 API 提供更佳的叢集存取配置可見性,便於進行稽核和合規檢查。管理員可以直接透過 EKS API 列出和描述存取條目和政策。
注意在建立 EKS 叢集時,
EKS API 預設會被選擇,但可以在初始配置時進行更改 |
使用 Cluster Access Manager API 而非傳統的 aws-auth ConfigMap 在 Amazon EKS 中的引人注目的理由包括安全性、可擴展性、操作效率以及簡化管理。
提升安全性與降低風險
-
Direct Management via API:叢集存取管理 API 使您能夠直接透過 EKS API 管理 RBAC 和 IAM 權限,而不是編輯 ConfigMap。這樣可以消除手動修改
aws-authConfigMap 時不慎出錯的風險。 -
Immutable Access Entries:API 確保一旦定義了存取條目後,便會嚴格控制,從而降低在編輯 YAML 檔案時可能發生的意外覆寫或錯誤配置的風險。
-
Fine-Grained Access Control:透過利用新的 API,您可以在比以前方法更細緻的層級上定義存取政策。這確保僅授予必要的權限,從而減少攻擊面。
運營效率和可擴展性
-
Scalability:隨著使用者和服務數量的增加,透過 aws-auth ConfigMap 管理存取控制變得愈加困難。新的 API 透過標準 AWS Identity and Access Management (IAM) 工具進行存取管理,具有更好的擴展性。
-
Reduced Operational Overhead:此 API 簡化了存取控制的管理,無需手動更新 ConfigMap,降低人為錯誤的風險,並透過像是 Terraform 或 CloudFormation 這類基礎設施即程式碼(IaC)工具自動化存取配置。
提升可見性、稽核與合規性
-
Auditable and Traceable Changes:叢集存取管理 API 與 AWS CloudTrail 整合,讓您能夠追蹤誰對存取配置進行了更改。這種可見性對於需要遵循 SOC 2、GDPR 或 HIPAA 等合規框架的組織至關重要。
-
Centralized Management:與在 Kubernetes 層級管理的
aws-authConfigMap 不同,新的 API 利用 AWS IAM 的集中管理和審計功能,提供您 AWS 環境中存取控制的統一視圖。
更快速且安全的存取配置
-
No More Cluster Downtime:aws-auth ConfigMap 中的錯誤可能會意外鎖定用戶或管理員無法進入叢集,並需要複雜的恢復過程。基於 API 的方法更具彈性,降低了錯誤配置導致停機的風險。
-
Immediate Effect:透過 API 所做的變更會立即生效,而更新 aws-auth ConfigMap 可能需要延遲,甚至在某些情況下需要重新啟動元件。
未來趨勢與AWS最佳實踐的一致性
-
Native Support in Kubernetes Versions:從 Kubernetes 1.23 開始,Cluster Access Manager API 已完全支援,並設計用來取代 aws-auth ConfigMap 方法。這與 AWS 的路線圖和 EKS 的最佳實踐保持一致,確保您的基礎設施與未來的更新保持相容。
-
Modern Approach for Pod Identity:當與服務帳戶的 IAM 角色(IRSA)或新的 Pod 身份功能結合使用時,API 支援一種更動態且安全的模型來分配權限給 pods,使實施最小權限訪問變得更容易。
影響
使用 Cluster Access Manager API 取代
aws-auth ConfigMap 會影響 EKS RBAC 和服務帳戶,透過簡化存取控制管理、降低錯誤配置風險並增強安全性。它允許更細緻、直接地管理 IAM 權限和 Kubernetes
角色,消除手動編輯 ConfigMap 並減少操作負擔。對於服務帳戶,它更好地與現有機制如 IAM Roles for Service Accounts (IRSA)
整合,以便安全地讓 pod 存取 AWS 資源,並更容易執行最小權限原則。此轉換改善了可擴展性、審核和合規性,同時提供符合 AWS Kubernetes 身份管理路線圖的未來解決方案。稽核
要檢查 Cluster Access Manager API 是否在您的 Amazon EKS 叢集中啟用,您可以使用以下 AWS CLI 命令:
aws eks describe-cluster --name $CLUSTER_NAME --query "cluster.accessConfig" --output json
將 $CLUSTER_NAME 替換為您 EKS 叢集的名稱。
該命令查詢
cluster.accessConfig屬性,該屬性指示叢集的驗證模式。可能的輸出:
如果輸出顯示
"authenticationmode": "API" 或 "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,且在叢集配置完成後無法更改。
|
