web-dev-qa-db-ja.com

AWS RDS Postgres pg_hba.conf auth-method

Amazon Web ServiceのRelational Database Server製品(AWS RDS)を使い始めましたが、セキュリティ上の問題を犯していないことを確認したいと思います。

私の設定:

  • Postgres
  • 公的にアクセス可能
  • 「PostgreSQL/My IP」に追加されたセキュリティグループの受信ルール

これらのオプションにより、pgAdminを使用してデータに接続してデータを入力できます。 AWS RDS Postgresで使用されているauth-methodを特定しようとしましたが、成功しませんでした。

クリアテキストのパスワード をpgAdminに接続すると送信されますか?


編集:

私は自分の恐れが正当化されると思い始めています。これは私が学んだことです:

  • PostgreSQL DBインスタンスでSSLを使用する の指示は、それがデフォルトではないことを示唆しています
  • PgAdmin接続プロパティの「SSL」オプションにオプションがありません(おそらく証明書を設定していないためです)
3
Peter L

私が収集できるものから、SSLは通常使用されています。異なるのは、サーバー証明書が検証されるレベルです。

Amazonからのガイド を読むと、時間がかかりますが役に立ちます。

覚えておくべきこと...

  1. SSLがオンかどうかを判断するには(どうやらこれにはプラグインが必要ですが、AWS RDSではデフォルトで機能します):

    sslを表示します。

  2. Psqlを使用するときにパスワードを自動的に提供する〜/ .pgpassファイルがあります(これによりしばらく混乱しました)。

  3. 完全なサーバー証明書の検証( AWSからのルート証明書 が必要):

    $ psql -h testpg.cdhmuqifdpib.us-east-1.rds.amazonaws.com -p 5432 "dbname = testpg user = testuser sslrootcert = rds-ca-2015-root.pem sslmode = verify-full"

  4. ただし、このコマンドではSSLはオンのままです(sslmode、sslrootcertなし)。

    $ psql -h testpg.cdhmuqifdpib.us-east-1.rds.amazonaws.com -p 5432 "dbname = testpg user = testuser"

  5. ルート証明書が提供されていないため、これは接続されません:

    $ psql -h testpg.cdhmuqifdpib.us-east-1.rds.amazonaws.com -p 5432 "dbname = testpg user = testuser sslmode = verify-full"

  6. 非SSL接続を確立したことはありませんが、サーバー上のパラメーターを使用してDBインスタンスへの非SSL接続を防止することができます。rds.force_ssl

1
Peter L