帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
Amazon EKS 集群 IAM 角色
对于每个集群,均需要 Amazon EKS 集群 IAM 角色。由 Amazon EKS 管理的 Kubernetes 集群使用此角色来管理节点,而传统 Cloud Provider
必须先使用以下任一 IAM policy 创建 IAM 角色,然后才能创建 Amazon EKS 集群:
-
自定义 IAM policy。随后的最低权限允许 Kubernetes 集群管理节点,但不允许传统 Cloud Provider
创建带有 Elastic Load Balancing 的负载均衡器。您的自定义 IAM policy必须至少具有以下权限: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "ForAnyValue:StringLike": { "aws:TagKeys": "kubernetes.io/cluster/*" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeAvailabilityZones", "kms:DescribeKey" ], "Resource": "*" } ] }
注意
在 2023 年 10 月 3 日之前,每个集群的 IAM 角色都必须有 AmazonEKSClusterPolicy。
在 2020 年 4 月 16 日之前,AmazonEKSServicePolicy 和 AmazonEKSClusterPolicy 是必需的,建议的角色名称是 eksServiceRole
。有了 AWSServiceRoleForAmazonEKS
服务相关角色后,在 2020 年 4 月 16 日或之后创建的集群将不再需要 AmazonEKSServicePolicy 策略。
检查现有集群角色
可使用以下程序检查并确定您的账户是否已有 Amazon EKS 集群角色。
在 IAM 控制台中检查 eksClusterRole
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在左侧导航窗格中,选择 Roles(角色)。
-
在角色列表中搜索
eksClusterRole
。如果不存在包含eksClusterRole
的角色,请参阅 创建 Amazon EKS 集群角色 来创建角色。如果包含eksClusterRole
的角色确实存在,则选择角色以查看附加的策略。 -
选择权限。
-
确保将 AmazonEKSClusterPolicy 托管策略附加到此角色。如果附加该策略,则将正确配置 Amazon EKS 集群角色。
-
选择 Trust relationships(信任关系),然后选择 Edit trust policy(编辑信任策略)。
-
验证信任关系是否包含以下策略。如果信任关系符合以下策略,请选择 Cancel(取消)。如果信任关系不匹配,请将策略复制到 Edit trust policy(编辑信任策略)窗口并选择 Update policy(更新策略)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
创建 Amazon EKS 集群角色
要创建 IAM 角色,您可以使用 Amazon Web Services Management Console 或 Amazon CLI。