我试图通过IAM使我的EC2实例访问我的AWS RDS PostgreSQL数据库。
首先,我已经创建了一个策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds:connect"
],
"Resource": [
"arn:aws:rds:eu-west-1:824224273455:db:instance-name/db-name"
]
}
]
}
之后,我将此策略附加到role
,并将其附加到该特定的EC2-Instance上。到目前为止一切似乎都很好。
当SSH到该特定的EC2实例并尝试连接到数据库时,psql
仍提示输入密码。
任何人都知道如何完成我可以连接的而无需使用密码的方法?
支持的版本是:
PostgreSQL的Amazon RDS(从2018/09/27支持)
- 9.5.13或更高
- 9.6.9或更高
- 10.4或更高
Amazon Aurora Postgresql(从2018/11/08支持)
- 9.6.9或更高
说明就像mysql的:
- 使用IAM auth启用 创建DB实例
- 使用RDS_IAM角色创建IAM auth用户
- 添加IAM访问的新政策
- 请求IAM auth的请求临时凭据(详细信息https://gist.github.com/quiver/509E1A6B54A0148527553502E9F55D)
这是不可能的。
AWS身份和访问管理(IAM)用于授予RDS服务的权限(例如创建,备份和删除簇)。但是,它不能用于授予对Amazon RDS PostgreSQL数据库的登录访问。而是使用PostgreSQL中定义的普通用户。
这种访问仅适用于mysql和aurora。