Deciding on an SSL model#
PEMエージェントは、 PEMアーキテクチャ で詳細に説明しているように、libpqを使用してPEMバックエンドデータベースに直接接続するPostgresクライアントです。
通信を安全に管理および暗号化するために、PEMはPostgresバックエンドのネイティブSSL/TLS機能を活用します。
このセキュリティモデルが機能するには、次のコンポーネントを構成する必要があります。
エージェント認証 すべてのPEMエージェントには、割り当てられたPostgresユーザーの名前と一致するクライアント証明書が必要です。
ルート信頼 バックエンドPostgresサーバーをルートCAファイルで構成して、受信エージェント証明書を検証する必要があります。
サーバー暗号化 バックエンドPostgresサーバーには、データストリームを暗号化し、IDを確立するために独自のSSL証明書とプライベートキーが必要です。
ニーズとポリシーに応じて、これらの証明書とキーを提供するために使用できるさまざまなモデルがあります。以下の情報は、インストールを開始する前にどのモデルに従うかを決定するのに役立ちます。
証明書管理モデル#
自動sslutils経由 または 手動外部CAまたはローカルCAを使用 の2つの方法でセキュリティ証明書を処理するようにPEMを構成できます。適切なパスの選択は、インフラストラクチャの複雑さとコンプライアンスのニーズによって異なります。
sslutilsで自動化 sslutils拡張機能を活用することにより、PEMは独自の認証局CAとして機能します。エージェントが登録すると、PEMは必要なクライアント証明書を自動的に生成します。
以下の用途に最適 速度と利便性が優先される標準の非HA展開。
欠点 厳密な外部CAポリシーを使用する組織の制御が低下します。
長所 pgBouncerと唯一の互換性のある方法トランザクションはプールされる同じユーザーからである必要があるため。少数の証明書の管理がはるかに簡単になります。
短所 特定のエージェント接続を監査するのが困難です。証明書を失効すると、すべてのエージェントが切断されます。
一意のエージェントユーザー個人の証明書 すべてのエージェントには、独自の一意の証明書と、対応する番号のPostgresユーザーたとえば、agent1、agent2などがあります。
長所 高い監査可能性。 1つの証明書を失効すると、1つのエージェントにのみ影響します。
短所 大量の証明書による多大な管理オーバーヘッド。
ローカルCA手動 sslutilsに依存する代わりに、PEMホストまたは他の場所でローカルCAを手動で構成し、それを使用してPEMサーバーとエージェントの証明書を発行できます。 上記の 外部CA の場合と同じアーキテクチャの選択があります。 これは、sslutilsを使用できずpgBouncerを使用する予定がある場合、外部/組織CAがない場合にのみお勧めします。