はじめに
Verticaでクライアント認証を実装することにより、様々な認証方式を設定してVerticaへの接続をセキュアに行うことができます。今回は、ハッシュ認証による接続を例にご案内します。
実施手順
以下に、リモートクライアントからハッシュ認証方式で接続する手順を記載します。この方式では、ログイン時パスワードがハッシュ化されるため、通常よりパスワード流出のリスクを低減できます。
事前設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#ハッシュ方式の認証"v_dbadmin_hash"を作成します。 CREATE AUTHENTICATION v_dbadmin_hash METHOD 'hash' HOST '0.0.0.0/0'; ※接続元ホストは特に制限を行いません('0.0.0.0/0'に対して許可)。 接続元ホストを絞りたい場合は、任意のネットワークセグメントを指定します。 #dbadminユーザへのログインについて"v_dbadmin_hash"認証を有効にします。 GRANT AUTHENTICATION v_dbadmin_hash TO dbadmin; #v_dbadmin_hash認証の優先度を高く設定します。 ALTER AUTHENTICATION v_dbadmin_hash PRIORITY 10000; ※より高い優先度の別の認証設定がある場合、そちらが優先されます。 #ハッシュ化の種類をSHA512に設定します。 ALTER DATABASE DEFAULT SET PARAMETER SecurityAlgorithm = 'SHA512'; |
接続確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#クライアントPCのコマンドプロンプトから、dbadminユーザ指定でVerticaサーバ接続を試みます。 C:\Windows\system32>vsql -h xxx.xx.xx.xx -U dbadmin -w test Welcome to vsql, the Vertica Analytic Database interactive terminal. Type: \h or \? for help with vsql commands \g or terminate with semicolon to execute query \q to quit #user_sessions システムテーブルを確認し、Windowsのクライアントからハッシュ認証方式でログインできていることを確認します。 dbadmin=> SELECT user_name, client_hostname, client_os, authentication_method FROM user_sessions WHERE is_active = 't'; user_name | client_hostname | client_os | authentication_method -----------+----------------------+-------------------------------------+----------------------- dbadmin | 192.168.17.180:54415 | Windows 8 6.2.9200 x64 | Hash★ dbadmin | [::1]:36420 | Linux 3.10.0-1062.el7.x86_64 x86_64 | Password (2 rows) |
今回はハッシュ方式によるログインの実施手順をご案内しましたが、LDAPやTLS等、その他さまざまな認証方式も設定可能ですので、詳細はマニュアルをご確認ください。
参考
Implementing Client Authentication
https://www.vertica.com/docs/10.0.x/HTML/Content/Authoring/Security/ClientAuth/ImplementingClientAuthentication.htm#IPv4
DBADMIN Authentication Access