如何通过psql以编程方式认证并连接Aurora DSQL集群?
如何不依赖DSQL控制台,以编程方式连接Aurora DSQL集群
之前我通过DSQL控制台获取认证令牌就能连接Aurora DSQL集群,但现在想脱离控制台,完全用编程方式实现连接。目前我用以下psql命令,每次都得在密码提示时手动输入令牌:
PGSSLMODE=require \ psql --dbname postgres \ --username admin \ --host redacted
解决方案:用AWS CLI生成令牌并自动传入psql
可以直接通过AWS CLI生成Aurora DSQL的认证令牌,再把它作为密码参数传给psql,全程无需手动操作,步骤如下:
- 先配置好AWS CLI:确保你的AWS CLI已经配置了拥有Aurora DSQL访问权限的凭证(用
aws configure就能完成配置)。 - 生成认证令牌:执行下面的命令生成令牌,记得把
redacted换成你的集群实际主机地址,端口如果不是默认的5432也要对应修改:
TOKEN=$(aws rds generate-db-auth-token \ --hostname redacted \ --port 5432 \ --username admin)
- 自动连接集群:把生成的令牌作为密码传入psql,有两种方式:
方式一:通过--password参数传递
方式二:通过环境变量PGSSLMODE=require \ psql --dbname postgres \ --username admin \ --host redacted \ --password "$TOKEN"PGPASSWORD传递PGSSLMODE=require \ PGPASSWORD="$TOKEN" \ psql --dbname postgres \ --username admin \ --host redacted
这样就能实现纯编程式连接,不用再依赖控制台获取令牌,也不需要手动输入密码了。
内容的提问来源于stack exchange,提问作者brack
相关产品推荐
相关产品推荐

