接続のセキュリティオプションを設定する
Amazon Redshift では Secure Sockets Layer (SSL) 接続がサポートされているため、データとサーバー証明書を暗号化でき、クライアントが接続するサーバー証明書を検証できます。
SSL
SSL 接続をサポートするために、Amazon Redshift では、AWS Certificate Manager(ACM)sslmode
接続オプションをrequire
、verify-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.rproxy.goskope.com.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt
からバンドルをダウンロードします。 -
予想される MD5 チェックサム番号は 418dea9b6d5d5de7a8f1ac42e164cdcf です。
-
sha256 のチェックサム番号は 36dba8e4b8041cd14b9d60158893963301bcb92e1c456847784de2acb5bd550 です。
https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ca-bundle.crt
およびhttps://s3---cn-north-1.amazonaws.com.rproxy.goskope.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 モードを有効にするには、Amazon Redshift クラスターまたは Redshift Serverless ワークグループに関連付けたパラメータグループで、use_fips_ssl
パラメータと require_SSL
パラメータの両方を true
に設定します。クラスターのパラメータグループの変更については、「Amazon Redshift パラメータグループを作成します。」を参照してください。ワークグループのパラメータグループの変更については、「Amazon Redshift Serverless への FIPS 準拠の SSL 接続の設定 」を参照してください。
Amazon Redshift では、Elliptic Curve Diffie—Hellman Ephemeral (ECDHE) 鍵契約プロトコルがサポートされます。ECDHE を使用すると、クライアントとサーバーはそれぞれ、安全でないチャネルを介して共有シークレットを確立するために使用される楕円曲線パブリック/プライベートキーペアを持ちます。ECDHE を有効にするために、Amazon Redshift で設定を行う必要はありません。ECDHE を使用してクライアント/サーバー間の通信を暗号化する SQL クライアントツールから接続する場合、Amazon Redshift は提供された暗号リストを使用して適切な接続を行います。詳細については、ウィキペディアの Elliptic curve diffie—hellman
ODBC の SSL および信頼 CA 証明書
最新の Amazon Redshift ODBC ドライバー (バージョン 1.3.7.1000 以降) を使用して接続している場合は、このセクションをスキップします。最新のドライバーをダウンロードする方法は、「Amazon Redshift での ODBC ドライバーのバージョン 2.x による接続の設定」を参照してください。
引き続き SSL でクラスターに接続するには、現在の信頼ルート CA 証明書を更新する必要があります。詳細については、「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 |
接続は暗号化されません。 |
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 を設定します。
-
Amazon Redshift の認定権限バンドルを、ドライバーのインストールディレクトリ内の
lib
フォルダでクライアントコンピュータにダウンロードし、ファイルをroot.crt
として保存します。ダウンロード情報については、「SSL」を参照してください。 -
[ODBC Data Source Administrator (ODBC データソース管理者)] を開き、ODBC 接続のシステム DSN エントリを追加または編集します。DNS エイリアスを使用する場合を除き、[SSL Mode (SSL モード)] で [
verify-full
] を選択します。DNS エイリアスを使用する場合は、[verify-ca
] を選択します。次に、[Save ] を選択します。ODBC DSN の設定方法の詳細については、「Amazon Redshift での ODBC ドライバーのバージョン 2.x による接続の設定」を参照してください。
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
ファイルを使用します。
-
Java コマンドラインの
-Djavax.net.ssl.trustStore
オプションを使用している場合は、可能であればコマンドラインから解除します。 -
redshift-keytool.jar
をダウンロードします。 -
次のいずれかを行ってください。
-
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>
-