サービスユーザー(TYPE=SERVICE)とプログラムアクセストークン(programmatic access token、PAT)を組み合わせることで利用可能です。これにより、従来のユーザー・パスワード認証から移行して継続利用できます。
(参考)Using programmatic access tokens for authentication
プログラムアクセストークンの取得方法は以下参考にしてください。
必須の設定
-
サービスユーザーの作成
- TYPE = SERVICE を指定
- default_warehouse を設定(必須)
- default_role は必須ではありませんが、運用上は設定しておくことを推奨
-- サービスユーザー作成 create or replace user ユーザー名 type = service default_warehouse = 'ウェアハウス名' default_role = public; -
ロールの作成・権限付与
- データベース/ウェアハウス権限はロールに付与する
- PATはユーザーではなくロールに対して制御されるため、ユーザーにロールを割り当てる形を取る
-- 接続用ロール作成 create or replace role ロール名; -- ロールをユーザー・SYSADMINに付与 grant role ロール名 to user ユーザー名; grant role ロール名 to role sysadmin; -- データベース権限 grant all on database データベース名 to role ロール名; -- ウェアハウス権限 grant usage, operate on warehouse ウェアハウス名 to role ロール名; -
ネットワークポリシーの設定
- network_policy によるIP制限は必須(TROCCOからのIPアドレスを指定しています)
-- ネットワークポリシー作成 create network policy if not exists ポリシー名 allowed_ip_list = ('18.182.232.211', '13.231.52.164', '3.113.216.138', '57.181.137.181', '54.250.45.100'); -- ユーザーにポリシーを適用 alter user ユーザー名 set network_policy = ポリシー名;
任意で設定可能な項目
- 認証ポリシー
-
authentication policy を作成し、利用可能な認証方式を制限できる
例: PATだけでの認証に絞る場合は authentication_methods = ('programmatic_access_token') を設定
create or replace authentication policy test_auth authentication_methods = ( 'programmatic_access_token' -- PAT認証 ); alter user ユーザー名 set authentication_policy = test_auth;
-
運用上の注意点
- トークンの有効期限
- days_to_expiry の最大値は365日
- 期限切れに備え、トークンのローテーション運用(手動または自動化)が必要
Programmatic Access Token 発行方法
-- PAT発行(ロール制限あり)
alter user ユーザー名 add programmatic access token トークン名
role_restriction = 'ロール名'
days_to_expiry = 365;
-- 期限切れや再発行時は remove して再作成
alter user ユーザー名 remove programmatic access token トークン名;
コメント
0件のコメント
記事コメントは受け付けていません。