使用ECS CLI创建AWS集群时遭遇密钥对不存在错误求助
解决ECS CLI创建集群时密钥对不存在的错误
我来帮你排查这个密钥对的问题——你遇到的The key pair 'my-key-pair' does not exist错误,哪怕你已经添加了密钥对,通常是几个容易忽略的细节导致的,咱们一步步来解决:
1. 确认密钥对的区域完全匹配
AWS的资源是区域隔离的,你配置的CLI区域是us-east-1,但如果你的密钥对是在其他区域(比如us-west-2)创建的,CloudFormation肯定找不到它。
- 操作:登录AWS控制台,切换到
US East (N. Virginia)区域(也就是us-east-1),进入EC2控制台的「密钥对」页面,确认my-key-pair确实存在于这个区域。如果没有,就在该区域重新创建密钥对。
2. 检查密钥对名称的拼写和大小写
AWS密钥对的名称是区分大小写的,比如My-Key-Pair和my-key-pair会被识别为两个不同的密钥对。
- 操作:对比你
ecs-cli up命令里的--keypair my-key-pair和控制台里的密钥对名称,确保完全一致,包括连字符、大小写、特殊字符。
3. 确保ECS CLI使用了正确的配置文件
你已经创建了名为myclusterconfig的配置(指定了cluster_test集群和us-east-1区域),但默认情况下ecs-cli up可能会使用default配置,而不是你自定义的这个。
- 解决:在
ecs-cli up命令里加上--config-name myclusterconfig参数,同时指定集群名称,确保用对配置:ecs-cli up --keypair my-key-pair --capability-iam --size 2 --instance-type t2.small --force --config-name myclusterconfig --cluster cluster_test
4. 验证IAM用户的权限
你配置的grantspilsbury IAM用户需要有足够的权限读取EC2密钥对信息,如果权限不足,CloudFormation也会提示找不到密钥对。
- 操作:检查该IAM用户的权限策略,确保包含
ec2:DescribeKeyPairs权限,或者临时附加AmazonEC2FullAccess和AmazonECS_FullAccess策略进行测试(生产环境记得调整为最小权限)。
另外,从你的操作日志里看到Created cluster cluster=default,这说明你的ecs-cli up默认创建了default集群,而不是你配置的cluster_test,所以加上--cluster cluster_test参数也能避免这个问题。
内容的提问来源于stack exchange,提问作者grabury
相关产品推荐
相关产品推荐

