当我尝试从命令行启动 Elastic Beanstalk 环境时,在此过程中出现此错误:
环境运行状况已从"挂起"转换为"警告"。访问 使用 访问弹性伸缩和弹性负载均衡时被拒绝 role "arn:aws:iam::XXXXXXXXXX:role/aws-elasticbeanstalk-service-role"。 验证角色策略。
当我从控制台启动它时,我没有收到此警告。我尝试从 CLI 复制相同的 AWS 控制台配置,但仍然收到此错误。
知道发生了什么吗?
如果有人仍然遇到类似的错误并且仍然不确定如何解决它
- 在
- AWS 控制台中导航到 IAM。
- 导航到 aws-elasticbeanstalk-service-role(在 Access Management> Roles 下)。
- 附加以下策略:
- 自动缩放完全访问
- ElasticLoadBalancingFullAccess
然后我重建了环境,没有更多的错误!
以下文章帮助我更好地理解了这一点:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-roles-service.html
您可以转到 IAM 控制台。您将看到"aws-elasticbeanstalk-service-role",在权限选项卡下,您可以代表您授予要授予策略的特定内容。刷新,你应该有"确定"。确保您授予角色的权限可以管理此"使用弹性伸缩和弹性负载均衡角色"
Elastic Beanstalk 现在使用服务角色代表您调用其他 AWS 服务。IAM 角色是在您的账户中创建的,您授予启动权限服务角色是可选的,但建议用于新环境。
特别是对于增强的运行状况监视(这是基于错误消息使用的内容),服务角色是必需的。服务角色配置错误可能会导致此错误消息。
控制台体验使您可以非常轻松地创建/使用具有正确权限的角色。这是因为在使用创建环境向导时,您只需从下拉列表中选择正确的角色(如果角色已存在)。
使用 CLI 时,需要传递服务角色选项设置。(命名空间:aws:elasticbeanstalk:environment,option_name:ServiceRole)。您可以找到本文档中配置的角色所需的权限。
在我之前的堆栈溢出答案中,这里有一些关于服务角色的细节。
如果有人无法解决以前的操作的错误,我所要做的就是:
- 将以下策略添加到 aws-elasticbeanstalk-service-role AutoScalingFullAccess |ElasticLoadBalancingFullAccess
- 不是重新启动,而是重新构建环境
(一段时间后,它继续启动错误)
然后我补充说:
- AdministratorAccess-AWSElasticBeanstalk (再次改为 aws-elasticbeanstalk-service-role)
- 再次重建环境
它目前正在工作。