Ruby on rails 来自Rails应用程序的AWS RDS数据库-从根用户切换到IAM用户时出错
我正在从我正在开发的Ruby on rails 来自Rails应用程序的AWS RDS数据库-从根用户切换到IAM用户时出错,ruby-on-rails,postgresql,amazon-web-services,heroku,amazon-iam,Ruby On Rails,Postgresql,Amazon Web Services,Heroku,Amazon Iam,我正在从我正在开发的rails应用程序访问AWS上的RDS-PostgreSQL数据库。目前,我正在使用我的AWSroot凭据访问数据库 在my数据库.yml中: pg_development: <<: *pg_default adapter: postgresql database: myDatabase username: myRootUsername password: myRootPassword host: myDatabase.1234.us-ea
rails
应用程序访问AWS
上的RDS-PostgreSQL
数据库。目前,我正在使用我的AWS
root凭据访问数据库
在my数据库.yml
中:
pg_development:
<<: *pg_default
adapter: postgresql
database: myDatabase
username: myRootUsername
password: myRootPassword
host: myDatabase.1234.us-east-1.rds.amazonaws.com
pgu开发:
您正在混合IAM用户和数据库用户
IAM用户是AWS内的用户(例如,可以登录到管理控制台,或使用SDK功能启动ec2 Instance、创建RDS数据库、将数据写入S3等)
启动RDS实例时,必须指定管理员/root用户名和密码。我猜这是有效的用户名和密码(请注意,此用户名和密码不能识别IAM用户)
如果您想缩小应用程序对数据库的访问范围,则需要在RDS PostgreSQL本身内部创建一个新的数据库用户(使用某种Postgre GUI,或通过连接Postgre数据库并发出“创建用户”命令)。您将IAM用户与数据库用户混合使用
IAM用户是AWS内的用户(例如,可以登录到管理控制台,或使用SDK功能启动ec2 Instance、创建RDS数据库、将数据写入S3等)
启动RDS实例时,必须指定管理员/root用户名和密码。我猜这是有效的用户名和密码(请注意,此用户名和密码不能识别IAM用户)
如果您想缩小应用程序的数据库访问范围,则需要在RDS PostgreSQL本身内部创建一个新的数据库用户(使用某种Postgre GUI,或通过连接Postgre数据库并发出create user)。很可能是您的策略或IAM设置有问题。到目前为止,这不是世界上最直观的事情,而且有很多地方很容易犯错误。我建议重新执行所有步骤并记录下来,如果仍然不起作用,请将步骤张贴在此处,供其他人查看。谢谢。因此,您确认我应该能够使用密码(用于登录AWS平台),这是我在我的应用程序中作为身份验证密码所需的全部吗?和我对root用户的看法一样。一点也不。理想情况下,您应该设置IAM用户以访问DB.Right。我要说的是,我创建了一个IAM用户,IAM用户将拥有一个密码,我将使用IAM用户的密码作为访问数据库的身份验证。如果我不使用root用户,我只是想确保我不必使用密码以外的任何东西进行身份验证。Postgres根本不知道IAM用户。IAM用户只能用于调用AWS API方法,不能用于登录RDS数据库。很可能是您的策略或IAM设置有问题。到目前为止,这不是世界上最直观的事情,而且有很多地方很容易犯错误。我建议重新执行所有步骤并记录下来,如果仍然不起作用,请将步骤张贴在此处,供其他人查看。谢谢。因此,您确认我应该能够使用密码(用于登录AWS平台),这是我在我的应用程序中作为身份验证密码所需的全部吗?和我对root用户的看法一样。一点也不。理想情况下,您应该设置IAM用户以访问DB.Right。我要说的是,我创建了一个IAM用户,IAM用户将拥有一个密码,我将使用IAM用户的密码作为访问数据库的身份验证。如果我不使用root用户,我只是想确保我不必使用密码以外的任何东西进行身份验证。Postgres根本不知道IAM用户。IAM用户只能用于调用AWS API方法,不能用于登录RDS数据库。这是我的问题。谢谢你为我节省了很多时间,这是我的问题。谢谢你为我节省了很多时间。