来自 Rails 应用程序的 AWS RDS 数据库 - 从根用户切换到 IAM 用户时出错
AWS RDS Database from Rails app - Error when switching from root to IAM user
我正在从我正在开发的 rails
应用程序访问 AWS
上的 RDS PostgreSQL
数据库。目前,我正在使用我的 AWS
root 凭据访问数据库。
在我的 database.yml
:
pg_development:
<<: *pg_default
adapter: postgresql
database: myDatabase
username: myRootUsername
password: myRootPassword
host: myDatabase.1234.us-east-1.rds.amazonaws.com
在生产中,它们存储在 Heroku
配置变量中。
这与我的根凭据完美配合。然后我设置了一个 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)
和我在开发中看到的相同的致命错误。
我以前从未使用过 IAM
,我希望我只是犯了一个简单的错误,传递凭据的方法与 IAM
不同。
我已经尝试重新启动服务器,切换回 root 以确保我没有搞砸任何其他导致错误的事情,rake db:migrate
,想不出任何其他会导致此错误的原因。
您正在混合使用 IAM 用户和数据库用户...
IAM 用户,是 AWS 中的用户(例如,可以登录管理控制台,或使用 SDK 功能启动 ec2 实例、创建 RDS 数据库、将数据写入 S3 等的用户) ).
启动 RDS 实例时,必须指定 admin/root 用户名和密码。我的猜测是这是有效的用户名和密码(请注意,此用户名和密码不能识别 IAM 用户)。
如果您想缩小应用程序的数据库访问范围,您需要在 RDS PostgreSQL 本身内部创建一个新的数据库用户(使用某种 Postgre GUI,或者通过连接 Postgre 数据库并发出 CREATE USER ).
我正在从我正在开发的 rails
应用程序访问 AWS
上的 RDS PostgreSQL
数据库。目前,我正在使用我的 AWS
root 凭据访问数据库。
在我的 database.yml
:
pg_development:
<<: *pg_default
adapter: postgresql
database: myDatabase
username: myRootUsername
password: myRootPassword
host: myDatabase.1234.us-east-1.rds.amazonaws.com
在生产中,它们存储在 Heroku
配置变量中。
这与我的根凭据完美配合。然后我设置了一个 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)
和我在开发中看到的相同的致命错误。
我以前从未使用过 IAM
,我希望我只是犯了一个简单的错误,传递凭据的方法与 IAM
不同。
我已经尝试重新启动服务器,切换回 root 以确保我没有搞砸任何其他导致错误的事情,rake db:migrate
,想不出任何其他会导致此错误的原因。
您正在混合使用 IAM 用户和数据库用户...
IAM 用户,是 AWS 中的用户(例如,可以登录管理控制台,或使用 SDK 功能启动 ec2 实例、创建 RDS 数据库、将数据写入 S3 等的用户) ).
启动 RDS 实例时,必须指定 admin/root 用户名和密码。我的猜测是这是有效的用户名和密码(请注意,此用户名和密码不能识别 IAM 用户)。
如果您想缩小应用程序的数据库访问范围,您需要在 RDS PostgreSQL 本身内部创建一个新的数据库用户(使用某种 Postgre GUI,或者通过连接 Postgre 数据库并发出 CREATE USER ).