Aurora RDS Postgres 出现 IAM 身份验证错误?

Jul*_*lot 4 postgresql amazon-web-services amazon-rds amazon-aurora

我尝试使用本地计算机上的 IAM 用户连接我的 Aurora Postgres 数据库,但出现以下错误:psql: FATAL: PAM authentication failed for user "test-rds"

在数据库上创建用户的命令:

CREATE USER test-rds WITH LOGIN;
GRANT rds_iam TO test-rds;
Run Code Online (Sandbox Code Playgroud)

我已创建此策略并将其附加到我的 IAM 用户。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds-db:connect"
            ],
            "Resource": [
                "arn:aws:rds-db:eu-west-1:$account:dbuser:$db-id/test-rds",
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

然后测试以下命令:

export PGPASSWORD=$(aws rds generate-db-auth-token --hostname $db-host --port $db-port --username test-rds --region eu-west-1)

psql "host=$db-host port=$db-port sslmode=require sslrootcert=rds-combined-ca-bundle.pem dbname=postgres user=test-rds"
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用 postgresql 用户,我可以访问我的数据库,但不能使用 iam 用户,我不明白为什么。

请帮助我^^!

Jul*_*lot 5

当我调整以下命令时,问题得到解决:

export PGPASSWORD=$(aws rds generate-db-auth-token --hostname $db-host --port $db-port --username test-rds --region eu-west-1)
Run Code Online (Sandbox Code Playgroud)

我已在命令中添加AWS_PROFILE 。

export PGPASSWORD=$(AWS_PROFILE=test-rds aws rds generate-db-auth-token --hostname $db-host --port $db-port --username test-rds --region eu-west-1)
Run Code Online (Sandbox Code Playgroud)