我能够使用控制台获取身份验证令牌,但现在我尝试以编程方式进行连接,而无需使用控制台。
我想通了 - AWS CLI 提供了令牌生成方法:
aws dsql generate-db-connect-admin-auth-token \
--region us-east-1 \
--expires-in 3600 \
--hostname redacted
然后,我可以将其与
psql
一起使用
PGSSLMODE=require \
psql --dbname postgres \
--username admin \
--host redacted
当系统提示我输入密码时,我粘贴了之前生成的令牌并连接。
为了使将来更容易,我编写了一些“psql-ish”shell 脚本。
#!/bin/bash
# connect to Aurora DSQL in a psql-ish way
# TL;DR - generate auth token with AWS CLI and use psql to connect to the cluster
if [ "$#" -ne 1 ]; then echo "Missing Endpoint. Usage: $0 Endpoint" >&2 && exit 1; fi
ENDPOINT_REGION=$(echo $1 | cut -d "." -f 3)
export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token \
--region us-east-1 \
--expires-in 3600 \
--hostname $1)
export PGSSLMODE=require
psql --host $1 \
--username admin \
--dbname postgres \
--quiet
用法:
./admin-psqli.sh foo0bar1baz2quux3quuux4.dsql.us-east-1.on.aws