本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
連線至您的資料庫叢集,方法為從命令列使用 IAM 身分驗證:AWS CLI 和 psql 用戶端
您可以使用 AWS CLI 和 psql 命令列工具,從命令列連線至 Aurora PostgreSQL 資料庫叢集,如下所述。
先決條件
以下是使用 IAM 身分驗證連線至資料庫叢集的先決條件:
注意
如需有關使用 pgAdmin 搭配 IAM 身分驗證連線到資料庫的資訊,請參閱部落格文章 使用 IAM 身分驗證與 pgAdmin Amazon Aurora PostgreSQL 或 Amazon RDS for PostgreSQL
產生 IAM 身分驗證字符
身分驗證字符由數百個字元組成,因此在命令列上可能會顯得雜亂。此問題的一個解決方法是將字符儲存到環境變數,然後在連接時使用該變數。以下程式碼範例顯示如何使用 AWS CLI 以 generate-db-auth-token
命令取得簽署的身分驗證字符,然後在 PGPASSWORD
環境變數中儲存該字符。
export RDSHOST="
mypostgres-cluster.cluster-123456789012.us-west-2.rds.amazonaws.com
" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port5432
--regionus-west-2
--usernamejane_doe
)"
在範例中,generate-db-auth-token
命令的參數如下所示:
-
--hostname
– 您想要存取之資料庫叢集 (叢集端點) 的主機名稱 -
--port
– 用於連線資料庫叢集的連接埠號碼 -
--region
– 執行資料庫叢集的 AWS 區域 -
--username
– 您想要存取的資料庫帳戶
所產生字符開頭的前幾個字元看起來如下所示。
mypostgres-cluster.cluster-123456789012.us-west-2.rds.amazonaws.com:5432/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
注意
您無法使用自訂 Route 53 DNS 記錄或 Aurora 自訂端點替代資料庫叢集端點來產生身分驗證字符。
連接至 Aurora PostgreSQL 叢集
使用 psql 連線的一般格式如下所示。
psql "host=
hostName
port=portNumber
sslmode=verify-full sslrootcert=full_path_to_ssl_certificate
dbname=DBName
user=userName
password=authToken
"
參數如下:
-
host
– 您想要存取之資料庫叢集 (叢集端點) 的主機名稱 -
port
– 用於連線資料庫叢集的連接埠號碼 -
sslmode
– 要使用的 SSL 模式當您使用
sslmode=verify-full
時,SSL 連線會根據 SSL 憑證中的端點來驗證資料庫叢集端點。 -
sslrootcert
– 包含公有金鑰之 SSL 憑證檔案的完整路徑如需更多詳細資訊,請參閱 使用 SSL/ 保護 Aurora PostgreSQL 資料TLS。
若要下載 SSL 憑證,請參閱使用 SSL/TLS 加密與資料庫叢集的連線。
-
dbname
– 您想要存取的資料庫 -
user
– 您想要存取的資料庫帳戶 -
password
– 已簽署的 IAM 身分驗證字符
注意
您無法使用自訂 Route 53 DNS 記錄或 Aurora 自訂端點替代資料庫叢集端點來產生身分驗證字符。
以下範例示範使用 psql 進行連線。在範例中,psql 針對主機使用環境變數 RDSHOST
,產生的字符則使用環境變數 PGPASSWORD
。此外,/sample_dir/
是包含公有金鑰之 SSL 憑證檔案的完整路徑。
export RDSHOST="
mypostgres-cluster.cluster-123456789012.us-west-2.rds.amazonaws.com
" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port5432
--regionus-west-2
--usernamejane_doe
)" psql "host=$RDSHOST port=5432
sslmode=verify-full sslrootcert=/sample_dir/
global-bundle.pem dbname=DBName
user=jane_doe
password=$PGPASSWORD"
如果要透過 Proxy 連線到資料庫叢集,請參閱 使用 IAM 身分驗證連線到代理。