こんにちは!日比です!
みなさんはSnowflakeのPAT(Programmatic access tokens)をご存じでしょうか?
案件で調査する機会があったので記事にしてみました。
本記事でわかること
- PATについての理解
PATについて
PATとは
アクセストークンを利用した新たなSnowflakeの認証になります。
Snowflakeのセキュリティ強化の一環として、単体パスワード認証ができなくなり
その代わりになり得る手段として注目をあびています。
PATがリリースされる前は以下の対応となっていました。
キーペアやOauthは導入までの障壁が大きかった印象です。
それがPATにより大分解消されるのではないでしょうか。

PAT利用の条件
PATを利用するには下記条件を満たす必要があります。

詳細は下記を参照してください。
参考)PATについて
PATの利用例
今回はSnowflake CLIで接続テストを実施しました。
Snowflake CLIについては下記を参照してください。
参考)Snowflake CLIについて
まずはテストに必要なユーザーセットアップを行います。
■ユーザー作成
USE ROLE USERADMIN;
CREATE USER PAT_USER DEFAULT_ROLE = SYSADMIN TYPE = SERVICE;
■権限付与
USE ROLE SECURITYADMIN;
GRANT ROLE SYSADMIN TO USER PAT_USER;
■ネットワークポリシー適用
ALTER USER PAT_USER SET NETWORK_POLICY = MY_NW_VPN;
■PATの適用
ALTER USER PAT_USER ADD PROGRAMMATIC ACCESS TOKEN PAT_TEST_TOKEN
DAYS_TO_EXPIRY = 10 –有効期限
ROLE_RESTRICTION = ‘SYSADMIN’
–ユーザーに付与されているロール(このロールで接続)
;
→実行するとトークンが表示されるのでメモします。
次に、Snowflake CLIの設定です。
config.tomlに接続情報を追記します。
※config.tomlの場所は、snow –infoで確認可能です。
[connections.pat-test]
account = "組織名-アカウント名"
user = "PAT_USER"
password = "eyJ…(略)…KiQ" →ここに上記で出力されたトークンを貼り付けます。
接続確認を行います。
>snow connection test -c pat-test
+--------------------------------------------------------------+
| key | value |
|-----------------+--------------------------------------------|
| Connection name | pat-test |
| Status | OK |
| Host | 組織名-アカウント名.snowflakecomputing.com |
| Account | 組織名-アカウント名 |
| User | PAT_USER |
| Role | SYSADMIN |
| Database | not set |
| Warehouse | not set |
+--------------------------------------------------------------+
まとめ
いかがでしたでしょうか?
PATを利用することで、今までのユーザーパスワード認証の
延長のような感覚で接続が可能になります。
何かの参考になれば嬉しいです。
おわり。



コメント