PostgreSQLのクライアント認証と暗号化の設定方法:使えば分かるPostgreSQL運用&チューニング(3)(2/3 ページ)
本連載第1回で導入したPostgreSQLに対してクライアント認証の設定をします。運用形態によっては、クライアントアプリケーションとPostgreSQL間の通信を暗号化する必要がありますので、それについても併せて紹介します
クライアント認証で設定する項目とそれぞれの挙動
ここからは、それぞれの項目で指定する値と、その詳細を確認していきます。
接続形式の指定
接続形式に指定できるものは表1の4種類です。
TCP/IP接続を指定する場合は、postgresql.confのlisten_addressパラメータも関係してきます。listen_addressには、TCP/IP接続を受け付けるインターフェイスのIPアドレスか、すべてのインターフェイスを表す*を指定する必要があります。
接続形式 | 内容 |
---|---|
local | UNIXドメインソケットを使用した接続 |
host | TCP/IPを使用した接続。SSLの使用/未使用は考慮しない |
hostssl | SSLで暗号化されたTCP/IPを使用した接続 |
hostnossl | SSLを使用していないTCP/IPを使用した接続 |
表1 接続形式に指定できる値 |
データベース名の指定
データベース名の指定には、個別のデータベース名のほかに特別な意味を持つ単語、all、sameuser、sameroleがあります。それぞれの意味は表2の通りです。sameroleを指定する際に用いられる「ロール」という概念は、グループと同じと考えてよいでしょう。
具体的なデータベース名を記述する場合は、カンマ区切りで複数指定できます。多くのデータベースを指定したい場合は、それらを別のファイルに記述して、データベース名の指定を@ファイル名とすると、そのファイルに書かれたデータベース名が適用されるようになります。
データベース名 | 内容 |
---|---|
all | すべてのデータベース |
sameuser | データベース名と同じ名前のユーザー |
samerole | データベースと同じ名前のロールに属するユーザー |
データベース名, データベース名, ……(カンマ区切りの列挙) | 列挙されているすべてのデータベース |
@ファイル名 | ファイルに記載されているすべてのデータベース |
表2 pg_hba.confのデータベース名で指定できる特別な値 |
ユーザー名の指定
ユーザー名の指定は、すべてのユーザーを表すallが使用できます。また、+ロール名とするとそのロールに属するユーザーを表すことができます。
そのほか、多くのユーザーを指定したい場合はカンマ区切りで複数を指定することもできます。また、データベース名と同様に、それらを別のファイルに記述して、ユーザー名の指定を@ファイル名とすると、そのファイルに書かれたユーザー名が適用されるようになります。
ユーザー名 | 内容 |
---|---|
all | すべてのユーザー |
+ロール名 | ロールに属するユーザー |
ユーザー名, ユーザー名, ……(カンマ区切りの列挙) | 列挙されているすべてのユーザー |
@ファイル名 | ファイルに記載されているすべてのユーザー |
表3 ユーザー名指定時に指定できる特別な値 |
IPアドレスの範囲指定
IPアドレスの範囲指定は、「192.168.1.0/24」のように「IPアドレス/マスク長」の形式で記述します。また、「192.168.1.0 255.255.255.0」のように「IPアドレス マスク」の形式で書くこともできます。
認証方法は、各種認証方式のほかにtrustとrejectがあります。trustは無条件で接続を許可し、rejectは、その反対で無条件で接続を拒否します。
そのほかの認証方式については、パスワード認証、GSSAPI認証、ident認証、LDAP認証、PAM認証など、多岐にわたりますので、詳細はPostgreSQLマニュアルの「21.2. 認証方式」を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.