当我尝试从命令行启动Elastic Beanstalk环境时,我在此过程中收到此错误:
环境健康已从待定转为警告。访问 使用时访问Auto Scaling和Elastic Load Balancing时被拒绝 角色“arn:aws:iam :: XXXXXXXXXX:role / aws-elasticbeanstalk-service-role”。 验证角色策略。
当我从控制台启动时,我没有收到此警告。我试图从CLI复制相同的AWS控制台配置,但我仍然遇到此错误。
有什么想法发生了什么?
答案 0 :(得分:17)
如果有人仍然遇到类似的错误并且仍然不确定如何解决
然后我重建了环境,没有更多错误!
以下文章帮助我更好地理解了这一点:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-roles-service.html
答案 1 :(得分:7)
您可以转到您的 IAM 控制台。您将看到“aws-elasticbeanstalk-service-role”,在权限选项卡下,您可以代表您授予您想要授予的特定策略。刷新,您应该“确定”。确保您授予角色的权限可以管理此“使用角色的 Auto Scaling 和 Elastic Load Balancing”
答案 2 :(得分:1)
Elastic Beanstalk现在使用服务角色代表您调用其他AWS服务。 IAM角色在您的帐户中创建,您授予启动权限 服务角色是可选的,但建议用于新环境。
特别是对于增强型运行状况监控(根据错误消息使用的是),服务角色是必需的。配置错误的服务角色可能会导致出现此错误消息。
控制台体验使您可以非常轻松地创建/使用具有正确权限的角色。这是因为在使用创建环境向导时,您只需从下拉列表中选择正确的角色(如果角色已存在)。
使用CLI时,您需要传递服务角色选项设置。 (namespace:aws:elasticbeanstalk:environment,option_name:ServiceRole)。您可以找到this文档中配置的角色所需的权限。
我之前的堆栈溢出回答here中有关于服务角色的更多详细信息。