Bug:无法使用仅具有rds-db:connect权限的角色使用IAM身份验证连接到RDS Aurora Serverless V2。

0

【以下的问题经过翻译处理】 当我尝试使用IAM身份验证连接到RDS Aurora Serverless V2实例时,客户端身份验证期间收到错误:

“pg_hba.conf拒绝连接到主机“...”​​,用户“”,数据库“”,无加密”(主机,用户和数据库名称已编辑)。

我尝试了在shell上使用AWS CLI通过aws rds generate-db-auth-token命令获取密码,以及使用Python使用boto3库通过boto3.client(“rds”).generate_db_auth_token(...)获取密码。

如果我将AdministratorAccess AWS托管IAM策略添加到我正在使用的角色中,那么我就能成功登录到数据库。但是如果我取消AdministratorAccess,我就无法登录。在两种情况下,角色都具有“rds-db:connect”权限和适当的db资源。如果我将角色更新为“rds-db:”并使用资源“”,我仍然收到错误。

为了尝试了解AdministratorAccess是什么使其正常工作,我尝试代替授予所有kms:,sts:,“iam:”,“rds:”,“rds-data”:”,以及“acm:”,带有资源:“*”,认为可能需要一些未记录的IAM权限,但这并没有解决问题。

1 回答
0

【以下的回答经过翻译处理】 我在https://repost.aws/knowledge-center/aurora-postgresql-connect-iam这篇文章中找到了答案,原来在Aurora PostgreSQL中,IAM策略中的资源ID需要是RDS群集ID,而不是RDS实例ID。相比之下,对于RDS PostgreSQL,资源ID需要是数据库实例资源ID。而我的策略正在使用实例ID。 我希望generate-auth-token请求会立即失败并附带一个IAM错误信息——这将有助于更快地准确定位问题。相反,generate-auth-token请求仍然成功了,但生成的密码无法让我连接。"pg_hba.conf拒绝连接,没有加密"错误消息也是误导性的。

profile picture
专家
已回答 6 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则