[Ver2024.3 新機能]Snowflakeへのキーペア認証がサポートされました #Tableau
はじめに
2024年10月15日に Tableau Desktop 2024.3 がリリースされました。新機能の一つとして Snowflake への接続方法としてキーペア認証が正式にサポートされ、試してみましたのでこちらの記事で概要をまとめます。
Tableau Cloud 使用時の注意点
上記のリリースノートにもありますが 2024年10月のアップデートで Tableau Cloud についても Snowflake へのキーペア認証がサポートされています。ただし、こちらは一部機能制限があります。また、コミュニティでもいくつか投稿があがっていますが、抽出更新のスケジュール実行時などでキーペア認証を使用することができません。こちらはドキュメントに明確に記載がなく機能制限に含まれるのか不明ですが、少なくとも執筆時点(2024/10/24)で一部制約がある点はご注意ください。
Tableau Desktop:キーペア認証の構成
こちらの手順は以下に記載があります。
前提条件
前提として以下の条件があり満たされていないとエラーとなるので予めご確認ください。
- Tableau Desktop および Tableau Cloud バージョン 2024.3 以降
- バージョン 3.4.0 以降の Snowflake の ODBC ドライバー
- OpenSSL バージョン 3.x 以降
キーペアの作成
事前準備としてキーペアの作成を行います。ここでは以下の手順でパスフレーズ付きの秘密鍵を生成しました。
- 秘密鍵を生成
$ openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8
Enter Encryption Password:
Verifying - Enter Encryption Password:
- 公開鍵の生成
$ openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
Enter pass phrase for rsa_key.p8:
writing RSA key
こちらの手順は以下でも紹介されていますので、あわせてご参照ください。
Snowflake ユーザーの作成
Snowflake でキーペア認証用のユーザーを作成します。ここでは以下のコマンドでユーザーの作成と公開鍵を割り当てました。RSA_PUBLIC_KEY
にはrsa_key.pub
の内容を指定します。
USE ROLE USERADMIN;
CREATE USER tableau_user1 DEFAULT_ROLE = SYSADMIN;
ALTER USER tableau_user1 SET RSA_PUBLIC_KEY = 'xxxx';
DESCRIBE USER tableau_user1;
Tableau Desktop からキーペア認証で接続する
準備ができたら実際に Tableau Desktop からキーペア認証で接続します。Tableau Desktop の各リリースは以下より入手できます。
2024.3 以降の Tableau Desktop から Snowflake への接続設定画面を開くと下図のように「キーペアを使用したサインイン」が追加されています。
キーペア認証を選択すると下図の項目が表示されるので、上記の手順ではrsa_key.p8
の名前で生成した秘密鍵ファイルを指定し、設定していた場合、パスフレーズも入力します。
※ここでは検証のため強めの権限で作業している点にご注意ください。
設定内容に問題なければキーペア認証によりログインできます。
ワークブックのパブリッシュ
適当なワークブックを作成し Tableau Cloud にパブリッシュしてみます。下図の通りデフォルトの設定でパブリッシュしてみます。
この際、認証方式としては「ユーザーにメッセージを表示」のみが選択できるようになっていました。
データソースをパブリッシュ
こちらも特に問題ありませんでした。何らかのテーブルに接続しパブリッシュします。
下図の通り Cloud 側で確認できました。
Tableau Cloud からキーペア認証でコンテンツを表示する
これまでの手順で Tableau Cloud にパブリッシュしたコンテンツを表示してみます。上記の通り、この際、一部制限や検証時点はうまく表示できないことがありました。
データ ソースの保存済み認証資格情報の追加
公式ドキュメントとしては以下に記載がありますが、Tableau Cloud でキーペア認証を使用するには Tableau Cloud に認証情報を保存する必要があります。
「マイアカウントの設定」を開きます。
「設定 > セキュリティ > データ ソースの保存済み認証資格情報」項目内の Snowflake について「キーペアの認証資格情報」を追加します。
下図の表示となるので、Snowflake への接続に使用する各種情報を指定します。
項目追加後は下図のようになり接続テストも行えます。
ワークブックの表示
資格情報を追加後、パブリッシュしたワークブックを Tableau Cloud から開いてみましたが、下図の表示となり内容を表示することはできませんでした。
データソースの表示
上記の手順でパブリッシュしたデータソースを使用するワークブックを作成してみます。この場合、キーペア認証でデータソースを使用することができ Web 作成によってワークブックのパブリッシュも可能でした。
パブリッシュしたワークブックの表示も問題ありませんでした。
抽出更新の作成
続けて Tableau Desktop からキーペア認証でパブリッシュしたデータソースに対して、抽出更新スケジュールを設定してみます。
はじめに、接続の編集から認証資格情報を埋め込みます。
すると下図の表示になるので、これまでと同様に設定します。
テストし問題なければ[保存]します。
すると下図の通り認証資格情報が埋め込まれます。
このデータソースに対して抽出更新をスケジュールします。
ジョブを実行してみましたがこちらは秘密鍵が見つからないとして、検証時は実行することができませんでした。上記のコミュニティの投稿でも同様の事象が見られているようでした。
Tableau Cloud からキーペア認証でデータソースに接続する
先程は Tableau Desktop からパブリッシュしたデータソースの使用でしたが、Tableau Cloud 上から Snowflake にキーペア認証による接続に関してです。
こちらは以下に記載があるように現時点ではサポートされないようです。
Note: Publishing workbooks with Snowflake key-pair authentication is not supported in web authoring. You must use Tableau Desktop to create the workbooks, which can then be published to Tableau Cloud
試してみましたが、下図の内容(ワークブック・フロー・データソースの作成・仮想接続)時にキーペア認証は作成できませんでした。
まとめ
まとめると2024年10月24時点で私が検証した結果、以下の通りでした。
- Tableau Desktop
- キーペア認証可能、ワークブック・データソースのパブリッシュも可能
- Tableau Cloud
- Tableau Desktop からパブリッシュしたキーペア認証によるデータソースを使用することは可能
- Web 上で新しいワークブックを作成・表示もできる
- Tableau Desktop からパブリッシュしたキーペア認証によるワークブックは表示できない
- Tableau Desktop からパブリッシュしたキーペア認証によるデータソースに対して抽出更新スケジュールを設定できるが、実行時にエラーとなる
- Tableau Desktop からパブリッシュしたキーペア認証によるデータソースを使用することは可能
さいごに
Tableau の新機能である Snowflake へのキーペア認証を試してみました。現時点では Tableau Cloud での動作は不安定ですが、Tableau Desktop からの接続時には問題なく使用できます。
Snowflake 上でサービスユーザー(TYPE プロパティをSERVICE
)を定義した場合、ユーザー名・パスワード認証がサポートされないため、今後は OAuth の構成が必須かと思っていたところのアップデートなので、個人的にはとても嬉しい機能です!Tableau Server については 2025.1 以降からサポートされるとのことです!