6.4. pool_passwdにおけるAES256暗号化パスワードの使用

SCRAM認証は中間者攻撃から保護します。 そのため、Pgpool-IIPostgreSQLバックエンドの認証のためにユーザパスワードを要求します。

しかしながら、"pool_passwd"ファイルにクリアテキストパスワードを保存するのは良い案ではありません。

代わりにAES256で暗号化されたパスワードを保存し認証に使用することができます。 パスワードは、最初にユーザが提供した鍵を使ってAES256暗号で暗号化され、暗号化されたパスワードをbase64でエンコードし、エンコードされた文字列の接頭にAESを追加します。

注意: 適切にフォーマットされたAES256暗号化パスワードを作成するために pg_encコマンドを使用できます。

6.4.1. 暗号化パスワードエントリの作成

pg_encpool_passwdファイル上にAES暗号化パスワードエントリを作成するために使用できます。 pg_encはパスワードエントリ暗号化のための鍵を要求します。 その後、認証に使うパスワードを復号化するため、Pgpool-IIで同じ鍵が必要になります。

注意: 暗号化パスワード機能を使うためにSSL(--with-openssl)サポート付でPgpool-IIをビルドする必要があります。

6.4.2. Pgpool-IIへの復号鍵の提供

もし、pool_passwd ファイルにAES暗号化パスワードが保存されていた場合、Pgpool-IIはそれらのパスワードを復号化するために復号鍵が必要となり、Pgpool-IIは起動時に.pgpoolkeyファイルから復号鍵を読み込もうとします。 .pgpoolkeyは復号鍵の文字列を格納した単純なテキストファイルです。

デフォルトでは、Pgpool-IIはユーザのホームディレクトリの.pgpoolkeyもしくはPGPOOLKEYFILE環境変数により設定されるファイルを探します。 pgpoolコマンドの(-k, --key-file=KEY_FILE)オプションを使用し、鍵ファイルを指定をすることもできます。 .pgpoolkeyの権限はグループ、他者へのアクセスをすべて拒否しなければなりませんので、chmod 0600 ~/.pgpoolkeyコマンドによって設定します。