来自Rails应用程序的AWS RDS数据库-从root用户切换到IAM用户时出错



我正在从正在开发的rails应用程序访问AWS上的RDS PostgreSQL数据库。目前,我正在使用AWS根凭据访问数据库。

在我的database.yml:中

pg_development:
  <<: *pg_default
  adapter: postgresql
  database: myDatabase
  username: myRootUsername
  password: myRootPassword
  host: myDatabase.1234.us-east-1.rds.amazonaws.com

在生产中,它们存储在Heroku配置变量中。

这与我的root凭据非常配合。然后,我设置了一个IAM用户和组以提高安全性。我已经批准了我能想到的每一项政策。我紧随其后http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.html尽我所能。。。

在我的开发环境中,我看到一个rails错误PG::ConnectionBad FATAL: password authentication failed for user "myIAMuser"

在我的Heroku日志中,它显示Completed 500 Internal Server Error in 59ms (ActiveRecord: 1.3ms)和我在dev.中看到的相同致命错误

我以前从未使用过IAM,我希望我只是犯了一个简单的错误,并且传递凭据的方法与IAM不同。

我试着重新启动服务器,切换回root,以确保我没有把其他事情搞砸,从而导致错误,rake db:migrate,想不出还有什么会导致这种情况。

您正在混合IAM用户和数据库用户。。。

IAM用户是AWS内的用户(例如,可以登录管理控制台,或使用SDK功能启动ec2实例、创建RDS数据库、将数据写入S3等)。

当您启动RDS实例时,必须指定admin/root用户名和密码。我的猜测是,这是有效的用户名和密码(注意,这个用户名和密码不能识别IAM用户)。

如果你想缩小应用程序的数据库访问权限,你需要在RDS PostgreSQL内部创建一个新的数据库用户(使用某种Postgre GUI,或者连接Postgre数据库并发出create user)。

相关内容

  • 没有找到相关文章

最新更新