接続のセキュリティオプションを設定する - Amazon Redshift

接続のセキュリティオプションを設定する

Amazon Redshift では Secure Sockets Layer (SSL) 接続がサポートされているため、データとサーバー証明書を暗号化でき、クライアントが接続するサーバー証明書を検証できます。

SSL を使用して接続する

SSL 接続をサポートするために、Amazon Redshift では、AWS Certificate Manager(ACM) によって発行された SSL 証明書を作成して各クラスターにインストールします。ACM 証明書は、ほとんどのオペレーションシステム、ウェブブラウザ、およびクライアントから公的に信頼されています。SQL クライアントまたはアプリケーションが、sslmode接続オプションをrequireverify-ca、またはverify-fullに設定した SSL を使用して Amazon Redshift に接続する場合は、証明書バンドルをダウンロードする必要があるかもしれません。クライアントが証明書を必要とする場合、Amazon Redshift は以下のようにバンドル証明書を提供します。

  • https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crtからバンドルをダウンロードします。

    • 予想される MD5 チェックサム番号は 418dea9b6d5d5de7a8f1ac42e164cdcf です。

    • sha256 のチェックサム番号は 36dba8e4b8041cd14b9d60158893963301bcb92e1c456847784de2acb5bd550 です。

    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 のチェックサム番号は 36dba8e4b8041cd14b9d60158893963301bcb92e1c456847784de2acb5bd550 です。

    https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/redshift-ca-bundle.crtおよびhttps://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pemにあった以前の証明書バンドルは使用しないでください。

重要

Amazon Redshift は、SSL 証明書の管理方法を変更しました。引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「SSL 接続用 ACM 証明書への移行」を参照してください。

デフォルトでは、クラスターデータベースは SSL の使用の有無にかかわらず接続を受け入れます。クラスターが SSL 接続を要求するように設定するには、クラスターに関連付けられているパラメータグループで require_SSL パラメータを true に設定します。

Amazon Redshift は、連邦情報処理標準 (FIPS) 140-2 に準拠する SSL モードをサポートしています。FIPS 準拠 SSL モードはデフォルトで無効化されています。

重要

システムが FIPS に準拠する必要がある場合のみ、FIPS 準拠の SSL モードを有効にします。

FIPS 準拠の SSL モードを有効にするには、クラスターに関連付けられたパラメータグループで use_fips_ssl パラメータと require_SSL パラメータの両方を true に設定します。パラメータグループの変更については、「Amazon Redshift パラメータグループを作成します。」を参照してください。

Amazon Redshift では、Elliptic Curve Diffie—Hellman Ephemeral (ECDHE) 鍵契約プロトコルがサポートされます。ECDHE を使用すると、クライアントとサーバーはそれぞれ、安全でないチャネルを介して共有シークレットを確立するために使用される楕円曲線パブリック/プライベートキーペアを持ちます。ECDHE を有効にするために、Amazon Redshift で設定を行う必要はありません。ECDHE を使用してクライアント/サーバー間の通信を暗号化する SQL クライアントツールから接続する場合、Amazon Redshift は提供された暗号リストを使用して適切な接続を行います。詳細については、ウィキペディアの Elliptic curve diffie—hellman と OpenSSL ウェブサイトの Ciphers を参照してください。

ODBC で SSL および信頼 CA 証明書を使用する

最新の Amazon Redshift ODBC ドライバー (バージョン 1.3.7.1000 以降) を使用して接続している場合は、このセクションをスキップします。最新のドライバーをダウンロードする方法は、「ODBC 接続の設定」を参照してください。

引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「SSL を使用して接続する」を参照してください。

ダウンロードした証明書が、予想される MD5 チェックサム番号と一致していることを確認できます。これを行うには、Linux オペレーティングシステムではMd5sumプログラムを使用するか、Windows および macOS X オペレーティングシステムでは別のツールを使用できます。

ODBC DSN には、クライアント接続の暗号化処理方法とサーバー証明書の検証を決定する sslmode 設定が含まれます。Amazon Redshift では、クライアント接続から次の sslmode 値をサポートします。

  • disable

    SSL は無効となり、接続は暗号化されません。

  • allow

    SSL は、サーバーで必要な場合に使用されます。

  • prefer

    SSL は、サーバーでサポートされている場合に使用されます。Amazon Redshift は SSL をサポートしているため、sslmodeprefer に設定すると 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 接続は暗号化されません。
prefer、または require true 接続は暗号化されます。
prefer、または require 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 Data Source Administrator (ODBC データソース管理者)] を開き、ODBC 接続のシステム DSN エントリを追加または編集します。DNS エイリアスを使用する場合を除き、[SSL Mode (SSL モード)] で [verify-full] を選択します。DNS エイリアスを使用する場合は、[verify-ca] を選択します。次に、[Save ] を選択します。

    ODBC DSN の設定方法の詳細については、「ODBC 接続の設定」を参照してください。

Java で SSL およびサーバー証明書を使用する

SSL は、クライアントとクラスター間を移動するデータを暗号化することによりセキュリティを強化します。サーバー証明書の使用により、クラスターが Amazon Redshift クラスターであることが確認され、セキュリティがさらに強化されます。これを行うには、プロビジョニングしたすべてのクラスターに自動インストールされたサーバー証明書をチェックします。JDBC でサーバー証明書を使用する方法の詳細については、PostgreSQL ドキュメントの「Configuring the Client」を参照してください。

Java で信頼 CA 証明書を使用して接続する

重要

Amazon Redshift は、SSL 証明書の管理方法を変更しました。引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「SSL を使用して接続する」を参照してください。

信頼 CA 証明書を使用して接続するには

Amazon Redshift 認証機関バンドルの CA 証明書を Java トラストストアまたはプライベートトラストストアにインポートするには、redshift-keytool.jar ファイルを使用します。

  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>