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

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

設定連線的安全選項

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

使用 SSL 連線

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

  • https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt 下載套件。

    • 預期的 MD5 檢查總和碼為 418dea9b6d5d5de7a8f1ac42e164cdcf。

    • sha256 檢查總和碼為 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550。

    請勿使用位於 https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt 的先前憑證套件。

  • 在中國 AWS 區域,請從以下位置下載此套件:https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt

    • 預期的 MD5 檢查總和碼為 418dea9b6d5d5de7a8f1ac42e164cdcf。

    • sha256 檢查總和碼為 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550。

    請勿使用位於 https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/redshift-ca-bundle.crthttps://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem 的先前憑證套件。

重要

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 模式,請true在與 Amazon Redshift 叢集或 Redshift 無伺服器工作群組關聯的參數群組中將參數和參數設定為。use_fips_ssl require_SSL如需有關修改叢集上參數群組的資訊,請參閱Amazon Redshift 參數群組。若要取得有關在工作群組上修改參數群組的資訊,請參閱設定與 Amazon Redshift 無伺服器的 FIPS 相容 SSL 連線

Amazon Redshift 支援 Elliptic Curve Diffie—Hellman Ephemeral (ECDHE) 金鑰協議通訊協定。使用 ECDHE 時,用戶端和伺服器各有橢圓曲線公有-私有金鑰對,用於透過不安全通道建立共用秘密。您不需要在 Amazon Redshift 中設定任何項目來啟用 ECDHE。如果您從 SQL 用戶端工具連線,而此工具使用 ECDHE 來加密用戶端和伺服器之間的通訊,Amazon Redshift 會使用提供的密碼清單來建立適當的連線。如需詳細資訊,請參閱 Wikipedia 上的 Elliptic curve diffie—hellman 和 OpenSSL 網站上的 Ciphers

在 ODBC 中使用 SSL 和信任 CA 憑證

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

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

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

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

  • disable

    停用 SSL,不加密連線。

  • allow

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

  • prefer

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

  • require

    需要 SSL。

  • verify-ca

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

  • verify-full

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

您可以判斷用戶端和伺服器之間的連線是否使用 SSL 及是否驗證伺服器憑證。若要執行此作業,您需要在用戶端檢閱 ODBC DSN 的 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 的相關資訊,請參閱設定 ODBC 連線

在 Java 中使用 SSL 和伺服器憑證

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

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

重要

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

使用信任 CA 憑證來連接

您可以使用該redshift-keytool.jar檔案將 Amazon Redshift 憑證授權單位服務包中的 CA 憑證匯入 Java TrustStore 或您的私 TrustStore有憑證。

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

  2. 下載 redshift-keytool.jar

  3. 執行以下任意一項:

    • 若要將 Amazon Redshift 憑證授權單位服務包匯入 Java TrustStore,請執行下列命令。

      java -jar redshift-keytool.jar -s
    • 若要將 Amazon Redshift 憑證授權單位服務包匯入您的私有伺服器 TrustStore,請執行下列命令:

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