このトピックでは、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 は メール、およびイベントセンター内の内部メッセージで更新リマインダーを送信し、特定の期間内に証明書を自動的に更新します。イベントのスケジュール を設定することで、証明書の更新時間をカスタマイズできます。詳細については、「スケジュールされたイベント」をご参照ください。
-
クラウド証明書が有効期限切れになり自動更新された後、暗号化接続を使用するクライアントプログラムは、CA 証明書をダウンロードしたり再設定したりする 必要はありません。
-
SSL 暗号化を有効にすると、CPU 使用率と読み書きのレイテンシーが増加します。
-
SSL 暗号化を有効にした後、既存の接続を閉じて新しい接続を確立すると、SSL 暗号化が有効になります。
-
クラウド証明書の設定、設定済みクラウド証明書で保護されているエンドポイントの変更、または SSL 暗号化の無効化を行うと、RDS インスタンスが再起動します。再起動中に、分単位の一時的な切断が発生する可能性があります。これらの操作はオフピーク時間に実行することを推奨します。
ステップ 1:クラウド証明書を使用した SSL 暗号化の有効化
このトピックでは、クラウド証明書を使用して SSL 暗号化を設定する方法を説明します。
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
-
左側のナビゲーションペインで、 > SSL を選択します。
説明コンソールで SSL タブが表示されない場合は、ご使用の ApsaraDB RDS for PostgreSQL インスタンスがバージョンとストレージタイプの要件を満たしているかどうかを確認してください。詳細については、「前提条件」をご参照ください。
-
「証明書ソース」には、クラウド証明書 を選択します。データベース証明書の設定 (データベースの偽装防止) の横にある 設定 をクリックし、保護するエンドポイントを選択します。
説明-
パブリックエンドポイントを有効にしていない場合、保護されているエンドポイントの選択 ダイアログボックスには ApsaraDB RDS for PostgreSQL インスタンスの内部エンドポイントのみが表示されます。 パブリックエンドポイントを有効にしている場合、内部エンドポイントとパブリックエンドポイントの両方が表示されます。 クラウド証明書で保護できるエンドポイントは 1 つだけです。 内部接続は比較的安全であるため、パブリックエンドポイントを保護することをお勧めします。 内部エンドポイントとパブリックエンドポイントを表示するには、「ApsaraDB RDS for PostgreSQL インスタンスの内部エンドポイントとパブリックエンドポイント、およびポート番号の表示と変更」をご参照ください。
-
内部エンドポイントとパブリックエンドポイントを同時に保護する方法の詳細については、「カスタム証明書を使用した SSL 暗号化機能の有効化」をご参照ください。
-
クラウド証明書を設定すると、インスタンスの インスタンスステータス が SSL を変更しています に変わります。このプロセスには約 3 分かかります。ステータスが 実行中 に変わってから、操作を続行してください。
-
ステップ 2:サーバー CA 証明書のダウンロード
クラウド証明書を設定した後、サーバー (データベース) CA 証明書をダウンロードしてクライアントに保存する必要があります。クライアントから RDS インスタンスに接続する際に、サーバー (データベース) CA 証明書を使用して RDS インスタンスを認証できます。
クラウド証明書が有効期限切れになり自動更新された後、CA 証明書をダウンロードしたり再設定したりする 必要はありません。
-
証明書ソースで、クラウド証明書を選択し、CA 証明書のダウンロードをクリックします。
-
ダウンロードしたファイルを解凍します。
ダウンロードしたファイルはパッケージになっており、以下のファイルが含まれています:
-
PEM ファイル:ほとんどのシナリオに適しています。
-
JKS ファイル:Java アプリケーションで使用する場合、ほとんどは PEM 形式の CA 証明書ファイルをトラストストアにインポートして JKS ファイルに変換する必要があります。パスワードは apsaradb です。
-
P7B ファイル:PKCS#7 形式の証明書ファイルを必要とする一部の Windows アプリケーションに適しています。
-
ステップ 3:データベースクライアントから RDS インスタンスへの接続
この例では、pgAdmin を使用して SSL 経由で RDS インスタンスに接続する方法を説明します。
psql コマンドラインクライアントや Java Database Connectivity (JDBC) など、複数の方法で RDS インスタンスに接続できます。詳細については、「SSL 接続を介した ApsaraDB RDS for PostgreSQL インスタンスへの接続」をご参照ください。
-
RDS インスタンスに接続する前に、インスタンスに IP アドレスホワイトリストが設定され、アカウントが作成されていることを確認してください。詳細については、「IP アドレスホワイトリストの設定」および「ApsaraDB RDS for PostgreSQL インスタンスでのデータベースとアカウントの作成」をご参照ください。
-
このセクションでは、
pgAdmin 4 v6.2.0を例に説明します。このトピックのスクリーンショットがお使いのクライアントのバージョンと異なる場合は、「公式ドキュメント」を参照し、この例に示すように SSL 関連のパラメーターを設定してください。
pgAdmin 4 クライアントを起動します。
説明最新バージョンのクライアントに初めてログインする場合、保存されたパスワードやその他の認証情報を保護するためにマスター パスワードを設定する必要があります。
[サーバー] を右クリックし、 の順に選択します。

[一般] タブで、接続の名前を設定します。

-
[接続] タブで、インスタンスに次のパラメーターを入力して [接続] 設定を構成します。
パラメータ
説明
ホスト名 / アドレス
ApsaraDB RDS for PostgreSQL インスタンスのエンドポイントとポートです。
内部ネットワーク経由で接続する場合は、インスタンスの内部エンドポイントとポートを入力します。
インターネット経由で接続する場合は、インスタンスのパブリックエンドポイントとポートを入力します。
この情報は、ApsaraDB RDS for PostgreSQL インスタンスの [データベース接続] ページで確認できます。
詳細については、「エンドポイントとポートの表示と変更」をご参照ください。
ポート
ユーザー名
ApsaraDB RDS for PostgreSQL インスタンスアカウントのユーザー名とパスワードです。
アカウントの作成方法については、「アカウントとデータベースの作成」をご参照ください。
パスワード
-
[パラメーター] タブを選択し、 SSL 認証パラメーターを追加して設定します。
パラメーター
説明
SSL モード
セキュリティ上の理由から、このパラメーターを Require、Verify-CA、または Verify-Full に設定することを推奨します。SSL モードの各値の意味は次のとおりです:
-
Require:データベースクライアントは、データ送信に使用される SSL 接続を暗号化します。ただし、データベースクライアントは RDS インスタンスを検証しません。
-
Verify-CA:データベースクライアントは、データ送信に使用される SSL 接続を暗号化し、RDS インスタンスを検証します。
-
Verify-Full: データ接続を暗号化し、サーバーの ID を検証し、サーバー証明書のコモンネーム (CN) または DNS 名が、接続用に指定された [ホスト名/アドレス] と一致するかどうかを確認します。
ルート証明書
[SSL モード]を [Verify-CA] または [Verify-Full] に設定した場合、このパラメーターは必須です。CA ルート証明書ファイルへのパスを指定します。
説明-
この例では、SSL タブからダウンロードした CA 証明書を D:\CA\aliyunCA\ に展開しています。証明書は、任意のローカルディレクトリに展開できます。
-
pgAdmin では、サーバー CA 証明書を含むファイルは PEM 形式です。
-
[保存] をクリックします。
接続情報が正しければ、サーバーが正常に追加されます。
重要postgres データベースは、ApsaraDB RDS インスタンスのデフォルトのシステムデータベースです。このデータベースでは操作を実行しないでください。