AWS Beanstalk - 收到"Access denied while accessing Auto Scaling and ..."错误



当我尝试从命令行启动 Elastic Beanstalk 环境时,在此过程中出现此错误:

环境运行状况已从"挂起"转换为"警告"。访问 使用 访问弹性伸缩和弹性负载均衡时被拒绝 role "arn:aws:iam::XXXXXXXXXX:role/aws-elasticbeanstalk-service-role"。 验证角色策略。

当我从控制台启动它时,我没有收到此警告。我尝试从 CLI 复制相同的 AWS 控制台配置,但仍然收到此错误。

知道发生了什么吗?

如果有人仍然遇到类似的错误并且仍然不确定如何解决它

  1. AWS 控制台中导航到 IAM。
  2. 导航到 aws-elasticbeanstalk-service-role(在 Access Management> Roles 下)。
  3. 附加以下策略:
    • 自动缩放完全访问
    • 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)。您可以找到本文档中配置的角色所需的权限。

在我之前的堆栈溢出答案中,这里有一些关于服务角色的细节。

如果有人无法解决以前的操作的错误,我所要做的就是:

  1. 将以下策略添加到 aws-elasticbeanstalk-service-role AutoScalingFullAccess |ElasticLoadBalancingFullAccess
  2. 不是重新启动,而是重新构建环境

(一段时间后,它继续启动错误)

然后我补充说:

  • AdministratorAccess-AWSElasticBeanstalk (再次改为 aws-elasticbeanstalk-service-role)
  • 再次重建环境

它目前正在工作。

最新更新