使用IAM角色连接到Amazon RDS Postgresql

时间:2017-12-07 10:51:03

标签: postgresql amazon-web-services amazon-ec2 amazon-rds amazon-iam

我尝试通过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实例。到目前为止,一切似乎都很好。

当ssh到该特定EC2实例并尝试连接到数据库时,psql仍会提示输入密码。

任何人都知道如何实现它,我可以连接而无需使用密码?

2 个答案:

答案 0 :(得分:3)

这是不可能的。

AWS身份和访问管理(IAM)用于授予RDS服务的权限(例如,创建,备份和删除群集)。但是,不能用于授予对Amazon RDS PostgreSQL数据库的登录访问权限。相反,使用PostgreSQL中定义的普通用户。

MySQL和Aurora的这种访问is only available

答案 1 :(得分:2)

RDS PostgreSQL(vanilla和Aurora)现在支持IAM身份验证。

受支持的版本是:

Amazon RDS for PostgreSQL(从2018/09/27开始受支持)

  • 9.5.13或更高版本
  • 9.6.9或更高版本
  • 10.4或更高

Amazon Aurora PostgreSQL(从2018/11/08开始受支持)

  • 9.6.9或更高版本

指令就像MySQL的一样:

  1. 创建启用了IAM身份验证的数据库实例
  2. 使用rds_iam ROLE创建IAM身份验证用户
  3. 添加用于IAM访问的新策略
  4. 请求IAM auth的临时凭据(详细信息https://gist.github.com/quiver/509e1a6e6b54a0148527553502e9f55d