協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將其他 Kubernetes RBAC 授予 EKS Auto Mode 受管控制器
Amazon EKS Auto Mode 會代表您管理下列控制器:負載平衡、聯網、運算、區塊儲存和叢集洞察。這些控制器會在 EKS 控制平面上執行。它們會驗證叢集做為AWSServiceRoleForAmazonEKS服務連結角色,其叢集內許可來自連接到該存取項目的 AWS 受管存取政策。
您可以自行擴充受管控制器的 Kubernetes RBAC。當受管政策尚未授予必要的許可時,這會很有用,例如在特定 get上Secret。
在 Amazon EKS Auto Mode 叢集上, 的自動建立存取項目AWSServiceRoleForAmazonEKS也會宣告 Kubernetes 群組 eks:managed。Kubernetes RBAC 是附加項目。RoleBinding (或 ClusterRoleBinding),其subjects:名稱為 eks:managed群組在受管存取政策之上授予受管控制器額外許可。
運作方式
-
EKS Auto Mode 受管控制器會以服務連結角色 的形式連接至您的叢集
AWSServiceRoleForAmazonEKS。 -
該角色的自動建立存取項目宣告
kubernetesGroups: ["eks:managed"]。 -
您撰寫描述其他許可的
Role(命名空間) 或ClusterRole(全叢集),以及eks:managed群組ClusterRoleBindingsubjects:名稱的RoleBinding/。 -
Kubernetes RBAC 結合了您的繫結與受管存取政策,因此受管控制器會收到兩組許可。
若要確認群組存在,請執行:
CLUSTER=<your-cluster> REGION=<your-region> ACCT=$(aws sts get-caller-identity --query Account --output text) aws eks describe-access-entry \ --cluster-name "$CLUSTER" --region "$REGION" \ --principal-arn "arn:aws:iam::${ACCT}:role/aws-service-role/eks.amazonaws.com/AWSServiceRoleForAmazonEKS" \ --query 'accessEntry.kubernetesGroups'
預期的輸出結果:
[ "eks:managed" ]
嚴格限制授予的範圍
eks:managed 群組會套用至所有 EKS Auto Mode 受管控制器。根據您的使用案例允許的範圍縮小額外授予的範圍,因此您只公開受管控制器所需的內容:
-
偏好
Role+RoleBinding(命名空間) 而不是ClusterRole+ClusterRoleBinding(全叢集)。 -
將
resources、resourceNames和 限制verbs為解除封鎖使用案例的最小集合。例如,get在名為 的單一 上授予Secret,而不是在所有Secret物件list, watch上授予 。 -
刪除不再需要的
Role和RoleBinding。
Amazon EKS 自動模式的考量事項
-
此機制只會擴展 EKS Auto Mode 受管控制器的 Kubernetes RBAC。它不會變更受管存取政策授予的 AWS IAM 許可。
-
eks:managed群組存在於服務連結角色為 的 EKS Auto Mode 叢集上AWSServiceRoleForAmazonEKS。 -
與 的繫結
eks:managed適用於每個 EKS Auto Mode 受管控制器。若要保持實際的爆量半徑較小,請使用resourceNames和命名空間Role物件。這只會公開您命名的資源,而且只會透過您授予的動詞。 -
這是橋接模式,適用於受管存取政策尚未涵蓋您所需許可的情況。如果 AWS 受管政策已涵蓋 許可,請改用 受管政策。
範例
如需在名為 OIDC get上授予 EKS Auto Mode 負載平衡器控制器step-by-step演練Secret,請取消封鎖 ALB 上的alb.ingress.kubernetes.io/auth-type: oidc註釋Ingress,請參閱 授予 EKS Auto Mode 負載平衡器控制器對特定 Secret 的存取權。