このトピックでは、ApsaraDB RDS for PostgreSQLインスタンスのSSL暗号化を設定する方法について説明します。 SSL暗号化は、データベースクライアントからRDSインスタンスへの接続を暗号化するために使用されます。 これにより、接続を介して送信されるデータを保護できます。
背景情報
SSLは、安全な通信を保証し、データを保護するために開発されたプロトコルです。 SSL 3.0以降、SSLはTLSに名前が変更されます。 このトピックでは、クラウド証明書を使用してSSL暗号化の設定方法を説明します。
ApsaraDB RDS for PostgreSQLは、TLS 1.0、TLS 1.1、およびTLS 1.2をサポートしています。
次の表は、さまざまな証明書間のSSL暗号化設定と利点の比較を示しています。
項目 | |||
取得する方法 | Alibaba Cloudによって発行されました。 | 認証局 (CA) または自己署名証明書から発行されます。 | 自己署名証明書から発行されます。 |
有効期間 | 365日。 | カスタマイズ。 | カスタマイズ。 |
保護されたエンドポイントの数 | 1 | 1以上。 | 使用するクラウド証明書またはカスタム証明書によって異なります。 保護されたエンドポイントの数は、使用されるCA証明書によって変わりません。 |
目的 | SSL暗号化を有効にするために使用され、データベースクライアントがRDSインスタンスを検証するために使用されます。 | SSL暗号化を有効にするために使用され、データベースクライアントがRDSインスタンスを検証するために使用されます。 | RDSインスタンスがデータベースクライアントの検証に使用します。 |
SSL暗号化を有効にするには、クラウド証明書またはカスタム証明書を設定する必要があります。
RDSインスタンスがデータベースクライアントを検証するために使用するクライアントCA証明書を設定しないことを選択できます。
前提条件
RDSインスタンスはPostgreSQL 10以降を実行し、クラウドディスクを使用します。
pgAdmin 4クライアントがダウンロードされます。 詳細については、「pgAdmin 4」をご参照ください。
使用上の注意
SSL証明書は1年間有効です。 SSL証明書の有効期限が近づいている場合、Alibaba Cloudは 電子メールと内部メッセージを送信し、特定の期間内にSSL証明書を自動的に更新します。 [イベントセンター] ページで内部メッセージを表示できます。 [スケジュールイベント] ダイアログボックスで、SSL証明書の更新時間をカスタマイズできます。 詳細については、「スケジュールされたイベントの管理」をご参照ください。
SSL暗号化を有効にすると、CPU使用率と読み取りおよび書き込みのレイテンシが増加します。
SSL暗号化を有効にしたら、既存の接続を閉じて新しい接続を確立し、SSL暗号化を有効にする必要があります。
クラウド証明書を設定するか、設定したクラウド証明書で保護されているエンドポイントを変更するか、SSL暗号化を無効にすると、RDSインスタンスが再起動します。 再起動プロセスには約3分かかります。 これらの操作は、オフピーク時に実行することを推奨します。
手順1: クラウド証明書を使用してSSL暗号化を有効にする
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
ApsaraDB RDSコンソールにログインします。 RDSインスタンスを見つけ、インスタンスのIDをクリックします。 表示されるページの左側のナビゲーションウィンドウで、 をクリックします。 表示されるページで、[SSL] タブをクリックします。
説明SSLタブが表示されない場合は、RDSインスタンスが前提条件の要件を満たしているかどうかを確認する必要があります。
表示されるタブで、[証明書ソースの選択] で [クラウド証明書] を選択し、[データベース証明書の設定 (データベースの偽装を防ぐ)] の右側にある [設定] をクリックします。 表示されるダイアログボックスで、保護するエンドポイントを選択します。
説明パブリックエンドポイントを申請していない場合、[保護されたエンドポイントの選択] ダイアログボックスには、RDSインスタンスの内部エンドポイントのみが表示されます。 パブリックエンドポイントを申請した場合、このダイアログボックスには、RDSインスタンスの内部エンドポイントとパブリックエンドポイントの両方が表示されます。 ただし、各クラウド証明書は1つのエンドポイントしか保護できません。 内部エンドポイントは、パブリックエンドポイントよりも安全です。 したがって、パブリックエンドポイントを保護することを推奨します。 内部エンドポイントとパブリックエンドポイントを表示する方法の詳細については、「ApsaraDB RDS For PostgreSQLインスタンスの内部およびパブリックエンドポイントとポート番号の表示と変更」をご参照ください。
内部エンドポイントとパブリックエンドポイントを同時に保護する方法の詳細については、「カスタム証明書の設定」をご参照ください。
クラウド証明書を設定すると、RDSインスタンスのステータスが [実行中] から [SSLの変更] に変わります。 約3分後、ステータスは [実行中] に戻ります。
ステップ2: サーバーCA証明書をダウンロードする
クラウド証明書を設定すると、RDSインスタンスはサーバーCA証明書を提供します。 データベースクライアントからRDSインスタンスに接続すると、データベースクライアントはサーバーCA証明書を使用してRDSインスタンスを検証します。
Select Certificate SourceのCloud Certificateを選択します。 次に、[CA証明書のダウンロード] をクリックします。
ダウンロードしたファイルを解凍します。
ダウンロードしたファイルは、次のファイルを含むパッケージです。
PEMファイル: ほとんどのシナリオに適しています。
JKSファイル: ほとんどの場合、PEM形式の認証機関 (CA) 証明書ファイルをトラストストアにインポートして、Javaアプリケーションで使用するJKSファイルに変換する必要があります。 パスワードは、「apsaradb」 です。
P7Bファイル: PKCS#7形式の証明書ファイルを必要とする少数のWindowsアプリケーションに適しています。
ステップ3: データベースクライアントからRDSインスタンスに接続する
この例では、pgAdminを使用して、SSL接続を介してRDSインスタンスに接続する方法を説明します。
RDSインスタンスに接続するには、psqlコマンドラインクライアントやJava Database Connectivity (JDBC) などの複数の方法を使用します。 詳細については、「SSL接続を介したApsaraDB RDS For PostgreSQLインスタンスへの接続」をご参照ください。
RDSインスタンスに接続する前に、インスタンスにIPアドレスホワイトリストを設定し、アカウントを作成したことを確認する必要があります。 詳細については、「IPアドレスホワイトリストの設定」および「ApsaraDB RDS For PostgreSQLインスタンスでのデータベースとアカウントの作成」をご参照ください。
このセクションでは、例として
pgAdmin 4 V6.2.0
を使用します。 スクリーンショットがクライアントと異なる場合は、公式ドキュメントの手順に従って、このセクションに基づいてSSL関連のパラメーターを設定できます。
pgAdmin 4を起動します。
説明新しいバージョンのpgAdminに初めてログインする場合は、保存したパスワードやその他の資格情報を保護するために使用するマスターパスワードを指定する必要があります。
[サーバー] を右クリックし、
を選択します。[登録-サーバー] ダイアログボックスの [全般] タブで、pgAdminがインストールされているサーバーの名前を入力します。
[接続] タブをクリックし、RDSインスタンスへの接続に使用する情報を入力します。
パラメーター
説明
ホスト名 /アドレス
RDSインスタンスへの接続に使用されるエンドポイントとポート。
内部ネットワーク経由でRDSインスタンスに接続する場合は、RDSインスタンスの内部エンドポイントと内部ポートを入力します。
インターネット経由でRDSインスタンスに接続する場合は、RDSインスタンスのパブリックエンドポイントとパブリックポートを入力します。
上記の情報は、RDSインスタンスの [データベース接続] ページで確認できます。
詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのエンドポイントとポート番号の表示と変更」をご参照ください。
ポート
ユーザー名
RDSインスタンスへのログインに使用されるユーザー名とパスワード。
RDSインスタンスにアカウントを作成する方法の詳細については、「ApsaraDB RDS For PostgreSQLインスタンスにデータベースとアカウントを作成する」をご参照ください。
Password
[パラメーター] タブで、SSL認証モードに関連するパラメーターを設定し、証明書を設定します。
パラメーター
説明
SSLモード
セキュリティ上の理由から、このパラメーターをRequire、Verify-CA、またはVerify-Fullに設定することを推奨します。 SSL modeパラメーターのさまざまな値の意味を次に示します。
要求: データベースクライアントは、データの送信に使用されるSSL接続を暗号化します。 ただし、データベースクライアントはRDSインスタンスを検証しません。
Verify-CA: データベースクライアントは、データの送信に使用されるSSL接続を暗号化し、RDSインスタンスを検証します。
Verify-Full: データベースクライアントは、データの送信に使用されるSSL接続を暗号化し、RDSインスタンスを検証し、サーバーCA証明書で指定されたCNまたはドメインネームシステム (DNS) が、接続確立時に設定したホスト名 /アドレスパラメーターの値と一致するかどうかを確認します。
ルート証明書
SSL modeパラメーターをVerify-CAまたはVerify-Fullに設定した場合、Root certificateパラメーターをサーバーCA証明書を含むファイルの保存パスに設定する必要があります。
説明この例では、サーバーCA証明書を含むファイルがSSLタブからダウンロードされ、コンピューターのD:\CA\aliyunCA\ パスに解凍されます。 ビジネス要件に基づいてパスを変更できます。
pgAdminでは、サーバーCA証明書を含むファイルはPEM形式です。
[保存] をクリックします。
入力した情報が正しい場合、次の図に示すページが表示され、RDSインスタンスへの接続が成功したことが示されます。
重要postgresデータベースはデフォルトのシステムデータベースです。 postgresデータベースに対して操作を実行しないでください。