ApsaraDB RDS for MySQLは、データベースプロキシエンドポイントのSSL暗号化をサポートしています。 SSL暗号化機能を有効にし、アプリケーションにSSL証明書をインストールして、RDSインスタンスの接続セキュリティを向上させることができます。 このトピックでは、データベースプロキシエンドポイントのSSL暗号化を設定する方法について説明します。
SSLは、RDSインスタンスとアプリケーション間のトランスポート層でネットワーク接続を暗号化します。 これにより、転送中のデータのセキュリティと整合性が向上しますが、応答時間が長くなります。
前提条件
RDSインスタンスは、次のいずれかのMySQLバージョンを実行します。
RDS High-availability Editionの20200831以降のマイナーエンジンバージョンを使用したMySQL 8.0
RDSクラスターエディションのMySQL 8.0
RDSクラスターエディションのMySQL 5.7
RDS High-availability Editionの20200831以降のマイナーエンジンバージョンを使用したMySQL 5.7
RDS High-availability Editionの20200831以降のマイナーエンジンバージョンを使用したMySQL 5.6
説明RDSインスタンスに読み取り専用RDSインスタンスがアタッチされている場合、読み取り専用RDSインスタンスは、「マイナーエンジンバージョンの更新」で説明されている要件を満たしている必要があります。
データベースプロキシ機能が有効になっています。 詳細については、「データベースプロキシ機能の有効化」をご参照ください。
データベースプロキシのバージョンは1.12.8以降です。 詳細については、「データベースプロキシバージョンのアップグレード」をご参照ください。
保護する専用プロキシエンドポイントの合計長さが64文字を超えないようにします。
使用上の注意
SSL暗号化は、プロキシ端末ごとに1つの専用プロキシエンドポイントに対してのみ設定できます。
SSL暗号化を有効または無効にする、保護されたデータベースプロキシエンドポイントを変更する、またはSSL証明書の有効期間を更新すると、プロキシインスタンスが再起動します。 作業は慎重に行ってください。
SSL 暗号化の有効化
この操作により、RDSインスタンスの再起動がトリガーされます。 作業は慎重に行ってください。
ApsaraDB RDSコンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 RDSインスタンスを見つけ、インスタンスIDをクリックします。
左側のナビゲーションペインで、[データベース] をクリックします。
[接続情報] セクションで、データベースプロキシエンドポイントのIDにポインターを移動します。 表示されるダイアログボックスの [SSL暗号化の設定] セクションで、[SSL暗号化] の右側にある [有効化] をクリックします。
表示されるダイアログボックスで、暗号化するエンドポイントを選択し、[OK] をクリックします。
SSL暗号化のステータスが有効になったら、SSL暗号化の横にある [CA証明書のダウンロード] をクリックします。
説明ダウンロードしたファイルは、次のファイルを含むパッケージです。
PEMファイル: ほとんどのシナリオに適しています。
JKSファイル: Javaアプリケーションに適しています。 ほとんどの場合、PEM形式のCA証明書ファイルは、JKSファイルに変換するためにトラストストアにインポートする必要があります。 JKSファイルはJavaアプリケーションで使用できます。 ファイルのパスワードはapsaradbです。
P7Bファイル: PKCS#7形式の証明書ファイルを必要とする少数のWindowsアプリケーションに適しています。
設定されたSSL証明書を使用して、データベースサーバーの証明書を検証できます。
あなたが使用するとき。Java Development Kit (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はアルゴリズム制約に準拠していません
SSL証明書の設定
SSL暗号化を有効にしてCA証明書をダウンロードした後、SSL証明書を設定できます。 詳細については、「CA証明書のダウンロード」をご参照ください。
保護されたプロキシエンドポイントの変更
この操作により、SSL証明書の有効期間が更新されます。 この操作により、RDSインスタンスの再起動もトリガーされます。 作業は慎重に行ってください。
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
左側のナビゲーションペインで、[データベース] をクリックします。
[接続情報] セクションで、データベースプロキシエンドポイントのIDにポインターを移動します。 表示されるダイアログボックスの [SSL暗号化の設定] セクションで、保護されたエンドポイントの下の [保護されたエンドポイントの変更] をクリックします。
暗号化するエンドポイントを選択し、[OK] をクリックします。
SSL証明書の有効期間を更新する
この操作により、RDSインスタンスの再起動がトリガーされます。 作業は慎重に行ってください。
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
左側のナビゲーションペインで、[データベース] をクリックします。
[接続情報] セクションで、データベースプロキシエンドポイントのIDにポインターを移動します。 表示されるダイアログボックスの [SSL暗号化の設定] セクションで、[SSL証明書の有効期限] の右側にある [有効期限の更新] をクリックします。 表示されるダイアログボックスで、[OK] をクリックします。
SSL 暗号化の無効化
この操作により、RDSインスタンスの再起動がトリガーされます。 作業は慎重に行ってください。
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
左側のナビゲーションペインで、[データベース] をクリックします。
[接続情報] セクションで、データベースプロキシエンドポイントのIDにポインターを移動します。 表示されるダイアログボックスの [SSL暗号化の設定] セクションで、[SSL暗号化] の右側にある [無効化] をクリックします。 表示されるダイアログボックスで、[OK] をクリックします。
関連する操作
操作 | 説明 |
データベースプロキシエンドポイントのSSL暗号化を設定します。 | |
データベースプロキシエンドポイントのSSL暗号化設定を照会します。 |
参考資料
SSL経由でデータベースに接続するためのサンプルコード
詳細については、「アプリケーションコード」をご参照ください。
SSL暗号化に関するFAQ
詳細は、「よくある質問」をご参照ください。