VerticaのユーザはデフォルトではすべてのIPアドレスからの接続を受け付けます。
セキュリティ対策等で、特定のIPアドレスからの接続しか受け付けないようにしたい場合は、任意の認証方式(認証ルール)を作成し、それをユーザに割り当てます。
認証方式の作成、割り当て方法
1)事前にユーザを作成しておきます。すでにユーザを作成してある場合は、手順1)はスキップしてください。
例)kka1ユーザを作成する場合
1 2 |
dbadmin=> CREATE USER kka1; CREATE USER |
※本例ではログインパスワードや、権限の付与等は割愛しています。
2)以下のコマンドを実行し、認証方式(認証ルール)を作成します。
1 |
CREATE AUTHENTICATION 認証方式名 METHOD 'hash' HOST '接続を許可するIPアドレス'; |
例)192.168.111.111からの接続を許可するtestという名前の認証方式を作成する場合
1 2 |
dbadmin=> CREATE AUTHENTICATION test METHOD 'hash' HOST '192.168.111.111'; CREATE AUTHENTICATION |
例)192.168.111.0~192.168.111.255からの接続を許可するtest2という名前の認証方式を作成する場合
1 2 |
dbadmin=> CREATE AUTHENTICATION test2 METHOD 'hash' HOST '192.168.111.0/24'; CREATE AUTHENTICATION |
3)以下のコマンドを実行し、手順2)で作成した認証方式を対象のユーザに割り当てます。
1 |
GRANT AUTHENTICATION 認証方式名 TO ユーザ名; |
例)test認証方式をkka1ユーザに割り当てる場合
1 2 |
dbadmin=> GRANT AUTHENTICATION test TO kka1; GRANT AUTHENTICATION |
設定後、許可されていないIPアドレスからアクセスを試みた場合、以下のようにエラーが返ります。
1 2 |
$ vsql -U kka1 -h testsrv vsql: FATAL 2248: Authentication failed for username "kka1" |
なお、認証方式を1つでも設定した場合、設定した認証方式の接続のみがホワイトリスト扱いとなり、それ以外からの接続は拒否されます。例えば、上記test認証方式を設定した場合、192.168.111.111からkka1ユーザでのアクセスは許可されますが、kka2ユーザやdbadminユーザなどそれ以外のユーザでのアクセスは拒否されるようになります。
また、192.168.111.100等の別のIPアドレスからのkka1ユーザを含む何れのユーザでのアクセスも拒否されるようになります。
つまりクラスタ全体で許可する接続は「192.168.111.111からのkka1ユーザでの接続」のみとなります。
※Verticaがインストールされているサーバ(localhost)からはdbadminユーザで接続できます。
そのため、必要に応じて複数の認証方式を作成し、他ユーザのアクセスについても許可してください。