SSL は、クライアントとサーバー間のネットワーク接続を安全に保つための業界標準のプロトコルです。SSL バージョン 3.0 以降は、名前が TLS と変更されていますが、いまだに SSL と呼称されることもよくあります。Amazon RDS は、Amazon RDS for Db2 DB インスタンス向けに SSL での暗号化をサポートしています。SSL/TLS を使用して、アプリケーションクライアントと RDS for Db2 DB インスタンス間の接続を暗号化できます。SSL/TLS サポートは、RDS for Db2 のすべての AWS リージョン で提供されています。
RDS for Db2 DB インスタンスの SSL/TLS 暗号化を有効するには、その DB インスタンスに関連付けられているパラメータグループに、Db2 SSL オプションを追加します。Db2 からの要求があるため、Amazon RDS では SSL/TLS 接続のために 2 番目のポートを使用しています。こうすることで、クリアテキストと SSL 暗号化の両方の通信を、DB インスタンスと Db2 クライアント間で同時に実行できます。例えば、このポートで SSL 暗号化通信を使用して VPC 外部のリソースと通信する一方で、このポートでクリアテキスト通信を使用して VPC 内の他のリソースと通信できます。
SSL/TLS 接続の作成
SSL/TLS 接続を作成するには、認証機関 (CA) を選択し、すべての AWS リージョンの証明書バンドルをダウンロードして、カスタムパラメータグループにパラメータを追加します。
ステップ 1: CA を選択して証明書をダウンロードする
認証機関 (CA) を選択し、すべての AWS リージョンの証明書バンドルをダウンロードします。詳細については、「SSL/TLS を使用した DB インスタンスまたはクラスターへの接続の暗号化」を参照してください。
ステップ 2: カスタムパラメータグループのパラメータを更新する
重要
RDS for Db2 に Bring-Your-Own-License (BYOL) モデルを使用している場合は、IBM Customer ID と IBM Site ID 用に作成したカスタムパラメータグループを変更します。RDS for Db2 に別のライセンスモデルを使用している場合は、手順に従ってカスタムパラメータグループにパラメータを追加します。詳細については、「Amazon RDS for Db2 のライセンスオプション」を参照してください。
RDS for Db2 DB インスタンスのデフォルトのパラメータグループを変更することはできません。したがって、カスタムパラメータグループを作成して変更し、それを RDS for Db2 DB インスタンスにアタッチする必要があります。パラメータグループの詳細については、「Amazon RDS DB インスタンスの DB パラメータグループ」を参照してください。
次の表のパラメータ設定を使用します。
パラメータ | 値 |
---|---|
DB2COMM |
TCPIP,SSL 、または SSL |
SSL_SVCENAME |
<any port number except the number used for the non-SSL
port> |
カスタムパラメータグループのパラメータを更新するには
-
create-db-parameter-group コマンドを実行して、カスタムパラメータグループを作成します。
次の必須パラメータを含めます。
-
--db-parameter-group-name
- 作成するパラメータグループの名前。 -
--db-parameter-group-family
- Db2 エンジンエディションとメジャーバージョン。有効な値:db2-se-11-5
、db2-ae-11.5
。 -
--description
- このパラメータグループの説明。
DB パラメータグループの作成の詳細については、「Amazon RDS での DB パラメータグループの作成」を参照してください。
-
-
modify-db-parameter-group コマンドを実行して、作成したカスタムパラメータグループのパラメータを変更します。
次の必須パラメータを含めます。
-
--db-parameter-group-name
– 作成したパラメータグループの名前。 -
--parameters
– パラメータ名、値、およびパラメータ更新用のアプリケーションメソッドの配列。
パラメータグループの変更の詳細については、「Amazon RDS の DB パラメータグループのパラメータの変更」を参照してください。
-
-
パラメータグループを RDS for Db2 DB インスタンスに関連付けます。詳細については、「Amazon RDS で DB パラメータグループを DB インスタンスに関連付ける」を参照してください。
Db2 データベースサーバーに接続する
Db2 データベースサーバーへの接続手順は言語によって異なります。
Java を使用して Db2 データベースサーバーに接続するには
-
JDBC ドライバーをダウンロードします。詳細については、IBM サポートドキュメントの「DB2 JDBC Driver Versions and Downloads
」を参照してください。 -
以下のコンテンツを使用して、シェルスクリプトファイルを作成します。このスクリプトによりは、バンドルのすべての証明書が Java KeyStore に追加されます。
重要
スクリプトが
keytool
を見つけることができるように、スクリプトのパス上に存在することを確認します。Db2 クライアントを使用する場合、keytool
は~sqlib/java/jdk64/jre/bin
にあります。#!/bin/bash PEM_FILE=$1 PASSWORD=$2 KEYSTORE=$3 # number of certs in the PEM file CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l) for N in $(seq 0 $(($CERTS - 1))); do ALIAS="${PEM_FILE%.*}-$N" cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }" | keytool -noprompt -import -trustcacerts -alias $ALIAS -keystore $KEYSTORE -storepass $PASSWORD done
-
シェルスクリプトを実行し、証明書バンドルを含む PEM ファイルを Java KeyStore にインポートするには、次のコマンドを実行します。
shell_file_name.sh
をシェルスクリプトファイルの名前に置き換え、password
を Java KeyStore のパスワードに置き換えます。./
shell_file_name.sh
global-bundle.pempassword
truststore.jks -
Db2 サーバーに接続するには、次のコマンドを実行します。例の次のプレースホルダーを RDS for Db2 DB インスタンス情報に置き換えます。
-
ip_address
– DB インスタンスエンドポイントの IP アドレス。 -
port
– SSL 接続のポート番号。これは、SSL 以外のポートに使用される番号を除く任意のポート番号にすることができます。 -
database_name
– DB インスタンス内のデータベースの名前。 -
master_username
– DB インスタンスのマスターユーザー名。 -
master_password
– DB インスタンスのマスターパスワード。
export trustStorePassword=MyPassword java -cp ~/dsdriver/jdbc_sqlj_driver/linuxamd64/db2jcc4.jar \ com.ibm.db2.jcc.DB2Jcc -url \ "jdbc:db2://
ip_address
:port
/database_name
:\ sslConnection=true;sslTrustStoreLocation=\ ~/truststore.jks;\ sslTrustStorePassword=${trustStorePassword};\ sslVersion=TLSv1.2;\ encryptionAlgorithm=2;\ securityMechanism=7;" \ -usermaster_username
-passwordmaster_password
-