如何在DBeaver中用AWS IAM令牌结合.pgpass连接AWS RDS PostgreSQL?
用DBeaver通过AWS IAM令牌连接RDS PostgreSQL
前提准备
- 确保你的AWS IAM用户/角色拥有以下权限:
rds-db:connect(需指定目标RDS实例ARN和对应的PostgreSQL用户名)sts:GetCallerIdentity(用于身份校验)
- 本地已安装并配置AWS CLI(或通过环境变量/实例角色等方式获取有效AWS凭证),能正常调用AWS服务
- 目标RDS PostgreSQL实例已开启IAM数据库认证功能
步骤1:生成IAM认证令牌
使用AWS CLI执行以下命令生成短期有效令牌:
aws rds generate-db-auth-token --hostname <RDS实例端点> --port <PostgreSQL端口,默认5432> --username <数据库IAM认证用户名> --region <AWS区域>
生成的令牌是一串长字符串,复制保存(注意令牌有效期仅15分钟,过期需重新生成)
步骤2:配置DBeaver连接
- 打开DBeaver,新建PostgreSQL连接
- 在主选项卡填写基础信息:
- 主机:RDS实例端点地址
- 端口:5432(或你的自定义端口)
- 数据库:目标数据库名称
- 用户名:你指定的数据库IAM认证用户
- 切换到认证选项卡:
- 认证方式选择
Password - 在密码输入框粘贴刚才生成的IAM令牌
- 认证方式选择
- 切换到SSL选项卡:
- 勾选
使用SSL - SSL模式选择
verify-full(可根据RDS实例配置调整) - 若环境需要,下载AWS根证书并指定证书文件路径(多数情况下DBeaver默认信任AWS根证书)
- 勾选
- 点击测试连接,验证通过后保存连接配置
注意事项
- IAM令牌仅15分钟有效期,每次超时或重新连接都需重新生成
- 不要将令牌写入
.pgpass文件,因为令牌是短期一次性凭证 - 若使用IAM角色而非用户,确保本地AWS凭证能正确获取角色权限(比如EC2实例角色、AWS SSO等)
内容的提问来源于stack exchange,提问作者Jeroen Joris
相关产品推荐
相关产品推荐

