このトピックでは、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 暗号化を有効にすると、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 証明書のダウンロード をクリックします。
ダウンロードしたファイルを解凍します。
ダウンロードしたファイルは、次のファイルを含むパッケージです:
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 クライアントを起動します。
説明新しいバージョンのクライアントを初めて起動すると、保存されたパスワードやその他の認証情報を保護するためのマスターパスワードを設定するように求められます。
-
[サーバー] を右クリックし、 を選択します。
-
[General] タブの [Name] フィールドに、カスタムのサーバー名を入力します。
[Connection] タブで、インスタンスの次のパラメーターを入力して [Connection] 設定を構成します。
パラメーター
説明
ホスト名/アドレス
ApsaraDB RDS for PostgreSQL インスタンスのエンドポイントとポートです。
-
内部ネットワーク経由でインスタンスに接続する場合は、内部エンドポイントとポートを入力します。
-
インターネット経由でインスタンスに接続する場合は、パブリックエンドポイントとポートを入力します。
この情報は、ApsaraDB RDS for PostgreSQL インスタンスの [データベース接続] ページで確認できます。
詳細については、「エンドポイントとポートの表示または変更」をご参照ください。
ポート
ユーザー名
ApsaraDB RDS for PostgreSQL インスタンスへの接続に使用するアカウントのユーザー名とパスワードです。
アカウントの作成方法については、「アカウントとデータベースの作成」をご参照ください。
パスワード
-
[Parameters] タブを選択し、SSL 認証パラメーターを追加して設定します。
パラメーター
説明
SSL mode
セキュリティ上の理由から、このパラメーターを Require、Verify-CA、または Verify-Full に設定することを推奨します。SSL モードパラメーターのさまざまな値の意味は次のとおりです:
Require:データベースクライアントは、データの送信に使用される SSL 接続を暗号化します。ただし、データベースクライアントは RDS インスタンスを検証しません。
Verify-CA:データベースクライアントは、データの送信に使用される SSL 接続を暗号化し、RDS インスタンスを検証します。
Verify-Full:データ接続を暗号化し、サーバーの ID を検証し、サーバー証明書のコモンネーム (CN) または DNS 名が接続用に提供された [Host name/address] と一致するかどうかを確認します。
Root certificate
このパラメーターは、[SSL mode] を [Verify-CA] または [Verify-Full] に設定した場合に必須です。CA ルート証明書ファイルへのパスを指定します。
説明この例では、SSL タブからダウンロードした CA 証明書は D:\CA\aliyunCA\ に展開されます。証明書は任意のローカルディレクトリに展開できます。
pgAdmin では、サーバー CA 証明書を含むファイルは PEM 形式です。
-
[Save] をクリックします。
接続が成功すると、pgAdmin 4 のメインページに [Dashboard] モニタリングパネルが表示されます。左側の [Browser] パネルで、サーバーを展開して [Databases]、[Login/Group Roles]、[Tablespaces] などのオブジェクトを表示できます。
重要postgres データベースは、RDS インスタンスのデフォルトのシステムデータベースです。このデータベースに対してはいかなる操作も行わないでください。