本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Aurora DSQL 連線設定 SSL/TLS 憑證
Aurora DSQL 要求所有連線使用 Transport Layer Security (TLS) 加密。若要建立安全連線,您的用戶端系統必須信任 Amazon 根憑證認證機構 (Amazon 根 CA 1)。此憑證已預先安裝在許多作業系統。本節說明如何驗證各種作業系統預先安裝的 Amazon 根 CA 1 憑證,並在沒有安裝憑證的情況下,引導您完成手動安裝憑證的程序。
我們建議使用 PostgreSQL 17 版。
重要
對於正式作業環境,我們建議使用 verify-full SSL 模式以確保最高層級的連線安全性。此模式會驗證伺服器憑證是否由信任的憑證認證機構簽署,以及伺服器主機名稱是否與憑證相符。
驗證預先安裝的憑證
在大多數作業系統中,Amazon 根 CA 1 已預先安裝。若需驗證,您可以遵循下列步驟。
Linux (RedHat/CentOS/Fedora)
在終端中執行下列命令:
trust list | grep "Amazon Root CA 1"
如果已安裝憑證,您會看到下列輸出內容:
label: Amazon Root CA 1
macOS
-
開啟 Spotlight 搜尋 (命令 + 空格)
-
搜尋鑰匙圈存取
-
選擇系統鑰匙圈之下的系統根目錄
-
在憑證清單中尋找 Amazon 根 CA 1
Windows
注意
由於 psql Windows 用戶端的已知問題,使用系統根憑證 (sslrootcert=system) 可能會傳回下列錯誤:SSL error: unregistered scheme。您可以遵循 從 Windows 進行連線 作為使用 SSL 連線至叢集的替代方法。
如果您的作業系統並未安裝 Amazon 根 CA 1,請遵循下列步驟。
安裝憑證
如果 Amazon Root CA 1 憑證未預先安裝在您的作業系統上,您將需要手動安裝憑證,才能與 Aurora DSQL 叢集建立安全連線。
Linux 憑證安裝
請依照下列步驟在 Linux 系統安裝 Amazon 根 CA 憑證。
-
下載根憑證:
wget https://www.amazontrust.com/repository/AmazonRootCA1.pem -
將憑證複製到信任存放區:
sudo cp ./AmazonRootCA1.pem /etc/pki/ca-trust/source/anchors/ -
更新 CA 信任存放區:
sudo update-ca-trust -
驗證安裝:
trust list | grep "Amazon Root CA 1"
macOS 憑證安裝
這些憑證安裝步驟為選用。Linux 憑證安裝 也適用於 macOS。
-
下載根憑證:
wget https://www.amazontrust.com/repository/AmazonRootCA1.pem -
將憑證新增至系統鑰匙圈:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain AmazonRootCA1.pem -
驗證安裝:
security find-certificate -a -c "Amazon Root CA 1" -p /Library/Keychains/System.keychain
以 SSL/TLS 驗證連線
在設定 SSL/TLS 憑證以安全連線至 Aurora DSQL 叢集之前,請先確定您符合下列先決條件。
-
已安裝 PostgreSQL 第 17 版
-
AWS CLI 使用適當的登入資料設定
-
Aurora DSQL 叢集端點資訊
從 Linux 連線
-
產生並設定身分驗證記號:
export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region--hostnameyour-cluster-endpoint) -
使用系統憑證進行連線 (如果預先安裝):
PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --hostyour-cluster-endpoint -
或者使用下載的憑證進行連線:
PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --hostyour-cluster-endpoint
從 macOS 連線
-
產生並設定身分驗證記號:
export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region--hostnameyour-cluster-endpoint) -
使用系統憑證進行連線 (如果預先安裝):
PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --hostyour-cluster-endpoint -
或者下載根憑證並將其儲存為
root.pem(如果未預先安裝憑證)PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint -
使用 psql 進行連線:
PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint
從 Windows 進行連線
使用命令提示
-
產生身分驗證記號:
aws dsql generate-db-connect-admin-auth-token ^ --region=your-cluster-region^ --expires-in=3600 ^ --hostname=your-cluster-endpoint -
設定密碼環境變數:
set "PGPASSWORD=token-from-above" -
設定 SSL 組態:
set PGSSLROOTCERT=C:\full\path\to\root.pem set PGSSLMODE=verify-full -
連線至資料庫:
"C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ^ --username admin ^ --hostyour-cluster-endpoint
使用 PowerShell
-
產生並設定身分驗證記號:
$env:PGPASSWORD = (aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region--expires-in=3600 --hostname=your-cluster-endpoint) -
設定 SSL 組態:
$env:PGSSLROOTCERT='C:\full\path\to\root.pem' $env:PGSSLMODE='verify-full' -
連線至資料庫:
"C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ` --username admin ` --hostyour-cluster-endpoint