Query Service個のSSL オプション
セキュリティを強化するために、Adobe Experience Platform Query Serviceでは、クライアントとサーバーの通信を暗号化するためのSSL接続をネイティブでサポートしています。 このドキュメントでは、Query Serviceへのサードパーティクライアント接続で使用可能なSSL オプションと、verify-full SSL パラメーター値を使用して接続する方法について説明します。
前提条件
このドキュメントでは、Experience Platform データで使用するサードパーティのデスクトップクライアントアプリケーションを既にダウンロードしていることを前提としています。 サードパーティクライアントと接続する際にSSL セキュリティを組み込む方法に関する具体的な手順については、それぞれの接続ガイドのドキュメントを参照してください。 サポートされているすべてのQuery Service クライアントの一覧については、 クライアント接続の概要を参照してください。
使用可能なSSL オプション available-ssl-options
Experience Platformは、データセキュリティのニーズに合わせて、暗号化とキー交換の処理オーバーヘッドのバランスを取るために、さまざまなSSL オプションをサポートしています。
異なるsslmode パラメーター値は、異なるレベルの保護を提供します。 SSL証明書を使用して移動中のデータを暗号化することで、「中間者攻撃」(MITM)攻撃、盗聴、なりすましを防ぐことができます。 次の表に、使用可能な様々なSSL モードとその保護レベルの内訳を示します。
disableはAdobe Experience Platformでサポートされていません。allowpreferrequireverify-caverify-fullverify-caとverify-fullの違いは、ルート証明機関(CA)のポリシーによって異なります。 アプリケーション用のプライベート証明書を発行するために独自のローカル CAを作成した場合、verify-caを使用すると、多くの場合、十分な保護が提供されます。 パブリック CAを使用している場合、verify-caは、他のユーザーがCAに登録した可能性のあるサーバーへの接続を許可します。 verify-fullは、常にパブリック ルート CAと共に使用する必要があります。Experience Platform データベースへのサードパーティ接続を確立する場合は、少なくともsslmode=requireを使用して、移動中のデータの安全な接続を確保することをお勧めします。 verify-full SSL モードは、ほとんどのセキュリティに敏感な環境で使用することをお勧めします。
サーバー検証用のルート証明書の設定 root-certificate
これは年間要件ですが、AdobeのTLS/SSL証明書プロバイダーが証明書の階層を更新したため、この場合、チェーン内のルート証明書も変更されました。 これは、特定のPostgres クライアントで、証明書認証局のリストにルート証明書が欠落している場合に影響を与える可能性があります。 例えば、PSQL CLI クライアントでは、ルート証明書を明示的なファイル
~/postgresql/root.crtに追加する必要がある場合があります。そうしないと、エラーが発生する可能性があります。 たとえば、psql: error: SSL error: certificate verify failed のように設定します。 この問題について詳しくは、公式PostgreSQL ドキュメント を参照してください。追加するルート証明書は、https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pemからダウンロードできます。
安全な接続を確保するには、接続を行う前に、クライアントとサーバーの両方でSSL使用を設定する必要があります。 SSLがサーバー上でのみ設定されている場合、クライアントは、サーバーに高いセキュリティが必要であることを確認する前に、パスワードなどの機密情報を送信する可能性があります。
既定では、PostgreSQLはサーバー証明書の検証を実行しません。 サーバーのIDを確認し、機密データが(SSL verify-full モードの一部として)送信される前に安全な接続を確保するには、ルート (自己署名)証明書をローカルマシン (root.crt)に配置し、サーバー上のルート証明書で署名されたリーフ証明書を配置する必要があります。
sslmode パラメーターがverify-fullに設定されている場合、libpqは、クライアントに保存されているルート証明書まで証明書チェーンを確認することで、サーバーが信頼できることを検証します。 次に、ホスト名がサーバー証明書に保存されている名前と一致することを確認します。
サーバー証明書の検証を許可するには、1つ以上のルート証明書(root.crt)をホームディレクトリのPostgreSQL ファイルに配置する必要があります。 ファイルパスは~/.postgresql/root.crtに似ています。
サードパーティ Query Service接続で使用するverify-full SSL モードを有効にします instructions
sslmode=requireより厳格なセキュリティ制御が必要な場合は、ハイライトされている手順に従って、verify-full SSL モードを使用してサードパーティクライアントをQuery Serviceに接続できます。
-
使用可能なDigiCert ルート証明書のリスト に移動します
-
使用可能な証明書のリストから「DigiCert Global Root G2」を検索します。
-
PEMをダウンロードを選択して、ファイルをローカルマシンにダウンロードします。
-
セキュリティ証明書ファイルの名前を
root.crtに変更します。 -
ファイルをPostgreSQL フォルダーにコピーします。 必要なファイルパスは、オペレーティングシステムによって異なります。 フォルダーがまだ存在しない場合は、フォルダーを作成します。
- MacOSを使用している場合、パスは
/Users/<username>/.postgresqlです - Windowsを使用している場合、パスは
%appdata%\postgresqlです
- MacOSを使用している場合、パスは
%appdata% ファイルの場所を見つけるには、Win + R⊞押して、検索フィールドに%appdata%と入力します。DigiCert Global Root G2 CRT ファイルがPostgreSQL フォルダーで利用できるようになったら、sslmode=verify-fullまたはsslmode=verify-ca オプションを使用してQuery Serviceに接続できます。
次の手順
このドキュメントを読むことで、サードパーティのクライアントをQuery Serviceに接続するための使用可能なSSL オプションと、移動中のデータを暗号化するためにverify-full SSL オプションを有効にする方法について理解を深めることができます。
まだ実行していない場合は、 サードパーティクライアントを Query Serviceに接続する方法に関するガイダンスに従ってください。