CDK部署EKS集群遇eks:CreateCluster权限拒绝问题求助
排查EKS eks:CreateCluster权限拒绝问题
可能的原因及解决步骤
1. CDK执行角色权限不足
CDK部署时使用的执行角色(通常命名为cdk-hnb659fds-deploy-<账号ID>-<区域>)需要具备eks:CreateCluster以及关联的iam:PassRole权限——EKS创建集群时需要传递集群角色、节点组角色等,缺少iam:PassRole会触发权限拒绝。
- 操作:在IAM控制台找到该角色,检查附加的策略,确保包含以下语句(可根据实际需求调整资源范围):
{ "Effect": "Allow", "Action": [ "eks:CreateCluster", "iam:PassRole" ], "Resource": "*" }
2. EKS集群角色信任策略错误
EKS集群依赖的服务角色(CDK自动创建或你自定义的角色)必须允许eks.amazonaws.com承担该角色,否则即使权限语句全量,也会导致权限拒绝。
- 操作:找到EKS集群角色,查看信任关系,确认存在以下配置:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
3. 权限边界(Permission Boundary)限制
如果部署角色或EKS集群角色设置了权限边界,即使附加了eks:*策略,权限边界可能会限制实际可执行的操作。
- 操作:检查角色的权限边界配置,确保边界策略允许
eks:CreateCluster操作。
4. 资源级权限范围过窄
如果你的eks:*策略指定了特定的资源ARN,由于集群尚未创建,ARN无法匹配会导致权限拒绝。
- 操作:临时将策略中的资源改为
*进行测试,确认问题解决后再根据实际需求缩小范围。
5. CDK合成模板验证
运行cdk synth生成CloudFormation模板,检查EKS集群资源的RoleArn属性是否指向正确的角色,同时确认模板中角色的权限配置与你手动添加的策略无冲突。
6. 凭证与区域一致性问题
确认CDK使用的AWS凭证有效、权限正确,且部署区域与EKS集群指定的区域一致——STS区域不匹配可能导致权限验证失败。
精准定位错误的方法
- 查看CloudFormation堆栈事件,其中会明确显示被拒绝的角色ARN和具体的权限缺失项。
- 启用AWS CloudTrail,查找
eks:CreateCluster的API调用记录,通过errorCode和errorMessage字段获取最直接的错误原因。
内容的提问来源于stack exchange,提问作者Dexterx25
相关产品推荐
相关产品推荐

