為 Aurora DSQL 連線設定 SSL/TLS 憑證 - Amazon Aurora DSQL

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為 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

  1. 開啟 Spotlight 搜尋 (命令 + 空間)

  2. 搜尋金鑰鏈存取

  3. 選取系統金鑰鏈下的系統根目錄

  4. 在憑證清單中尋找 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 憑證。

  1. 下載根憑證:

    wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
  2. 將憑證複製到信任存放區:

    sudo cp ./AmazonRootCA1.pem /etc/pki/ca-trust/source/anchors/
  3. 更新 CA 信任存放區:

    sudo update-ca-trust
  4. 驗證安裝:

    trust list | grep "Amazon Root CA 1"

macOS 憑證安裝

這些憑證安裝步驟是選用的。Linux 憑證安裝 也適用於 macOS。

  1. 下載根憑證:

    wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
  2. 將憑證新增至系統金鑰鏈:

    sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain AmazonRootCA1.pem
  3. 驗證安裝:

    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 連線

  1. 產生並設定身分驗證字符:

    export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --hostname your-cluster-endpoint)
  2. 使用系統憑證進行連線 (如果預先安裝):

    PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
  3. 或者,使用下載的憑證進行連線:

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
注意

如需 PGSSLMODE 設定的詳細資訊,請參閱 PostgresQL 17 資料庫連線控制函數文件中的 sslmode

從 macOS 連線

  1. 產生並設定身分驗證字符:

    export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --hostname your-cluster-endpoint)
  2. 使用系統憑證連線 (如果預先安裝):

    PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
  3. 或者,下載根憑證並將其儲存為 root.pem(如果未預先安裝憑證)

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint
  4. 使用 psql 連線:

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint

從 Windows 連線

使用命令提示字元

  1. 產生身分驗證字符:

    aws dsql generate-db-connect-admin-auth-token ^ --region=your-cluster-region ^ --expires-in=3600 ^ --hostname=your-cluster-endpoint
  2. 設定密碼環境變數:

    set "PGPASSWORD=token-from-above"
  3. 設定 SSL 組態:

    set PGSSLROOTCERT=C:\full\path\to\root.pem set PGSSLMODE=verify-full
  4. 連線至資料庫:

    "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ^ --username admin ^ --host your-cluster-endpoint

使用 PowerShell

  1. 產生並設定身分驗證字符:

    $env:PGPASSWORD = (aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --expires-in=3600 --hostname=your-cluster-endpoint)
  2. 設定 SSL 組態:

    $env:PGSSLROOTCERT='C:\full\path\to\root.pem' $env:PGSSLMODE='verify-full'
  3. 連線至資料庫:

    "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ` --username admin ` --host your-cluster-endpoint

其他資源