本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 Aurora DSQL 連線設定 SSL/TLS 憑證
Aurora DSQL 需要所有連線才能使用 Transport Layer Security (TLS) 加密。若要建立安全連線,您的用戶端系統必須信任 Amazon 根憑證授權機構 (Amazon Root CA 1)。此憑證已預先安裝在許多作業系統上。本節提供在各種作業系統上驗證預先安裝的 Amazon Root CA 1 憑證的說明,並引導您完成手動安裝憑證的程序。
建議使用 PostgreSQL 第 17 版。
重要
對於生產環境,建議使用 verify-full
SSL 模式以確保最高層級的連線安全性。此模式會驗證伺服器憑證是否由信任的憑證授權單位簽署,以及伺服器主機名稱是否與憑證相符。
驗證預先安裝的憑證
在大多數作業系統中,Amazon Root 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 Root CA 1,請遵循下列步驟。
安裝憑證
如果Amazon Root CA 1
憑證未預先安裝在您的作業系統上,您將需要手動安裝憑證,以建立與 Aurora DSQL 叢集的安全連線。
Linux 憑證安裝
請依照下列步驟,在 Linux 系統上安裝 Amazon Root 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 \ --host
your-cluster-endpoint
-
或者,使用下載的憑證進行連線:
PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host
your-cluster-endpoint
注意
如需 PGSSLMODE 設定的詳細資訊,請參閱 PostgresQL 17 資料庫連線控制函數文件中的
從 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 \ --host
your-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 ^ --host
your-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 ` --host
your-cluster-endpoint