Azure Cosmos DB for PostgreSQL で TLS を構成する
適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)
コーディネーター ノードでは、クライアント アプリケーションはトランスポート層セキュリティ (TLS) を使用して接続する必要があります。 データベース サーバーとクライアント アプリケーションの間に TLS を適用すれば、転送中のデータを機密状態に保つのに役立ちます。 以下で説明する追加の検証設定を行えば、中間者攻撃からも保護されます。
TLS 接続の適用
アプリケーションは "接続文字列" を使用して、接続先のデータベースと接続の設定を識別します。 クライアントが異なれば、異なる設定が必要です。 一般的なクライアントで使用される接続文字列の一覧を確認するには、Azure portal で、クラスターの [接続文字列] セクションを参照してください。
TLS パラメーターの ssl
と sslmode
は、コネクタの機能によって変わり、たとえば ssl=true
、sslmode=require
、sslmode=required
になります。
アプリケーションまたはフレームワークが TLS 接続をサポートしているかどうかの確認
一部のアプリケーション フレームワークでは、PostgreSQL 接続に対して、既定で TLS が有効にされません。 ただし、セキュリティで保護された接続がないと、アプリケーションはコーディネーター ノードに接続できません。 TLS 接続を有効にする方法については、使用しているアプリケーションのドキュメントを参照してください。
TLS 接続で証明書検証を必要とするアプリケーション
安全に接続するために、信頼された証明機関 (CA) 証明書ファイル (.cer) から生成されたローカルの証明書ファイルがアプリケーションに必要な場合があります。 Azure Cosmos DB for PostgreSQL に接続するための証明書は、https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem にあります。 証明書ファイルをダウンロードし、希望の場所に保存します。
注意
証明書の信頼性を確認する場合は、OpenSSL コマンド ライン ツールを使用して SHA-256 フィンガープリントを検証できます。
openssl x509 -in DigiCertGlobalRootG2.crt.pem -noout -sha256 -fingerprint
# should output:
# CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F
psql を使用した接続
次の例は、psql コマンド ライン ユーティリティを使用してコーディネーター ノードに接続する方法を示しています。 sslmode=verify-full
接続文字列設定を使用して、TLS 証明書の検証を適用します。 ローカルの証明書ファイルのパスを sslrootcert
パラメーターに渡します。
psql の接続文字列の例を次に示します。
psql "sslmode=verify-full sslrootcert=DigiCertGlobalRootG2.crt.pem host=c-mydemocluster.12345678901234.postgres.cosmos.azure.com dbname=citus user=citus password=your_pass"
ヒント
sslrootcert
に渡された値が、保存済みの証明書のファイル パスと一致することを確認します。
Note
パスワードには、接続パスワードまたは Microsoft Entra ID トークンを使います。 詳細については、認証オプションに関する記事を参照してください。
次のステップ
Azure Cosmos DB for PostgreSQL のファイアウォール規則を使用して、セキュリティをさらに強化します。