使用AWS CLI创建Elastic Beanstalk环境时遇IAM权限错误求助
解决AWS CLI创建Elastic Beanstalk环境时的IAM角色权限报错
检查
aws-elasticbeanstalk-service-role的信任策略
确保该角色允许Elastic Beanstalk服务扮演它,执行以下操作:
先创建trust-policy-service.json文件,内容如下:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticbeanstalk.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "elasticbeanstalk" } } } ] }然后运行命令更新信任策略:
aws iam update-assume-role-policy --role-name aws-elasticbeanstalk-service-role --policy-document file://trust-policy-service.json确认用户的
iam:PassRole权限
即便有管理员权限,也要确保用户策略明确允许传递目标角色。创建pass-role-policy.json文件:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::你的AWS账户ID:role/aws-elasticbeanstalk-service-role", "arn:aws:iam::你的AWS账户ID:instance-profile/aws-elasticbeanstalk-ec2-role" ] } ] }替换
你的AWS账户ID为实际账户ID,将策略附加到目标用户:aws iam put-user-policy --user-name 你的用户名 --policy-name ElasticBeanstalkPassRole --policy-document file://pass-role-policy.json验证实例角色与实例配置文件的关联
aws-elasticbeanstalk-ec2-role必须绑定到同名实例配置文件,若未绑定执行:aws iam create-instance-profile --instance-profile-name aws-elasticbeanstalk-ec2-role aws iam add-role-to-instance-profile --instance-profile-name aws-elasticbeanstalk-ec2-role --role-name aws-elasticbeanstalk-ec2-role检查CLI凭据是否正确
确认当前CLI使用的是已分配权限的用户:aws configure list若凭据不正确,重新配置:
aws configure输入正确的访问密钥、秘密密钥等信息。
缺失默认角色时手动创建
如果目标角色不存在,直接创建默认服务角色和EC2角色:# 创建默认Elastic Beanstalk服务角色 aws elasticbeanstalk create-default-service-role # 创建EC2角色及信任策略 echo '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }' > trust-policy-ec2.json aws iam create-role --role-name aws-elasticbeanstalk-ec2-role --assume-role-policy-document file://trust-policy-ec2.json # 附加Elastic Beanstalk实例托管策略 aws iam attach-role-policy --role-name aws-elasticbeanstalk-ec2-role --policy-arn arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier aws iam attach-role-policy --role-name aws-elasticbeanstalk-ec2-role --policy-arn arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier
内容的提问来源于stack exchange,提问作者youssef mohammed
相关产品推荐
相关产品推荐

