初めに
snowflakeのIDパスワード認証の場合MFA認証が必要となった。
Snowflake、2025年11月までに単一要素パスワード認証をブロック
Tableauではsnowflakeをデータソースとして使用しており、接続にはID・パスワード認証を使用していた。
そのため、これを機にKeyPair認証へ変更することとなり、備忘録としてここに残す。
※)Tableauのデータは「抽出」であり、「抽出の更新」で定期更新を行っている。
事前準備
1. Tableau Desktop および Tableau Cloud バージョンを確認する
1. Tableau Desktop にログインし、トップメ ニューから「ヘルプ」>「Tableauバージョン情報」を押下する
2. バージョンを確認する
3. 2024.3以降の場合→5に進む
4. 2023.3より前のバージョンの場合
→以下より2024.3以降のバージョンをダウンロードする
Tableau製品ダウンロード
5. Tableau Cloud にログインし、トップ メニュー バーで、
右上隅の情報アイコン>「Tableau Server について」 を押下する
バージョンが2024.3以降であることを確認する
2. Snowflake の ODBC ドライバーがバージョン 3.4.0 以降であるか確認する
1. スタートメニューに「odbc」と入力し、検索する。
2. 「Microsoft ODBC Administrator」を押下し、起動する。
3. 「ドライバー」タブに以下があるかを確認する
・名前:SnowflakeDSIIDriver
・バージョン:3.04.00以降
4. ドライバが存在する場合→次のセクションに進む
ドライバが存在しない もしくは 3.4.0以前のバージョンの場合
→以下より3.4.0以降のバージョンをダウンロードする
snowflake ODBC Downloads
3. OpenSSL バージョンが 3.x 以降であるか確認する
1. コマンドプロンプトを起動する
2. 以下のコマンドを実行する
openssl version
3. バージョンが3.x移行の場合→次のセクションに進む
4. opensslが存在しない もしくは バージョンが3.xより前の場合
→「OpenSSLダウンロード」シートにしたがってダウンロードする
4. 各データソースの「抽出の更新」を確認し、控えておく
OpenSSLダウンロード
参考:WindowsにOpenSSLをインストールする方法を詳しく解説! - IT Information
1. Downloadページより、Win64 OpenSSL v3.x | Light の MSI をダウンロードする
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
2. インストーラに従ってインストールする
途中OpenSSLのDLLファイルの格納場所を聞かれるので、OpenSSL のバイナリディレクトリを選択する
また、インストール後に寄付を求められるので、寄付をしない場合はチェックを外して終了する
3. 環境変数を設定する
1. [Windows]+[R]キーを押下して、「ファイルを指定して実行」ダイアログを開く
2. ダイアログに「SystemPropertiesAdvanced」を入力する
3. システムのプロパティ画面の詳細設定タブより、「環境変数」ボタンを押下
4. システム環境変数のPathを選択し、「編集」ボタンを押下
5. 「新規」ボタンを押下し、openssl.exeを保存したパスを入力する
※インストーラでデフォルトのままの場合、「C:\Program Files\OpenSSL-Win64\bin」となる
4. OpenSSLが正常にインストールされたことを確認する
1. コマンドプロンプトを起動する
2. 以下のコマンドを実行する
openssl version
3. インストールしたバージョンが表示されることを確認する
キーペア認証設定
1. snowflakeからtableauにアクセスするユーザーで秘密鍵ファイル・公開鍵ファイルを作成する
参考:キーペア認証とキーペアローテーション | Snowflake Documentation
1. 秘密鍵を生成する
コマンドプロンプトを開き、以下のコマンドを実行
(暗号化バージョンを生成する場合)
openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out 秘密鍵ファイル名
Enter Encryption Password:と表示されたら、暗号化のパスワードを打ち込む。
2. 公開鍵を生成する
ターミナルウィンドウで、以下のコマンドを実行
openssl rsa -in 秘密鍵ファイル名 -pubout -out 公開鍵ファイル名
Enter pass phrase for 秘密鍵ファイル名:と表示されたら暗号化のパスワードを打ち込む。
3. 秘密鍵と公開鍵を保存する
1, 2のコマンドを実行したカレントディレクトリに各ファイルが保存されているため、必要に応じてファイルを移動、コピーする
公開鍵ファイルをテキストエディタで開き、xxxxxxxxxの部分をメモ帳に保存しておく。(「2.snowflakeユーザー管理者が~に登録」で使用)
-----BEGIN PUBLIC KEY-----
xxxxxxxxx
-----END PUBLIC KEY-----
2. snowflakeユーザー管理者が公開鍵を「snowflakeからtableauにアクセスするユーザー」に登録
1.「snowflakeユーザー管理者でSnowflakeにログインする
2. snowflakeでワークシートを新規作成し、以下のコマンドを実行する
ALTER USER ユーザー名 SET RSA_PUBLIC_KEY='公開鍵の文字列';
※ユーザー名:キーペア認証の登録をしたい、snowflakeからtableauにアクセスするユーザー名
公開鍵の文字列:手順1.3で公開鍵ファイルをテキストエディタに開きメモ帳に保存したxxxxxxxxxの部分
3. ユーザーの公開キーのフィンガープリントを検証する
snowflakeのワークシートで以下のコマンドを実行して、ユーザーの公開キーのフィンガープリントを取得する
DESC USER ユーザー名;
SELECT TRIM((SELECT "value" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
WHERE "property" = 'RSA_PUBLIC_KEY_FP'), 'SHA256:');
コマンドプロンプトで次のコマンドを実行する
openssl rsa -pubin -in 公開鍵ファイル名 -outform DER | openssl dgst -sha256 -binary | openssl enc -base64
両方の出力を比較し、一致することを確認する(一致する場合、公開キーは正しく設定されていることがわかる)
3. Tableau Cloudでデータソースの保存済認証資格情報の追加をする
キーペア認証のための Snowflake の設定 - Tableau
1. Tableau Cloud または Tableau Server にサインインし、[マイ アカウント設定] のページに移動する
2. [セキュリティ] セクションで [データ ソースの保存済み認証資格情報] を見つける
3. [Snowflake] の横にある [追加] を押下する
4. [新しい保存済み認証資格情報の追加] ウィンドウで [キーペア認証] を選択し、[追加] を押下する
5. [キーペア認証資格情報の追加] ウィンドウで、以下の情報を入力する
Snowflakeサーバー:接続先のサーバ
ウェアハウス:環境に応じて設定する
認証:キーペアを使用したサインイン
ユーザー名:ログインに使用するユーザー名
秘密キーファイル:1.3で保存した秘密鍵ファイルを選択する
秘密キーファイルのパスワード:1.1で設定したパスワード
6. キーペアの認証資格情報が追加されたあとは、「テスト」から接続テストを実施し、接続ができることを確認する
4. 秘密鍵を利用してTableau Desktopでsnowflakeにキーペア認証で接続
1. Tableau Cloudより認証を変更したいデータソースをダウンロードする
「探索」より対象の「データソース」を開き、データソース名の右側にある3点リーダーを押下する
「リビジョン履歴」を押下し、最新のデータソースをダウンロードする
2. 3.1でダウンロードしたファイルをTableau Desktopで開く
3. 開いた際、接続情報の入力が求められるため、以下を設定する
Snowflakeサーバー:接続先のサーバ
ウェアハウス:環境に応じて設定する
認証:キーペアを使用したサインイン
ユーザー名:ログインに使用するユーザー名
秘密キーファイル:1.3で保存した秘密鍵ファイルを選択する
秘密キーファイルのパスワード:1.1で設定したパスワード
5. キーペア認証後、データソースをTableau cloudにパブリッシュする
1. Tableau Desktopより、サーバー>データソースのパブリッシュ よりデータソースをパブリッシュする
パブリッシュ先が上書きとなるようにする。
また、認証は「埋め込みパスワード」であること
2. Tableau cloudのデータソースの接続タブにて、アクション(三点リーダー)より、「接続の編集」を押下
3. 「接続内の埋め込みの認証資格情報」を選択する
4. 3にて追加した、ログインに使用するユーザを選択する
5. 「テスト接続」から接続テストを実施し、接続ができることを確認する
6. 接続方法が「ライブ接続」になっているため、「抽出」に変更する
7. 「抽出の更新」タブにてスケジュールが消えているため、「事前準備」シートの項番4で控えておいたスケジュールを再設定する
8. 「接続されたワークブック」より、ワークブックを選択し、データが問題なく表示されることを確認する