View a markdown version of this page

將其他 Kubernetes RBAC 授予 EKS Auto Mode 受管控制器 - Amazon EKS

協助改進此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將其他 Kubernetes RBAC 授予 EKS Auto Mode 受管控制器

Amazon EKS Auto Mode 會代表您管理下列控制器:負載平衡、聯網、運算、區塊儲存和叢集洞察。這些控制器會在 EKS 控制平面上執行。它們會驗證叢集做為AWSServiceRoleForAmazonEKS服務連結角色,其叢集內許可來自連接到該存取項目的 AWS 受管存取政策。

您可以自行擴充受管控制器的 Kubernetes RBAC。當受管政策尚未授予必要的許可時,這會很有用,例如在特定 getSecret

在 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 (全叢集)。

  • resourcesresourceNames和 限制verbs為解除封鎖使用案例的最小集合。例如,get在名為 的單一 上授予 Secret,而不是在所有Secret物件list, watch上授予 。

  • 刪除不再需要的 RoleRoleBinding

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 的存取權