データベースをインターネットに公開することは特に悪い考えだとDBAや他のサイトで見たことがありますが、PostgreSQLにはSSL証明書のみの認証があることに気付きました。これにより、データベースをインターネットに公開する方が安全になりますか(非localhost接続からの証明書のみの認証)、VPNを確立するか、SSHを介してトンネルする方が良いでしょうか?
後者がより安全である場合、何がそれをより安全にしますか?この点で明白な何かを見落としているような気がします。
以前にいくつかのデータベースをセットアップしたことがありますが、実際には、何らかのリモート管理を必要とするデータベースをセットアップする必要はありません(この場合、「リモート」とは、インターネットまたはWANではなく、 LAN)。
それは一般的にそれが悪い考えであるということではなく、実際にデータベースを公開インターフェースに公開するために本当に必要である場合がほとんどないということです。
セキュリティの大部分は、公開する攻撃面の数を減らすことです。アプリケーションがデータベースを完全に公開しないhaveでない場合は、ファイアウォールの背後にそれを隠して、将来発生する可能性のある潜在的なエクスプロイトから別のレベルの保護を行うことができます。
私は、「リモート管理」をpostgresを公開する十分な理由とは考えていません。あなたが言うように;すでにボックスへのSSHアクセスが必要なため、postgresをファイアウォールの内側に簡単に保持でき、そこから問題なくアクセスできます。
RE:SSL接続。これは、第三者がデータをネットワーク経由で送信しているときにデータを読み取るだけで満足している場合を除き、必須です。ここでの考慮事項は、公衆インターネット上のトラフィックと同じです。
データベースをインターネットに公開する必要がある可能性のある唯一のシナリオは、レプリケーションまたはクラスタリングの目的です。この場合は、ファイアウォール経由で追加のホストにのみアクセスを制限する必要があります。
その他の用途については、データベースにアクセスするためのゲートウェイとして機能するWebサービスを作成することをお勧めします。これらのサービスは、必要な機能だけを提供し、セキュリティと整合性についてはお客様が責任を負います。
実際、データベースに接続するすべてのWebフロントエンドは、Webサーバー上のスクリプトをRESTful Webサービスとして使用して、このようなことを行います。