使用AWS CLI创建EKS托管节点组遇IAM信任关系问题求助
解决方案
1. 成功创建托管节点组
你混淆了EKS服务关联角色和节点实例IAM角色,报错根源是误用服务关联角色作为节点实例角色。正确操作步骤如下:
- 创建节点实例IAM角色(供EC2节点使用):
aws iam create-role --role-name MyEKSNodeInstanceRole --assume-role-policy-document '{"Version": "2012-10-17", "Statement": [{"Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole"}]}' - 为该角色附加必需的托管策略:
aws iam attach-role-policy --role-name MyEKSNodeInstanceRole --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy aws iam attach-role-policy --role-name MyEKSNodeInstanceRole --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly aws iam attach-role-policy --role-name MyEKSNodeInstanceRole --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy - 使用CLI创建节点组时,指定上述自定义节点实例角色的ARN:
aws eks create-nodegroup --cluster-name <你的集群名称> --nodegroup-name <你的节点组名称> --node-role arn:aws:iam::xxx9399:role/MyEKSNodeInstanceRole --subnets <子网ID列表> --instance-types <实例类型> --desired-size <期望节点数>
2. 关于服务关联角色的信任关系调整
AWSServiceRoleForAmazonEKSNodegroup是AWS托管的服务关联角色,用户无权限编辑其信任关系,且该角色的信任主体仅需eks-nodegroup.amazonaws.com——它是EKS节点组服务自身使用的角色,不需要添加ec2.amazonaws.com。你之前的报错是因为错误将此角色指定为节点实例角色导致的,纠正角色使用后即可解决。
内容的提问来源于stack exchange,提问作者feedthemachine
相关产品推荐
相关产品推荐

