PolarDB for PostgreSQL および は、SSL 暗号化をサポートし、転送中のデータを保護します。このトピックでは、新しいコンソールでプライマリエンドポイントまたはクラスターエンドポイントの SSL 暗号化を有効にするための基本的な設定方法について説明します。クラスターの [設定と管理] > [セキュリティ管理] ページの [SSL 設定] タブで、特定のプライマリエンドポイントまたはクラスターエンドポイントの SSL 暗号化を有効または無効にできない場合は、「SSL 暗号化の設定」をご参照ください。
背景情報
Secure Sockets Layer (SSL) は、安全な通信のためのセキュリティプロトコルです。バージョン 3.0 以降、SSL は Transport Layer Security (TLS) に名称変更されました。このトピックでは、クラウド証明書 を使用して SSL 暗号化を素早く設定する方法について説明します。
PolarDB for PostgreSQL および の PolarProxy は、TLS バージョン 1.0、1.1、1.2、および 1.3 をサポートしています。
次の表は、PolarDB for PostgreSQL および クラスターでサポートされている SSL 暗号化設定を比較したものです。
|
項目 |
クラウド証明書 |
カスタム証明書 |
クライアント CA 証明書 |
|
取得方法 |
Alibaba Cloud によって発行されます。 |
認証局による発行、または自己署名が可能です。 |
自己署名。 |
|
有効期間 |
365 日。 |
カスタム。 |
カスタム。 |
|
保護されるエンドポイント数 |
1 つ以上。 |
1 つ以上。 |
影響を受けません。エンドポイント数は、関連付けられたクラウド証明書またはカスタム証明書に依存します。 |
|
証明書の目的 |
SSL 暗号化を有効にします。クライアントはサーバーの信頼性を検証します。 |
SSL 暗号化を有効にします。クライアントはサーバーの信頼性を検証します。 |
サーバーはクライアントの信頼性を検証します。 |
-
クラウド証明書、カスタム証明書、またはクライアント CA 証明書を設定する際には、特定のバージョン要件があります。プライマリエンドポイントとクラスターエンドポイントでは制約が異なります。要件を満たさないバージョンでは、クラウド証明書モードのみがサポートされます。
-
サポートされているバージョンでは、SSL 暗号化を有効にするために、クラウド証明書またはカスタム証明書のいずれかを設定する必要があります。
-
サポートされているバージョンでは、サーバーがクライアントの信頼性を検証するために、オプションでクライアント CA 証明書を設定できます。
PolarDB for PostgreSQL の前提条件
-
クラスターで PolarDB for PostgreSQL 14、15、またはそれ以降のバージョンが実行されている必要があります。PolarDB for PostgreSQL 14 の場合、リビジョンは 14.10.21.0 以降である必要があります。これにより、プライマリエンドポイントにカスタム証明書やクライアント CA 証明書などのオプションを設定できます。下位バージョンは、クラウド証明書モードのみをサポートします。
-
クラスターの PolarProxy バージョンは 2.3.51 以降である必要があります。これにより、クラスターエンドポイントとカスタムエンドポイントにカスタム証明書やクライアント CA 証明書などのオプションを設定できます。下位バージョンは、クラウド証明書モードのみをサポートします。
-
pgAdmin 4 クライアントがインストールされていること。
注意事項
-
SSL のクラウド証明書の有効期間は 1 年です。証明書の有効期限が切れる前に 有効期間の更新 をする必要があります。そうしないと、暗号化接続を使用するアプリケーションが接続に失敗します。CA 証明書の有効期間は長いため、通常は再ダウンロードする必要はありません。CA 証明書がすでにクライアントにダウンロードされ設定されている場合は、引き続き使用できます。有効期限が切れた場合や削除された場合にのみ、CA 証明書の再ダウンロードと再設定が必要です。
-
SSL 暗号化の特性上、有効にすると CPU 使用率が大幅に増加する可能性があります。SSL 暗号化は、外部ネットワークリンクに対してのみ有効にすることを推奨します。内部リンクは通常安全なため、暗号化は不要です。
-
SSL 暗号化を有効にした後、変更を反映させるには、既存の接続を再接続する必要があります。
-
SSL 暗号化の有効化、更新、変更、または無効化を行うと、クラスターが再起動し、一時的な接続中断が発生します。これらの操作はオフピーク時間に実行してください。
ステップ 1:クラウド証明書を使用した SSL 暗号化の有効化
-
PolarDB コンソールにログインします。
-
左上のコーナーで、クラスターが配置されているリージョンを選択します。
-
対象のクラスターを見つけ、クラスター ID をクリックします。
-
左側のナビゲーションペインで、構成・ amp; の管理 > Security Management をクリックします。
-
SSL Configuration タブで、プライマリエンドポイントまたは任意のクラスターエンドポイントを選択し、SSL Status の右側にあるスイッチを切り替えるか、データベース証明書の設定 ボタンをクリックして SSL 暗号化を有効にします。
-
データベース証明書の設定 ダイアログボックスで、クラウド証明書を選択し、保護するエンドポイントを選択します。
-
[OK] をクリックします。次の手順に進む前に、クラスターのステータスが [実行中] に変わるまで待ちます。
[データベース証明書の設定] ダイアログボックスで、[SSL 証明書タイプ] を [クラウド証明書] に設定します。エンドポイントリストで、SSL を有効にするエンドポイントを選択します。個別のエンドポイントまたは [すべてのエンドポイント] を選択できます。64 文字を超えるエンドポイントでは SSL を有効にできない点にご注意ください。
ステップ 2:CA 証明書のダウンロード
クラウド証明書を有効にすると、PolarDB for PostgreSQL と ではデータベース CA 証明書をダウンロードできます。クライアントから PolarDB for PostgreSQL または データベースにリモート接続する際に、この証明書を使用してサーバーの信頼性を検証できます。
-
SSL Configuration タブで、Download の右側にある [ダウンロード] をクリックします。
-
ダウンロードしたパッケージを展開します。パッケージには次の 3 つのファイルが含まれています。
-
P7B ファイル:Windows での CA 証明書インポートに使用します。
-
PEM ファイル:他のオペレーティングシステムやアプリケーションでの CA 証明書インポートに使用します。
-
JKS ファイル:Java KeyStore (JKS) トラストストアファイルです。パスワードは
apsaradbです。このファイルは、Java アプリケーションへの CA 証明書チェーンのインポートに使用します。
説明Java で JKS 証明書ファイルを使用する場合、JDK 7 および JDK 8 のデフォルトのセキュリティ設定を変更する必要があります。PolarDB データベースに接続するサーバーで、
jre/lib/security/java.securityファイルを編集し、次の 2 つの設定を変更してください。jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224 jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024JDK のセキュリティ設定を変更しない場合、次のようなエラーが報告されます。他の同様のエラーも、通常は Java のセキュリティ設定が原因です。
javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints -
ステップ 3:クライアントを使用したデータベースへの接続
この例では、pgAdmin クライアントを使用して、SSL 経由で PolarDB for PostgreSQL または データベースに接続します。
psql コマンドラインクライアントや JDBC など、さまざまな方法で SSL 経由で PolarDB for PostgreSQL または データベースにリモート接続することもできます。詳細については、「SSL 経由での PolarDB for PostgreSQL または PolarDB for PostgreSQL (Oracle compatible) クラスターへの接続」をご参照ください。
-
データベースに接続する前に、PolarDB for PostgreSQL または クラスターのホワイトリストを設定してアカウントを作成済みであることを確認してください。詳細については、「クラスターのホワイトリストの設定」および「データベースアカウントの作成」をご参照ください。
-
このトピックの UI がお使いのクライアントのバージョンと異なる場合は、クライアントの公式ドキュメントで SSL パラメーターに関する説明をご確認ください。
-
pgAdmin 4 クライアントを起動します。
説明新しいバージョンのクライアントでは、保存する認証情報を保護するために、初回ログイン時にマスターパスワードを設定する必要があります。
-
[Servers] を右クリックし、[Register] > [Server...] を選択します。
-
[General] タブで、接続の名前を設定します。
ダイアログボックスのタイトルは [Register - Server] です。[Name] フィールドに、接続の任意の名前を入力します。他のオプションはデフォルトのままでかまいません。
-
[Connection] タブをクリックし、クラスターの接続詳細を入力します。
パラメーター
説明
ホスト名/アドレス
SSL が有効になっている PolarDB for PostgreSQL または クラスターのプライマリエンドポイントまたはクラスターエンドポイント、およびそれに対応するポート。
-
内部接続の場合は、クラスターの内部エンドポイントと内部ポートを入力します。
-
パブリック接続の場合は、クラスターのパブリックエンドポイントとパブリックポートを入力します。
ポート
ユーザー名
PolarDB for PostgreSQL または クラスターのデータベースユーザー名とパスワード。
パスワード
-
-
[Parameters] タブをクリックし、SSL 認証方法に関連するパラメーターを追加し、証明書を設定します。
パラメーター
説明
SSL モード
安全な SSL 接続を使用するには、このパラメーターを Require、Verify-CA、または Verify-Full に設定します。これらの値は次のように定義されます。
-
Require:接続を暗号化しますが、サーバーの信頼性は検証しません。
-
Verify-CA:接続を暗号化し、サーバーの信頼性を検証します。
-
Verify-Full:接続を暗号化し、サーバーの信頼性を検証し、証明書のコモンネーム (CN) が[ホスト名/アドレス] と一致することを確認します。
ルート証明書
[SSL モード] が [Verify-CA] または [Verify-Full] に設定されている場合に必要です。データベース CA 証明書のパスを指定します。
説明この例では、SSL ページからダウンロードした CA 証明書は D:\CA\aliyunCA\ に展開されています。証明書は任意のローカルディレクトリに展開できます。
pgAdmin クライアントで使用するデータベース CA 証明書は PEM ファイルです。
-
-
[Save] をクリックします。
接続情報が正しければ、接続の成功を示す次のページが表示されます。
サーバー接続が左側の [Browser] パネルに表示され、右側の [Dashboard] にはリアルタイムのモニタリングチャートが表示されます。
重要postgres データベースは、PolarDB for PostgreSQL または クラスターのデフォルトのシステムデータベースです。このデータベースではいかなる操作も行わないでください。
ステップ 4: (任意) クラウド証明書の更新
有効期限が近づいている証明書を更新するには、次の手順に従います。
-
PolarDB コンソールにログインします。
-
左上のコーナーで、クラスターが配置されているリージョンを選択します。
-
対象のクラスターを見つけ、クラスター ID をクリックします。
-
左側のナビゲーションペインで、構成・ amp; の管理 > Security Management をクリックします。
-
SSL Configuration タブで、更新するプライマリエンドポイントまたはクラスターエンドポイントを選択し、Update Validity Period ボタンをクリックします。
-
表示されたダイアログボックスで、[OK] をクリックします。
[有効期間の更新] ボタンは、[SSL 設定詳細] ページの [SSL ステータス] の右側にあります。
説明証明書を更新するとクラスターが再起動します。この点を考慮し、操作を計画してください。
-
有効期間が更新されると、サーバー側の SSL 証明書は自動的に更新されます。通常、CA 証明書を再ダウンロードする必要はありません。CA 証明書がすでにクライアントにダウンロードされ設定されている場合は、引き続き使用できます。有効期限が切れた場合や削除された場合にのみ、CA 証明書の再ダウンロードと再設定が必要です。
ステップ 5: (任意) SSL 暗号化の無効化
SSL 暗号化を無効にすると、クラスターが再起動し、一時的な接続中断が発生します。この操作は慎重に実行してください。
SSL 暗号化を無効にするには、次の手順に従います。
-
PolarDB コンソールにログインします。
-
左上のコーナーで、クラスターが配置されているリージョンを選択します。
-
対象のクラスターを見つけ、クラスター ID をクリックします。
-
左側のナビゲーションペインで、構成・ amp; の管理 > Security Management をクリックします。
-
SSL Configuration タブで、SSL を無効にするプライマリエンドポイントまたはクラスターエンドポイントを見つけ、SSL Status の右側にあるスイッチを切り替えます。