AWS RDS Proxy连接Aurora DB后数据库访问被拒问题求助
以下是针对你遇到的ERROR 1045 (28000): Database Access denied for user 'admin'@'ip-address'错误的排查步骤:
检查RDS Proxy关联的IAM角色权限
确保代理使用的IAM角色具备rds-db:connect权限,且该权限作用到你的Aurora集群资源(例如arn:aws:rds:region:account-id:cluster:your-cluster-name)。同时验证角色的信任策略允许RDS服务扮演该角色,策略主体需包含rds.amazonaws.com。确认数据库用户的认证方式匹配
- 若使用IAM认证:
admin用户必须通过IAM插件创建,执行语句应为CREATE USER 'admin' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';,且客户端连接时需携带IAM认证相关的签名参数。 - 若使用密码认证:确保RDS Proxy配置的Secrets Manager密钥中,用户名和密码与数据库中
admin用户的完全一致(注意大小写敏感),同时Proxy的IAM角色需具备访问该密钥的权限。
- 若使用IAM认证:
核对Proxy的连接配置
- 检查代理的「Require Transport Layer Security (TLS)」设置:如果启用了强制TLS,客户端连接时必须开启TLS选项(例如mysql客户端添加
--ssl-mode=REQUIRED参数),否则会触发认证失败。 - 确认Proxy的目标组已正确关联到Aurora集群的可用实例,且实例处于正常运行状态。
- 检查代理的「Require Transport Layer Security (TLS)」设置:如果启用了强制TLS,客户端连接时必须开启TLS选项(例如mysql客户端添加
验证数据库用户的访问范围
执行SELECT host FROM mysql.user WHERE user='admin';查看admin用户允许的连接来源。如果host是特定IP段,需确保RDS Proxy的出口IP在允许范围内;若要放宽限制(注意安全风险),可执行ALTER USER 'admin'@'old-host' IDENTIFIED BY 'password'@'%';修改host为%。检查Secrets Manager密钥有效性
手动使用密钥中的账号密码直接连接Aurora RDS端点,确认账号密码有效。同时检查密钥是否过期、是否被正确配置到Proxy中。查看Proxy日志定位细节
开启RDS Proxy的日志记录,在CloudWatch中查看代理的日志条目,日志会明确标注认证失败的具体原因(如密钥读取失败、IAM权限不足等),帮助快速定位问题。
内容的提问来源于stack exchange,提问作者Naishav Mehta

