協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 EKS 自動模式中的身分和存取
本主題描述使用 EKS 自動模式所需的 Identity and Access Management (IAM) 角色與許可。EKS 自動模式使用兩個主要 IAM 角色:叢集 IAM 角色和節點 IAM 角色。這些角色與 EKS Pod 身分識別和 EKS 存取項目協同工作,為您的 EKS 叢集提供全面的存取管理。
當您設定 EKS Auto Mode 時,您將需要設定這些具有特定許可的 IAM 角色,以允許 AWS 服務與您的叢集資源互動。這包括用於管理運算資源、儲存磁碟區、負載平衡器和聯網元件的許可。了解這些角色組態對於正確的叢集操作與安全性至關重要。
在 EKS Auto 模式中, AWS IAM 角色會透過 EKS 存取項目自動映射至 Kubernetes 許可,無需手動設定 aws-auth ConfigMaps 或自訂繫結。當您建立新的自動模式叢集時,EKS 會使用存取項目自動建立對應的 Kubernetes 許可,確保 AWS 服務和叢集元件在 AWS 和 Kubernetes 授權系統中都具有適當的存取層級。這種自動化整合降低了設定複雜性,並有助於預防管理 EKS 叢集時常見的許可相關問題。
叢集 IAM 角色
叢集 IAM 角色是 Amazon EKS 用來管理 Kubernetes 叢集許可的 AWS Identity and Access Management (IAM) 角色。此角色會授予 Amazon EKS 必要的許可,以代表您叢集與其他 AWS 服務互動,並使用 EKS 存取項目自動設定 Kubernetes 許可。
-
您必須將 AWS IAM 政策連接至此角色。
-
EKS 自動模式會使用 EKS 存取項目自動將 Kubernetes 許可附加到此角色。
-
使用 EKS Auto 模式時, AWS 建議為每個 AWS 帳戶建立單一叢集 IAM 角色。
-
AWS 建議將此角色命名為
AmazonEKSAutoClusterRole。 -
此角色需要多個 AWS 服務的許可,才能管理 資源,包括 EBS 磁碟區、Elastic Load Balancer 和 EC2 執行個體。
-
此角色的建議組態包含多個 AWS 受管 IAM 政策,與 EKS Auto Mode 的不同功能相關。
-
AmazonEKSComputePolicy -
AmazonEKSBlockStoragePolicy -
AmazonEKSLoadBalancingPolicy -
AmazonEKSNetworkingPolicy -
AmazonEKSClusterPolicy
-
如需叢集 IAM 角色和 AWS 受管 IAM 政策的詳細資訊,請參閱:
如需有關 Kubernetes 存取的詳細資訊,請參閱:
節點 IAM 角色
節點 IAM 角色是 Amazon EKS 用來管理 Kubernetes 叢集中工作者節點許可的 AWS Identity and Access Management (IAM) 角色。此角色會授予以 Kubernetes 節點身分執行的 EC2 執行個體與 AWS 服務和資源互動的必要許可,並使用 EKS 存取項目自動設定 Kubernetes RBAC 許可。
-
您必須將 AWS IAM 政策連接至此角色。
-
EKS 自動模式會使用 EKS 存取項目自動將 Kubernetes RBAC 許可附加到此角色。
-
AWS 建議將此角色命名為
AmazonEKSAutoNodeRole。 -
使用 EKS Auto Mode, AWS 建議為每個 AWS 帳戶建立單一節點 IAM 角色。
-
此角色具有有限的許可。關鍵許可包括擔任 Pod 身分識別角色,以及從 ECR 提取映像。
-
AWS 建議下列 AWS 受管 IAM 政策:
-
AmazonEKSWorkerNodeMinimalPolicy -
AmazonEC2ContainerRegistryPullOnly
-
如需叢集 IAM 角色和 AWS 受管 IAM 政策的詳細資訊,請參閱:
如需有關 Kubernetes 存取的詳細資訊,請參閱:
服務連結角色
Amazon EKS 針對某些操作使用服務連結角色 (SLR)。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。服務連結角色由 Amazon EKS 預先定義,並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。
AWS 會自動建立和設定 SLR。您必須先刪除 SLR 的相關資源,才能刪除角色。如此可保護您的 Amazon EKS 資源,避免您不小心移除資源的存取許可。
SLR 政策授予 Amazon EKS 觀察和刪除核心基礎結構元件的許可:EC2 資源 (執行個體、網路介面、安全群組)、ELB 資源 (負載平衡器、目標群組)、CloudWatch 功能 (記錄和指標),以及具有「eks」字首的 IAM 角色。它還透過 VPC/託管區域關聯啟用私有端點聯網,並包含用於 EventBridge 監控和清理帶有 EKS 標籤之資源的許可。
如需詳細資訊,請參閱:
EKS Auto 資源的自訂 AWS 標籤
根據預設,與 EKS Auto Mode 相關的受管政策不允許將使用者定義的標籤套用至 Auto Mode 佈建 AWS 資源。如果您想要將使用者定義的標籤套用至 AWS 資源,您必須將其他許可連接到叢集 IAM 角色,並具有足夠的許可來建立和修改 AWS 資源上的標籤。以下是允許無限制標籤存取的政策範例:
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Compute", "Effect": "Allow", "Action": [ "ec2:CreateFleet", "ec2:RunInstances", "ec2:CreateLaunchTemplate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" }, "StringLike": { "aws:RequestTag/eks:kubernetes-node-class-name": "*", "aws:RequestTag/eks:kubernetes-node-pool-name": "*" } } }, { "Sid": "Storage", "Effect": "Allow", "Action": [ "ec2:CreateVolume", "ec2:CreateSnapshot" ], "Resource": [ "arn:aws:ec2:*:*:volume/*", "arn:aws:ec2:*:*:snapshot/*" ], "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "Networking", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" }, "StringLike": { "aws:RequestTag/eks:kubernetes-cni-node-name": "*" } } }, { "Sid": "LoadBalancer", "Effect": "Allow", "Action": [ "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateRule", "ec2:CreateSecurityGroup" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "ShieldProtection", "Effect": "Allow", "Action": [ "shield:CreateProtection" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "ShieldTagResource", "Effect": "Allow", "Action": [ "shield:TagResource" ], "Resource": "arn:aws:shield::*:protection/*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } } ] }
存取政策參考
如需 EKS 自動模式使用的 Kubernetes 許可的詳細資訊,請參閱 檢閱存取政策許可。