部署CloudFormation栈创建ElasticBeanstalk应用报InsufficientPrivilegesException如何解决
问题原因与解决办法
你收到的InsufficientPrivilegesException403报错属于权限缺失问题,按照下面的步骤排查补全权限即可:
1. 补全部署触发身份的iam:PassRole权限
如果你部署CloudFormation栈时指定了模板中定义的CFNRole作为栈执行角色,那么你用来触发部署操作的IAM身份(控制台登录的IAM用户、本地调用API的IAM身份等)必须要有iam:PassRole权限,允许将该角色传递给CloudFormation服务使用,权限示例如下:
{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::<替换为你的AWS账号ID>:role/CFNRole", "Condition": { "StringEquals": { "iam:PassedToService": "cloudformation.amazonaws.com" } } }
2. 补全ElasticBeanstalk服务关联角色创建权限
如果你的AWS账号是首次创建ElasticBeanstalk资源,需要先创建ElasticBeanstalk专属的服务关联角色,在你使用的执行角色(如果指定了CFNRole就加在CFNRole的policy里,如果没指定就加在部署触发身份的policy里)中新增如下权限:
{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/elasticbeanstalk.amazonaws.com/AWSServiceRoleForElasticBeanstalk", "Condition": { "StringEquals": { "iam:AWSServiceName": "elasticbeanstalk.amazonaws.com" } } }
3. 排查额外限制
如果补全上述权限后仍报错,检查两个常见限制:
- 如果你部署栈时没有指定用
CFNRole作为执行角色,默认会用你触发部署的IAM身份的权限创建资源,需要确保该身份已经包含elasticbeanstalk:CreateApplication等相关操作权限 - 检查你所在的AWS组织是否配置了SCP(服务控制策略),是否封禁了ElasticBeanstalk相关操作
- 检查你使用的执行角色是否配置了权限边界,是否限制了ElasticBeanstalk相关操作
内容的提问来源于stack exchange,提问作者Pflugs
相关产品推荐
相关产品推荐

