このトピックでは、ApsaraDB RDS for PostgreSQLインスタンスのSSL暗号化を設定する方法について説明します。 SSL暗号化は、データベースクライアントからRDSインスタンスへの接続を暗号化するために使用されます。 これにより、接続を介して送信されるデータを保護できます。 このトピックでは、クラウド証明書を設定してSSL暗号化を有効にする方法についても説明します。
背景情報
SSLは、安全な通信を保証し、データを保護するために開発されたプロトコルです。 SSL 3.0以降、SSLはTLSに名前が変更されます。
ApsaraDB RDS for PostgreSQLは、TLS 1.0、TLS 1.1、およびTLS 1.2をサポートしています。
次の表は、さまざまな証明書間のSSL暗号化設定と利点の比較を示しています。
項目 | |||
目的 | サーバー (データベース) 証明書。クライアントがサーバーの認証に使用します。 | サーバー (データベース) 証明書。クライアントがサーバーの認証に使用します。 | サーバー (データベース) がクライアントを認証するために使用するクライアント証明書。 |
取得する方法 | Alibaba Cloudによって発行されました。 | 認証局 (CA) または自己署名証明書から発行されます。 | 自己署名証明書から発行されます。 |
有効期間 | 365日。 | カスタマイズ。 | カスタマイズ。 |
保護されたエンドポイントの数 | 1 | 1以上。 | 使用するクラウド証明書またはカスタム証明書によって異なります。 保護されたエンドポイントの数は、使用されるCA証明書によって変わりません。 |
SSL暗号化を有効にしてサーバー (データベース) を認証するには、クラウド証明書またはカスタム証明書を設定する必要があります。
サーバーがクライアントの認証に使用するクライアントCA証明書を設定しないことができます。
前提条件
RDSインスタンスはPostgreSQL 10以降を実行し、クラウドディスクを使用します。
説明サーバーレスRDSインスタンスはサポートされていません。
pgAdmin 4クライアントがダウンロードされます。 詳細については、「pgAdmin 4」をご参照ください。
使用上の注意
クラウド証明書は1年間有効です。 クラウド証明書の有効期限が近づいている場合、Alibaba cloudは 電子メールと内部メッセージを送信し、特定の期間内にクラウド証明書を自動的に更新します。 [スケジュールイベント] ダイアログボックスで、SSL証明書の更新時間をカスタマイズできます。 詳細については、「スケジュールされたイベントの管理」をご参照ください。
SSL暗号化を有効にすると、CPU使用率と読み取りおよび書き込みのレイテンシが増加します。
SSL暗号化を有効にしたら、既存の接続を閉じて新しい接続を確立し、SSL暗号化を有効にする必要があります。
クラウド証明書を設定するか、設定したクラウド証明書で保護されているエンドポイントを変更するか、SSL暗号化を無効にすると、RDSインスタンスが再起動します。 再起動プロセスには約3分かかります。 これらの操作は、オフピーク時に実行することを推奨します。
手順1: クラウド証明書を使用してSSL暗号化を有効にする
このトピックでは、クラウド証明書を使用してSSL暗号化の設定方法を説明します。
[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
ApsaraDB RDSコンソールにログインします。 RDSインスタンスを見つけ、インスタンスのIDをクリックします。 表示されるページの左側のナビゲーションウィンドウで、 をクリックします。 表示されるページで、[SSL] タブをクリックします。
説明SSLタブが表示されない場合は、RDSインスタンスが前提条件の要件を満たしているかどうかを確認する必要があります。
[クラウド証明書] を選択します。 [データベース証明書の設定] の横にある [設定] をクリックし、保護するエンドポイントを選択します。
説明パブリックエンドポイントを申請していない場合、[保護されたエンドポイントの選択] ダイアログボックスには、RDSインスタンスの内部エンドポイントのみが表示されます。 パブリックエンドポイントを申請した場合、RDSインスタンスの内部エンドポイントとパブリックエンドポイントの両方が表示されます。 ただし、各クラウド証明書は1つのエンドポイントしか保護できません。 内部エンドポイントは、パブリックエンドポイントよりも安全です。 したがって、パブリックエンドポイントを保護することを推奨します。 内部エンドポイントとパブリックエンドポイントを表示する方法の詳細については、「ApsaraDB RDS For PostgreSQLインスタンスの内部およびパブリックエンドポイントとポート番号の表示と変更」をご参照ください。
内部エンドポイントとパブリックエンドポイントを同時に保護する方法の詳細については、「カスタム証明書を使用してSSL暗号化機能を有効にする」をご参照ください。
クラウド証明書を設定すると、RDSインスタンスのステータスが [SSL設定の変更] に変わります。 RDSインスタンスは約3分間状態のままです。 RDSインスタンスが [実行中] 状態になるまで待ってから、以降の操作を続行します。
ステップ2: サーバーCA証明書をダウンロードする
クラウド証明書を設定した後、サーバー (データベース) CA証明書をダウンロードしてクライアントに保存する必要があります。 クライアントからRDSインスタンスに接続する場合、サーバー (データベース) CA証明書を使用してRDSインスタンスを認証できます。
[クラウド証明書] を選択します。 次に、[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インスタンスにアカウントを作成する方法の詳細については、「データベースとアカウントの作成」をご参照ください。
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データベースに対して操作を実行しないでください。