AWS执行eb init报错NotAuthorizedError - Operation Denied需补充什么权限?
问题解决说明
报错原因
你执行eb init初始化Elastic Beanstalk应用时,在创建SSH公钥的步骤需要调用EC2服务的密钥对创建接口,你当前配置的IAM权限仅覆盖Elastic Beanstalk、ECS、容器镜像仓库、CodeCommit的相关操作,未包含EC2密钥对的操作权限,因此触发NotAuthorizedError报错。
你当前已配置的IAM权限清单如下:
AWSCodeCommitFullAccess AmazonEC2ContainerRegistryFullAccess AWSElasticBeanstalkMulticontainerDocker AmazonECS_FullAccess AmazonECSTaskExecutionRolePolicy AmazonEC2ContainerServiceforEC2Role AmazonEC2ContainerServiceRole AdministratorAccess-AWSElasticBeanstalk AWSElasticBeanstalkReadOnly
解决方案
你需要为IAM用户补充EC2密钥对相关的操作权限,可选以下两种方案:
- 方案1(生产环境推荐,遵循最小权限原则)
新建自定义IAM策略,配置如下规则后关联到你的IAM用户:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateKeyPair", "ec2:DescribeKeyPairs" ], "Resource": "*" } ] } - 方案2(测试环境快速生效)
直接为IAM用户关联AmazonEC2FullAccess权限,该权限包含所有EC2相关操作权限,不建议在生产环境使用。
通用权限报错排查方法
如果后续仍遇到类似权限报错,可运行以下命令解码AWS返回的编码错误信息,精准定位缺失的权限项:
aws sts decode-authorization-message --encoded-message <替换为你收到的编码后授权失败消息>
内容的提问来源于stack exchange,提问作者cuneyttyler
相关产品推荐
相关产品推荐

