我已经创建了大约 10 个带有连接 RDS 数据库的 Elastic Beanstalk 环境,但由于某种原因,在这个应用程序中,我无法将 RDS 数据库添加到我的 Elastic Beanstalk 环境中。
我正在通过 Elastic Beanstalk UI 使用 添加 RDS 数据库Configuration > Database
。错误似乎源于我的根用户无法创建 RDS DB 安全组。事件日志显示:
INFO: Environment update is starting.
INFO: Updating environment pscope-api-prod's configuration settings.
ERROR: Service:AmazonCloudFormation, Message:Stack named 'awseb-e-rmu57hh9tz-stack' aborted operation. Current state: 'UPDATE_ROLLBACK_IN_PROGRESS' Reason: The following resource(s) failed to create: [AWSEBRDSDBSecurityGroup].
ERROR: Creating RDS database security group named: awseb-e-rmu57hh9tz-stack-awsebrdsdbsecuritygroup-gpqdtr1kvf7z failed Reason: Either the resource does not exist, or you do not have the required permissions.
ERROR: Failed to deploy configuration.
INFO: Deleted RDS database security group named: awseb-e-rmu57hh9tz-stack-awsebrdsdbsecuritygroup-gpqdtr1kvf7z
INFO: The environment was reverted to the previous configuration setting.
完成此操作后,不会创建任何数据库,并且一切都恢复到尝试添加 RDS 数据库之前的状态。
我尝试过的事情:
- 我正在尝试以根用户身份添加该数据库,但也尝试创建具有管理员权限的 IAM 用户并出现相同的错误。
- 我也尝试过删除整个应用程序和环境并重新创建,但仍然出现同样的错误。
- 我通常使用 eb-cli 创建
eb create
,但我也尝试通过仪表板 UI 创建并出现相同的错误。
答案1
我是 AWS 新手,在尝试从 Elastic Bean 管理控制台创建和添加新数据库时遇到了同样的问题。
在 IAM 中添加 AWSServiceRoleForRDS 角色后,此问题已得到修复。转到 IAM --> 角色 --> 创建角色 --> AWS 服务:
选择 RDS 和 RDS 用例。单击“下一步:权限”。您将看到已添加 AmazoneRDSServiceRolePolicy。单击下一步:审核 --> 创建角色。
大功告成。现在尝试从 Elastic Beanstalk 管理控制台创建数据库。现在应该可以正常工作了。
答案2
我的问题是点击申请位于 RDS 页面底部,而不是继续. 点击后继续,我能够看到告诉我为数据库分配两个子网。完成此操作并点击后申请,一切正常。
答案3
显然,当您运行 eb create(我猜没有指定任何数据库)时,为您的 IAM 用户自动创建的所需角色缺少允许 RDS 进行更改所需的角色。
创建新角色在您的 IAM 管理控制台中获取 RDS 服务将“允许 RDS 代表您使用 AWS 资源执行操作。“在检查权限并确保AmazonRDSServiceRolePolicy在列表中,AWSServiceRoleForRDS 将被添加到列表中,并希望能解决您的麻烦。
答案4
2018年1月8日19:17,角色AmazonRDSServiceRolePolicy已默认添加到IAM根账户