Secure Socket Layer (SSL) 接続を使用して Amazon Aurora PostgreSQL 互換エディションの DB クラスターに接続したいと考えています。
簡単な説明
SSL または Transport Layer Security (TLS) を使用して、アプリケーションから Aurora PostgreSQL 互換 DB クラスターへの接続を暗号化できます。SSL 接続と TLS 接続は、クラスターに単一レイヤーのセキュリティを提供し、クライアントとクラスターの間を移動するデータを暗号化します。詳細については、「SSL/TLS を使用して DB クラスターへの接続を暗号化する」をご参照ください。
セキュリティを確保するには、接続する前に、クライアントとサーバーの両方で SSL 接続を設定する必要があります。サーバーで SSL が設定されていない場合、クライアントはパスワードなどの機密情報を送信する可能性があります。SSL で保護された接続の作成の詳細については、「SSL サポートに関する PostgreSQL ドキュメント」を参照してください。
PostgreSQL の SSL モードは以下のとおりです。
- verify-full
- Verify-ca
- require
- prefer
- allow
- disable
ユースケースに適した SSL モードを選択する方法の詳細については、「さまざまなモードで提供される Protection の PostgreSQL ドキュメント」を参照してください。
解決方法
Amazon Relational Database Service (Amazon RDS) は、クラスターの作成時にクラスターの SSL または TLS 証明書を作成します。詳細については「Amazon Aurora PostgreSQL のセキュリティ」を参照してください。
SSL/TLS で DB クラスターに接続する
1. SSL/TSL 証明書をダウンロードします。
2. 証明書をオペレーティングシステムにインポートします。
3. SSL/TLS で Aurora PostgreSQL 互換 DB クラスターに接続します。
次の例を参照してください。
psql -h DBInstance.cluster-Account-Number.eu-west-1.rds.amazonaws.com -p 5432 "dbname=postgres user=postgres sslrootcert=global-bundle.pem sslmode=verify-full"
rds.force_ssl を 1 (オン) に設定すると、新しい SSL 設定をサポートするために DB インスタンスの pg_hba.conf ファイルが変更されます。pg_hba_file_rules ビューを使用して、pg_hba.conf ファイルの内容の概要を表示できます。rds.force_ssl を 1 (オン) に設定すると、pg_hba_file_rules ビューのタイプの値が hostssl に更新されます。
DB クラスターへの接続に SSL/TLS の使用を要件にすることができます。これを行うには、rds.force_ssl パラメータを使用します。rds.force_ssl パラメータはデフォルトで 0 に設定されています。つまり、オフになっています。このパラメータをオンにするには、rds.force_ssl を 1 に設定します。これにより、DB クラスターへの接続には SSL/TLS が要件となります。
詳細については、「SSL/TLS による Aurora PostgreSQL のセキュリティ」を参照してください。
SSL 接続を確認する
SSL 接続を確認するには、次のコマンドを実行します。
postgres=> select ssl_is_used();
ssl_is_used
-------------
t
(1 row)
postgres=> select ssl_cipher();
ssl_cipher
-----------------------------
ECDHE-RSA-AES128-GCM-SHA256
(1 row)