如何以编程方式进行身份验证并使用 psql 连接到我的 Aurora DSQL 集群?

问题描述 投票:0回答:1

我能够使用控制台获取身份验证令牌,但现在我尝试以编程方式进行连接,而无需使用控制台。

amazon-aurora
1个回答
0
投票

我想通了 - 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

© www.soinside.com 2019 - 2024. All rights reserved.