【 Alteryx One 】 Alteryx Analytics Cloud 環境からSnowflake OAuth 接続を行う方法

【 Alteryx One 】 Alteryx Analytics Cloud 環境からSnowflake OAuth 接続を行う方法

2025.08.07

こんにちは、業務効率化ソリューション部のikumiです。
今回は、Alteryx Analytics CloudZプラットフォーム(以下AAC)から、SnowflakeへのOAuth接続を作成する方法について記載していきます。

なお、Alteryx Oneに関する説明については以下のブログに詳しく記載されていますので、興味のある方は確認してみてください!
https://dev.classmethod.jp/articles/alteryx-one/

Snowflake OAuth 接続の作成方法

AlteryxでOAuth2.0クライアントを作成するために、まずはSnowflake側でOAuthクライアントアプリケーションを作成する必要があります。また、今回の接続方法は、接続するSnowflakeがパブリック サブネットでホストされている必要があり、 PrivateLinkを有効にしている場合、Snowflake OAuth接続はサポートされません。

Snowflake 側での作業

  • SnowflakeでOAuth 2.0クライアントアプリを作成するために、ACCOUNTADMINロールで作業を行こなう
  • ワークシートに移動し、以下のコマンドを実行しセキュリティ統合を作成
CREATE SECURITY INTEGRATION
         <NAME> ##任意の名前
         TYPE = OAUTH
         OAUTH_CLIENT = CUSTOM
         OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
         OAUTH_REDIRECT_URI = 'https://<ログインURL>/oauth2/callback'  ##AACコールバックURI。https://us1.alteryxcloud.com/oauth2/callbackなど、自身の環境に置き換える
         ENABLED = TRUE
         OAUTH_ALLOW_NON_TLS_REDIRECT_URI = FALSE
         PRE_AUTHORIZED_ROLES_LIST = ( 'ROLE_NAME' )  ##アクセスを許可するロールリスト 
         ##BLOCKED_ROLES_LIST = ( 'ROLE_NAME' ) ##明示的にアクセスをアクセスを許可しないロールがある場合に記載
         OAUTH_ISSUE_REFRESH_TOKENS = TRUE
         OAUTH_REFRESH_TOKEN_VALIDITY = 7776000
  • セキュリティ統合が作成できたら、以下のコマンドを実行し情報を取得
DESC integration <NAME> ##先ほど設定した任意の名前
  • 実行出来たら、以下の情報を後ほど使用するので安全な場所に保存
    • OAUTH_CLIENT_ID
    • OAUTH_AUTHORIZATION_ENDPOINT
    • OAUTH_TOKEN_ENDPOINT
    • OAUTH_REFRESH_TOKEN_VALIDITY
  • 続いて、以下のコマンドを実行しクライアント シークレットを取得
select system$show_oauth_client_secrets('<NAME>'); ##先ほど設定した任意の名前
  • 取得した値の中にある、以下のパラメータ値を安全な場所に保存
    • OAUTH_CLIENT_SECRET
  • 以上でSnowflake側の作業は一旦終了

公式Doc:Create OAuth 2.0 Client App in Snowflake

AAC 側での作業



OAuth2.0クライアントの作成

  • AlteryxでOAuth2.0クライアントを作成するために、ワークスペース管理者のロールを持つユーザーが作業を行う
  • ワークスペース管理ページにある、OAuth Clientsに移動し、Createを選択
    alteryx-analytics-cloud-snowflake-oauth-no0
  • 設定画面で、必要な項目と、先ほど保存した情報を反映
    • ※Scopeで指定できるロールは一つだけなので、各ロールごとにOAuth 2.0 クライアントを作成する必要があります。<role_name>を指定しない場合、デフォルトロールが使用されます
      alteryx-analytics-cloud-snowflake-oauth-no1

公式Doc:Create OAuth 2.0 Client for Snowflake



Connectionの作成

  • ホーム画面に戻り、データタブから新しいコネクションを作成、Snowflakeを選択
    alteryx-analytics-cloud-snowflake-oauth-no2
    alteryx-analytics-cloud-snowflake-oauth-no3
  • 設定画面で、必要項目を入力
    • Account nameは、について、ホスト名が次の通りmycompany.snowflakecomputing.comだとすると、mycompany.cloud_region_id.cloudの形式で入力
      alteryx-analytics-cloud-snowflake-oauth-no4

※前提条件として、ステージデータベースを指定しない場合は、デフォルトのPUBLICスキーマに一時ステージが作成されます。そのため、接続するSnowflakeデータベースにはPUBLICスキーマがあり、使用するロールに適切な権限が与えられていることを確認してください。

公式Doc:Snowflake Connections



Datasetの作成

  • コネクションが作成され、既存のテーブルを確認できるので、任意のテーブルでCreate Datasetを選択
    alteryx-analytics-cloud-snowflake-oauth-no5
  • Datasetに移動すると、先ほどのテーブルがDatasetとして登録されているのが確認できる
    alteryx-analytics-cloud-snowflake-oauth-no6

Alteryx Designer CloudでSnowflakeデータセットを使用する

  • Designer Cloudで新しいワークフローを作成し、先ほど登録したDatasetを選択
    alteryx-analytics-cloud-snowflake-oauth-no7
  • 今回のユースケースの想定通り、7レコード間違いなく取り込まれていることを確認
    alteryx-analytics-cloud-snowflake-oauth-no8
  • SALESが260以上のレコードを、Snowflakeの新しいテーブルにアウトプットするワークフローを作成
    alteryx-analytics-cloud-snowflake-oauth-no9
  • Run Jobを実行すると、Snowflakeに先ほどの条件通りのテーブルが作成されている
    alteryx-analytics-cloud-snowflake-oauth-no10
  • また、Snowflakeの元テーブルにデータを新しく追加。8/8のSALESは350のため、作成した条件に一致し、出力対象のデータとなるはずです
    alteryx-analytics-cloud-snowflake-oauth-no11
  • 先ほどのワークフローを、まったく修正せず再度Run Jobを実行
  • もう一度OUTPUTテーブルを確認すると、更新された情報でテーブルが作成されていることを確認できました
    alteryx-analytics-cloud-snowflake-oauth-no12

さいごに

今回は、AACプラットフォームでSnowflake OAth接続を作成する方法について紹介しました。何かの参考になれば幸いです。

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.