TableauからSnowflakeへOAuthでの接続を可能にする
はじめに
私が所属しているライフイズテックではデータ基盤にSnowflakeを採用しています。BIツールとしてTableauを導入することになったため、TableauからSnowflakeに接続する際にOAuthでの接続をするための設定についてまとめます。
Snowflakeでの設定
TableauからSnowflakeのデータにアクセスする際に、ユーザー名/パスワード以外にSnowflake OAuthでのサインインを選択することができます。
TableauでのSnowflake OAuth接続の際には、カスタムクライアント統合ではなく、パートナーアプリケーション用のSnowflake OAuthを使います。
※Tableau ServerとDesktopは別のSECURITY INTEGRATION
の設定が必要となります。
Tableau Server用のSECURITY INTEGRATIONの作成
Tableau Server用のSECURITY INTEGRATION
は下記のSQLで作成ができます。
CREATE OR REPLACE SECURITY INTEGRATION tableau_server_oauth
TYPE = OAUTH
ENABLED = TRUE
OAUTH_CLIENT = TABLEAU_SERVER
;
弊社ではSnowflakeの管理にTerraformを導入しているため、弊社では下記のようにTerraformリソースを定義しています。
resource "snowflake_oauth_integration_for_partner_applications" "tableau_server_oauth" {
name = "TABLEAU_SERVER_OAUTH"
oauth_client = "TABLEAU_SERVER"
comment = "OAuth integration for Tableau Server"
enabled = true
oauth_issue_refresh_tokens = "true"
oauth_refresh_token_validity = 7776000 // 90 days
oauth_use_secondary_roles = "NONE"
}
Tableau Desktop用のSECURITY INTEGRATIONの作成
Desktop用は下記になります。
CREATE OR REPLACE SECURITY INTEGRATION tableau_desktop_oauth
TYPE = OAUTH
ENABLED = TRUE
OAUTH_CLIENT = TABLEAU_DESKTOP
;
resource "snowflake_oauth_integration_for_partner_applications" "tableau_desktop_oauth" {
name = "TABLEAU_DESKTOP_OAUTH"
oauth_client = "TABLEAU_DESKTOP"
comment = "OAuth integration for Tableau Desktop"
enabled = true
oauth_issue_refresh_tokens = "true"
oauth_refresh_token_validity = 7776000 // 90 days
oauth_use_secondary_roles = "NONE"
}
以上でSnowflake側の設定は完了です。
Tableau Cloud
アイコン > マイアカウントの設定 > 設定
より、Snowflakeの追加を選択します。
接続先OAuthインスタンスのURLとして、https://xxx.snowflakecomputing.com/
のURLを入力し、接続を行います。
snowflakeのユーザーのロールは、デフォルトロールを利用する場合では空のままにします。
ブラウザでsnowflakeのログインページが開くので、snowflakeのアカウントでログインします。Tableauからのアクセスを許可するかどうかのページに遷移するので、そのまま「許可」を選択します。
Tableau Desktop
Tableau DesktopからSnowflakeへの接続を設定する前に、ODBCドライバーのダウンロードを行ったうえで、Tableau Desktopを開きます。
ODBCドライバーはsnowflakeのダウンロードページよりダウンロードできます。
Tableau Desktopで、その他からSnowflakeを選択します。
サーバーとして、https://xxx.snowflakecomputing.com/
のURLを入力します。
役割(ロール)とウェアハウスについては、Snowflakeユーザーにデフォルトが設定されているものを利用する場合は、空のままでも大丈夫です。
そのまま「サインイン」を選択肢、Tableau Serverと同様にSnowflake上でログインし、Tableau Desktopからのアクセスを許可します。
宣伝
ライフイズテック サービス開発部では、定期的に気軽にご参加いただけるカジュアルなイベントを実施しています。開催予定のイベントは、 connpass のグループからご確認ください。興味のあるイベントがあったらぜひ参加登録をお願いいたします。皆さんのご参加をお待ちしています!
Discussion