設定連線的安全選項 - Amazon Redshift

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

設定連線的安全選項

Amazon Redshift 支援 Secure Sockets Layer (SSL) 連線來加密資料和伺服器憑證,以驗證用戶端連線的伺服器憑證。

SSL

為了支援SSL連線,Amazon Redshift 會在每個叢集上建立並安裝 AWS Certificate Manager (ACM) 發行的SSL憑證。ACM 憑證受到大多數作業系統、網頁瀏覽器和用戶端的公開信任。如果您的SQL用戶端或應用程式使用 連線至 Amazon Redshift,SSL且sslmode連線選項設定為 require、 或 verify-ca,您可能需要下載憑證套件verify-full。如果用戶端需要憑證,Amazon Redshift 會提供如下的憑證套件:

重要

Amazon Redshift 已變更管理SSL憑證的方式。您可能需要更新目前的信任根 CA 憑證,才能繼續使用 連線到叢集SSL。如需詳細資訊,請參閱轉換至SSL連線的ACM憑證

根據預設,叢集資料庫接受連線SSL,無論是否使用。若要將叢集設定為需要SSL連線,請在與叢集相關聯的require_SSL參數群組true中將 參數設定為 。

Amazon Redshift 支援符合美國聯邦資訊處理標準 (FIPS) 140-2 的SSL模式。FIPS預設會停用 合規SSL模式。

重要

只有在系統需要 FIPS合規時,才啟用 FIPS合規SSL模式。

若要啟用 FIPS合規SSL模式,請在與 Amazon Redshift 叢集或 Redshift Serverless 工作群組相關聯的require_SSL參數群組true中,將 use_fips_ssl 參數和 參數設定為 。如需在叢集上修改參數群組的相關資訊,請參閱 Amazon Redshift 參數群組。如需在工作群組上修改參數群組的相關資訊,請參閱 設定FIPS與 Amazon Redshift Serverless 相容的SSL連線

Amazon Redshift 支援橢圓曲線 Diffie—Hellman Ephemeral (ECDHE) 金鑰協議通訊協定。透過 ECDHE,用戶端和伺服器每個都有橢圓曲線公有私有金鑰對,用於在不安全的頻道上建立共用密碼。您不需要在 Amazon Redshift 中設定任何項目來啟用 ECDHE。如果您從ECDHE用來加密用戶端與伺服器之間通訊的SQL用戶端工具連線,Amazon Redshift 會使用提供的密碼清單進行適當的連線。如需詳細資訊,請參閱 OpenSSL 網站上的橢圓曲線 diffie—Wikipedia 和 Ciphers 上的 Hellmanhttps://www.openssl.org/

SSL 和 中的信任 CA 憑證 ODBC

如果您使用最新的 Amazon Redshift ODBC驅動程式 (1.3.7.1000 版或更新版本) 連線,您可以略過本節。若要下載最新的驅動程式,請參閱針對 Amazon Redshift 設定ODBC驅動程式 2.x 版的連線

您可能需要更新目前的信任根 CA 憑證,才能繼續使用 連線到叢集SSL。如需詳細資訊,請參閱SSL

您可以驗證下載的憑證是否符合預期的總MD5和檢查碼。若要執行此動作,您可以在 Linux 作業系統上使用 Md5sum 程式,或在 Windows 和 macOS X 作業系統上使用其他工具。

ODBC DSNs 包含 sslmode設定,決定如何處理用戶端連線和伺服器憑證驗證的加密。Amazon Redshift 支援來自用戶端連線的下列 sslmode 值:

  • disable

    SSL 已停用,且連線未加密。

  • allow

    SSL 如果伺服器需要,則會使用 。

  • prefer

    SSL 如果伺服器支援 ,則會使用 。Amazon Redshift 支援 SSL,因此當您sslmode設定為 時SSL, 會使用 prefer

  • require

    SSL 為必要項目。

  • verify-ca

    SSL 必須使用 ,且必須驗證伺服器憑證。

  • verify-full

    SSL 必須使用。必須驗證伺服器憑證,且伺服器主機名稱必須符合憑證上的主機名稱屬性。

您可以判斷SSL是否使用 ,並在用戶端與伺服器之間的連線中驗證伺服器憑證。若要這麼做,您需要檢閱用戶端ODBCDSN上 的 sslmode 設定,以及伺服器上 Amazon Redshift 叢集require_SSL的設定。下表描述各種用戶端和伺服器設定組合的加密結果:

sslmode (用戶端) require_SSL (伺服器) 結果
disable false 不加密連線。
disable true 無法建立連線,因為伺服器需要 ,SSL且用戶端已停用SSL連線。
allow true 加密連線。
allow false 不加密連線。
preferrequire true 加密連線。
preferrequire false 加密連線。
verify-ca true 加密連線且驗證伺服器憑證。
verify-ca false 加密連線且驗證伺服器憑證。
verify-full true 加密連線且驗證伺服器憑證,並驗證主機名稱。
verify-full false 加密連線且驗證伺服器憑證,並驗證主機名稱。

在 Microsoft Windows 上使用伺服器憑證與 ODBC連線

如果您想要使用 SSL和伺服器憑證連線至叢集,請先將憑證下載至用戶端電腦或 Amazon EC2執行個體。然後設定 ODBC DSN。

  1. 將 Amazon Redshift 憑證授權機構套件下載到用戶端電腦驅動程式安裝目錄中的 lib 資料夾,並將檔案儲存為 root.crt。如需下載資訊,請參閱 SSL

  2. 開啟ODBC資料來源管理員 ,並新增或編輯ODBC連線的系統DSN項目。對於SSL模式 ,除非您使用別名,verify-full否則請選取 DNS 。如果您使用DNS別名,請選取 verify-ca。然後選擇 Save (儲存)。

    如需設定 ODBC 的詳細資訊DSN,請參閱 針對 Amazon Redshift 設定ODBC驅動程式 2.x 版的連線

SSL Java 中的 和 伺服器憑證

SSL 透過加密用戶端和叢集之間移動的資料,提供一層安全保護。使用伺服器憑證可透過驗證叢集是否為 Amazon Redshift 叢集來提供額外一層的安全。在作法上是檢查您佈建的所有叢集上自動安裝的伺服器憑證。如需搭配 使用伺服器憑證的詳細資訊JDBC,請前往 PostgreSQL 文件中的設定用戶端

在 Java 中使用信任 CA 憑證進行連線

重要

Amazon Redshift 已變更管理SSL憑證的方式。您可能需要更新目前的信任根 CA 憑證,才能繼續使用 連線到叢集SSL。如需詳細資訊,請參閱SSL

使用信任 CA 憑證來連接

您可以使用 redshift-keytool.jar 檔案,將 Amazon Redshift Certificate Authority 套件中的 CA 憑證匯入 Java TrustStore 或私有 TrustStore。

  1. 如果您使用 Java 命令列 -Djavax.net.ssl.trustStore 選項,可能的話,請從命令列中移除。

  2. 下載 redshift-keytool.jar

  3. 執行以下任意一項:

    • 若要將 Amazon Redshift Certificate Authority 套件匯入 Java TrustStore,請執行下列命令。

      java -jar redshift-keytool.jar -s
    • 若要將 Amazon Redshift Certificate Authority 套件匯入您的私有 TrustStore,請執行下列命令:

      java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password>