RDS for MySQL は、データベースプロキシエンドポイントの Secure Sockets Layer (SSL) 暗号化をサポートしています。SSL暗号化を有効にし、ご利用のアプリケーションにSSL CA証明書をインストールすることで、接続セキュリティを向上させることができます。このトピックでは、データベースプロキシエンドポイントのSSL暗号化を設定する方法について説明します。
SSLは、トランスポート層でネットワーク接続を暗号化します。これにより、転送中のデータセキュリティと整合性が向上しますが、応答時間も増加します。
前提条件
Milvus バージョンは以下のとおりです。
マイナーエンジンバージョンが20200831以降のRDS High-availability Edition上のMySQL 8.0
MySQL 8.0 Cluster Edition
MySQL 5.7 Cluster Edition
マイナーエンジンバージョンが20200831以降のRDS High-availability Edition上のMySQL 5.7
マイナーエンジンバージョンが20200831以降のRDS High-availability Edition上のMySQL 5.6
説明ご利用のRDSインスタンスに読み取り専用インスタンスがある場合、その読み取り専用インスタンスもマイナーエンジンバージョンの要件を満たしている必要があります。
データベースプロキシ機能が有効になっていること。詳細については、「データベースプロキシ機能の有効化」をご参照ください。
PolarProxy マイナーエンジンバージョンが2.25.3以降であること。
SSL暗号化で保護するデータベースプロキシエンドポイントの全長が64文字を超えないこと。
注意事項
プロキシインスタンスごとに、1つのデータベースプロキシエンドポイントに対してのみSSL暗号化を設定できます。
SSL暗号化の有効化、SSL暗号化の無効化、保護されたエンドポイントの変更、または証明書の有効期間の更新を行うと、プロキシインスタンスが再起動します。慎重に進めてください。
SSL暗号化の有効化
この操作によりプロキシインスタンスが再起動します。慎重に進めてください。
RDSインスタンスページに移動します。上部のナビゲーションバーで、ご利用のRDSインスタンスが存在するリージョンを選択します。次に、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、[データベースプロキシ] をクリックします。
[接続情報] セクションで、ターゲットデータベースプロキシエンドポイントの ID にポインターを合わせます。 表示されるダイアログボックスの [SSL 設定] セクションで、[SSL 証明書] の右側にある [有効化] をクリックします。
表示されるダイアログボックスで、暗号化するエンドポイントを選択し、[OK] をクリックします。
SSL ステータスが [有効] に変更されたら、[SSL 証明書] の右側にある [CA 証明書のダウンロード] をクリックします。
説明ダウンロードされるファイルは、以下のファイルを含む圧縮パッケージです。
PEMファイル: ほとんどのシナリオに適しています。
JKSファイル: Javaアプリケーションに必要です。PEM形式のCA証明書をトラストストアにインポートし、Javaアプリケーションで使用するためにJKSファイルに変換する必要があります。JKSファイルのパスワードはapsaradbです。
P7Bファイル: PKCS #7証明書ファイルを必要とする少数のWindowsアプリケーションに適しています。
SSL CA証明書を設定した後、データベースサーバー証明書を検証できます。
JDK 7またはJDK 8でJKS証明書ファイルを使用する場合、ご利用のアプリケーションが実行されるホスト上の
jre/lib/security/java.securityファイルに移動し、以下の2つの設定項目を更新します。jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224 jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024これらの設定を更新しない場合、以下のエラーが報告されます。同様のほとんどのエラーも、不正確なJavaセキュリティ設定が原因です。
javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints
SSL CA証明書の設定
SSL暗号化を有効にしてCA証明書をダウンロードした後、証明書を設定する必要があります。詳細については、「CA証明書の設定」をご参照ください。
SSL暗号化アドレスの変更
この操作により、証明書の有効期間が更新され、プロキシインスタンスが再起動します。慎重に進めてください。
インスタンスページに移動します。上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。次に、RDSインスタンスを見つけて、インスタンスのIDをクリックします。
左側のナビゲーションウィンドウで、データベースプロキシ をクリックします。
[接続情報]セクションで、対象のデータベースプロキシエンドポイントの ID にカーソルを合わせます。表示されるダイアログボックスの[SSL 設定]セクションで、[保護されたエンドポイント]の下にある[保護されたエンドポイントの変更]をクリックします。
暗号化するエンドポイントを選択し、[OK] をクリックします。
証明書の有効期間の更新
この操作によりプロキシインスタンスが再起動します。慎重に進めてください。
インスタンスページに移動します。上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。次に、RDSインスタンスを見つけて、インスタンスのIDをクリックします。
左側のナビゲーションウィンドウで、データベースプロキシ をクリックします。
「接続情報」セクションで、対象データベースプロキシエンドポイントの ID の上にマウスを移動して表示します。表示されるダイアログボックスの「SSL 設定」セクションで、「SSL 証明書」の右側にある「有効期限の更新」をクリックします。表示されるダイアログボックスで、「OK」をクリックします。
SSL暗号化の無効化
Secure Sockets Layer (SSL) 暗号化を無効にすると、インスタンスが再起動します。慎重に進めてください。
インスタンスページに移動します。上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。次に、RDSインスタンスを見つけて、インスタンスのIDをクリックします。
左側のナビゲーションウィンドウで、データベースプロキシ をクリックします。
[接続情報] セクションで、ターゲットデータベースプロキシエンドポイントの ID にカーソルを合わせます。 表示されるダイアログボックスの [SSL 設定] セクションで、[SSL 証明書] の右側にある [無効化] をクリックします。 表示されるダイアログボックスで、[OK] をクリックします。
関連 API
API | 説明 |
データベースプロキシエンドポイントのSSL暗号化を設定します。 | |
データベースプロキシエンドポイントのSSL暗号化設定を照会します。 |
付録
SSL経由でデータベースに接続するためのサンプルコード
詳細については、「SSL経由でデータベースに接続するためのサンプルコード」をご参照ください。
SSL暗号化に関するよくある質問
詳細については、「SSL暗号化に関するよくある質問」をご参照ください。