SnowflakeのPATに触れてみた

ブログ

こんにちは!日比です!
みなさんは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を利用することで、今までのユーザーパスワード認証の
延長のような感覚で接続が可能になります。
何かの参考になれば嬉しいです。
おわり。

コメント

タイトルとURLをコピーしました