目次
- 1 はじめに
- 2 パスワードポリシーの説明と設定例
- 2.1 PASSWORD_LIFE_TIME
- 2.2 PASSWORD_MIN_LIFE_TIME
- 2.3 PASSWORD_GRACE_TIME
- 2.4 FAILED_LOGIN_ATTEMPTS
- 2.5 PASSWORD_LOCK_TIME
- 2.6 PASSWORD_REUSE_MAX
- 2.7 PASSWORD_REUSE_TIME
- 2.8 PASSWORD_MAX_LENGTH
- 2.9 PASSWORD_MIN_LENGTH
- 2.10 PASSWORD_MIN_LETTERS
- 2.11 PASSWORD_MIN_UPPERCASE_LETTERS
- 2.12 PASSWORD_MIN_LOWERCASE_LETTERS
- 2.13 PASSWORD_MIN_DIGITS
- 2.14 PASSWORD_MIN_SYMBOLS
- 2.15 PASSWORD_MIN_CHAR_CHANGE
- 3 参考情報
- 4 検証バージョンについて
- 5 更新履歴
はじめに
VerticaのDBユーザーには、パスワードに使用できる文字数や文字種の組合せなど、様々なパスワードポリシーが設定できます。パスワードポリシーを設定することで、推測されやすいパスワードの設定を防ぎ、第三者から不正にDBアクセスされるリスクを軽減できます。パスワードポリシーの説明と設定例
Verticaで設定可能なパスワードポリシーについて、ご紹介します。下記パラメータのデフォルトは全て「Unlimited」であり、制限なしを意味しています。PASSWORD_LIFE_TIME
現在のパスワードが有効な期間(日数)。期間経過後、DBユーザーはパスワードを変更する必要があります。「PASSWORD_GRACE_TIME」がゼロまたは「unlimited」以外に設定されている場合、パスワードの有効期限切れの警告が表示されます。■パスワードの有効期間を超過した後にログインを試み、パスワード変更を強制されている例 (設定値=1 の場合)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ vsql -U test Password: The password has expired. Changing password for test New password: Retype new password: Password changed. 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 test=> |
PASSWORD_MIN_LIFE_TIME
パスワードを変更できるまでの最低期間(日数)。この期間を経過するまで、DBユーザーはパスワードの変更ができません。■パスワードの変更時、最低期間を超過していない場合の例 (設定値=365 の場合)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$ vsql Password: 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 dbadmin=> CREATE PROFILE p_test limit PASSWORD_MIN_LIFE_TIME 365; CREATE PROFILE dbadmin=> CREATE USER test PROFILE p_test IDENTIFIED BY 'passw0rd00'; CREATE USER dbadmin=> \q $ vsql -U test Password: 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 test=> ALTER USER test IDENTIFIED BY 'passw0rd01' REPLACE 'passw0rd00'; ROLLBACK 9721: Password cannot be changed until password minimum lifetime has passed |
PASSWORD_GRACE_TIME
「PASSWORD_LIFE_TIME」を過ぎた後も、警告メッセージを表示させて、ログインを許可する期間(日数)。この期間経過後、DBユーザーはログイン時にパスワードの変更を強制されます。■パスワード変更猶予期間の警告メッセージ例 (設定値=7 の場合)
1 2 3 4 5 6 7 8 9 10 11 12 |
--パスワード期限が近いことを警告 [dbadmin@motosrv1 test]$ vsql -U test Password: The password will expire soon. Please change password with "\password". 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 test=> |
FAILED_LOGIN_ATTEMPTS
ログインに連続失敗した場合、アカウントロックされるまでの試行回数。■ログインに連続して失敗し、アカウントがロックされた場合の例 (設定値=2 の場合)
1 2 3 4 5 6 7 8 9 10 |
--パスワードの入力ミス $ vsql -U test Password: vsql: FATAL 3781: Invalid username or password --アカウントがロックされる $ vsql -U test Password: vsql: FATAL 4975: The user account "test" is locked due to too many invalid logins HINT: Please contact the database administrator |
PASSWORD_LOCK_TIME
「FAILED_LOGIN_ATTEMPTS」でアカウントロック後、解除されるまでの期間(日数)。期間経過後、自動的にアカウントロックは解除されます。■アカウントがロックされた後、PASSWORD_LOCK_TIMEを超過してアカウントロックが解除された例 (設定値=7 の場合)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
--アカウントロックされている状態 $ date 2019年 3月 27日 水曜日 13:00:25 JST $ vsql -U test Password: vsql: FATAL 4975: The user account "test" is locked due to too many invalid logins HINT: Please contact the database administrator --設定値以上の日数経過後、ログインに成功 $ date 2019年 4月 27日 土曜日 13:00:03 JST $ vsql -U test Password: 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 test=> |
PASSWORD_REUSE_MAX
現在のパスワードの変更後、同一パスワードが再利用可能になるまでに必要なパスワードの変更回数。■パスワードの変更時、同一パスワードを指定したために再利用不可のエラーが発生した例 (設定値=2 の場合)
1 2 3 4 5 6 7 8 9 |
$ vsql -U test Password: The password has expired. Changing password for test New password: Retype new password: vsql: ERROR 2302: Can not reuse the previous 2 passwords HINT: Please check PASSWORD_REUSE_MAX in user's profile |
PASSWORD_REUSE_TIME
現在のパスワード変更後、再利用可能になるまでの日数。■パスワードの変更時、同一パスワードを指定したために再利用不可のエラーが発生した例 (設定値=90 の場合)
1 2 3 4 5 6 7 8 9 |
$ vsql -U test Password: The password has expired. Changing password for test New password: Retype new password: vsql: ERROR 2300: Can not reuse any recent passwords HINT: Please check PASSWORD_REUSE_TIME in user's profile |
PASSWORD_MAX_LENGTH
設定可能なパスワードの最大文字数。「8」から「512」の範囲で設定可能です。■DBユーザーの作成時、パスワードの最大長を超過した場合の例 (設定値=8 の場合)
1 2 3 4 |
dbadmin=> create user test identified by 'aaaaaaaaa' profile test_profile; ROLLBACK 4923: That password is not acceptable DETAIL: The password is too long HINT: Maximum password length is 8 characters |
PASSWORD_MIN_LENGTH
設定可能なパスワードの最小文字数。「0」からPASSWORD_MAX_LENGTHの範囲で設定可能です。■DBユーザーの作成時、パスワードの最小長を下回った場合の例 (設定値=2 の場合)
1 2 3 4 |
dbadmin=> CREATE USER test IDENTIFIED BY 'a' profile test_profile; ROLLBACK 4923: That password is not acceptable DETAIL: The password is too short HINT: Minimum password length is 2 characters |
PASSWORD_MIN_LETTERS
パスワード設定時に含める必要があるアルファベット大文字または、小文字(A-Z または a-z)の数。アルファベット大文字または、小文字のいずれかを設定値分含める必要があります。「0」からPASSWORD_MAX_LENGTHの範囲で設定可能です。■DBユーザーの作成時、パスワードにアルファベット文字の数が不足している例 (設定値=2 の場合)
1 2 3 |
dbadmin=> CREATE USER test IDENTIFIED BY 'a' profile test_profile; ROLLBACK 4923: That password is not acceptable DETAIL: The password must have at least 2 alphabetic characters |
PASSWORD_MIN_UPPERCASE_LETTERS
パスワード設定時に含める必要があるアルファベット大文字(A-Z)の数。「0」からPASSWORD_MAX_LENGTHの範囲で設定可能です。■DBユーザーの作成時、パスワードにアルファベット大文字の数が不足している例 (設定値=1 の場合)
1 2 3 |
dbadmin=> create user test identified by 'a' profile test_profile; ROLLBACK 4923: That password is not acceptable DETAIL: The password must have at least 2 uppercase letters |
PASSWORD_MIN_LOWERCASE_LETTERS
パスワード設定時に含める必要があるアルファベット小文字(a-z)の数。「0」からPASSWORD_MAX_LENGTHの範囲で設定可能です。■DBユーザーの作成時、パスワードにアルファベット小文字の数が不足している例 (設定値=1 の場合)
1 2 3 |
dbadmin=> create user test identified by 'A' profile test_profile; ROLLBACK 4923: That password is not acceptable DETAIL: The password must have at least 2 lowercase letters |
PASSWORD_MIN_DIGITS
パスワード設定時に含める必要がある数字(0-9)の数。「0」からPASSWORD_MAX_LENGTHの範囲で設定可能です。■DBユーザーの作成時、パスワードに数字の数が不足している例 (設定値=1 の場合)
1 2 3 |
dbadmin=> create user test identified by 'a' profile test_profile; ROLLBACK 4923: That password is not acceptable DETAIL: The password must have at least 2 numeric characters (0-9) |
PASSWORD_MIN_SYMBOLS
パスワード設定時に含める必要がある記号($、#、@など)の数。「0」からPASSWORD_MAX_LENGTHの範囲で設定可能です。■DBユーザーの作成時、パスワードに記号の数が不足している例 (設定値=1 の場合)
1 2 3 |
dbadmin=> create user test identified by 'a' profile test_profile; ROLLBACK 4923: That password is not acceptable DETAIL: The password must have at least 2 non-alphanumeric characters |
PASSWORD_MIN_CHAR_CHANGE
新しいパスワードが古いパスワードと最低限違わなければならない文字数。「0」からPASSWORD_MAX_LENGTHの範囲で設定可能です。■パスワードの変更時、最低限違わなければならない文字数を満たしていない場合の例 (設定値=2 の場合)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
$ vsql Password: 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 dbadmin=> CREATE PROFILE p_test limit PASSWORD_MIN_CHAR_CHANGE 2; CREATE PROFILE dbadmin=> CREATE USER test PROFILE p_test IDENTIFIED BY 'passw0rd00'; CREATE USER dbadmin=> \q $ vsql -U test Password: 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 test=> ALTER USER test IDENTIFIED BY 'passw0rd01' REPLACE 'passw0rd00'; ROLLBACK 9727: Password is not significantly different than previous password test=> ALTER USER test IDENTIFIED BY 'passw0rd11' REPLACE 'passw0rd00'; ALTER USER |
参考情報
・Profileshttps://www.vertica.com/docs/10.1.x/HTML/Content/Authoring/Security/ClientAuth/Profiles.htm
・特定のIPアドレスからのみ接続可能なユーザーを作成する
http://vertica-tech.ashisuto.co.jp/authentication_hash/
検証バージョンについて
この記事の内容はVertica 10.1で確認しています。更新履歴
2021/03/31 Vertica 10.1の情報を反映・PASSWORD_MIN_LIFE_TIME、PASSWORD_MIN_CHAR_CHANGEの追加
プロファイルの説明を修正
・PASSWORD_MAX_LENGTH、PASSWORD_MIN_DIGITSの指定範囲
2019/03/27 Vertica 9.2の情報を反映
2016/03/16 本記事を公開