Alteryx 2024.1新機能:Snowflakeのキーペア認証に対応 #Alteryx

2024.05.15

こんにちは、スズです。

アメリカ現地時間の2024年5月1日に、Alteryx Designer 2024.1がリリースされました。

Alteryx Designer 2024.1では、DCM(データ接続マネージャ)でSnowflakeへの接続にキーペア認証に対応しましたので、本記事でご紹介します。

執筆環境

  • Alteryx Designer 2024.1
  • Windows 10 Pro

事前準備

Snowflakeにキーペア認証で接続するために実施した事前準備について記載します。以下の内容については今回の検証のためのものとなりますので、キーペア認証を利用する場合はご利用の環境にあわせて準備を行ってください。

公開鍵と秘密鍵の作成

公開鍵と秘密鍵の作成のため、今回はWindows OSにOpenSSLをインストールしました。インストーラは以下のサイトからダウンロードしております。

公開鍵と秘密鍵の作成については、Snowflakeのドキュメントを参考に進めていきます。

まずは秘密鍵を作成します。今回は検証用に非暗号化バージョンを生成します。コマンドラインにて以下のコマンドを時刻しました。

openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out rsa_key.p8

続いて公開鍵を作成します。コマンドラインにて以下のコマンドを実行しました。

openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub

ファイルの作成場所を確認すると、秘密鍵と公開鍵が作成されていました。

Snowflakeのユーザーに公開鍵の割り当て

Snowflakeのユーザーに公開鍵を割り当てていきます。割り当てにはSnowSQLを利用するため、Windows OSにインストールします。

コマンドラインでSnowSQLを使って、Snowflakeにログインします。

$ snowsql -a <アカウント識別子> -u <ログインするユーザー名>

ログイン後、ALTER USERコマンドを実行して公開鍵をSnowflakeのユーザーに割り当てます。

ALTER USER <公開鍵を割り当てるユーザー名> SET RSA_PUBLIC_KEY='<公開鍵>';

ユーザーに公開鍵を割り当てたら、フィンガープリントの検証を行います。SnowSQLでSnowflakeでサインインしている状態で以下のコマンドを実行し、出力をコピーします。

DESC USER <公開鍵を割り当てたユーザー名>;
SELECT TRIM((SELECT "value" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
  WHERE "property" = 'RSA_PUBLIC_KEY_FP'), 'SHA256:');

次に以下のコマンド(※SnowSQLではありません。)を実行し、出力をコピーします。

openssl rsa -pubin -in rsa_key.pub -outform DER | openssl dgst -sha256 -binary | openssl enc -base64

2つの出力を比較し、一致した場合は公開鍵が正しく設定されている状態となります。これで、Snowflakeのユーザーへの公開鍵の割り当ては完了です。

SnowflakeのODBCドライバ

SnowflakeのODBCドライバは、Alteryxのライセンスポータルからダウンロードし、Windows OSにインストールします。ライセンスポータルについては以下のブログをご参照ください。

DCMでSnowflakeの認証情報を設定

事前準備が完了したら、Alteryx DesignerでSnowflakeのキーペア認証を行ってみます。

Alteryx Designerを起動し、キャンバスにデータ入力ツールを配置します。データ入力ツールの設定画面にて、[データ接続マネージャ(DCM)の使用]を有効化し、[接続を設定します]をクリックします。

[データ接続]ウィンドウの[データソース]を開き、Snowflakeの[クイック接続]をクリックします。

[接続マネージャー]ウィンドウでは、まず接続先となるSnowflakeをデータソースに設定します。[データソース]を開き、[新規]をクリックします。

データソース名や接続先となるSnowflakeの情報を設定し、[保存]をクリックします。

続いてSnowflakeへの認証情報を設定します。[資格情報]を開き、[新規]をクリックします。

資格情報として以下の項目を設定し、[保存]をクリックします。

  • メソッド: Snowflakeキーペア認証を選択
  • 資格情報名: 保存した資格情報の表示名
  • ユーザー名: 公開鍵を割り当てたSnowflakeのユーザー
  • プライベートキーファイルパス: 秘密鍵の保存場所
  • キーファイルパスワード: 秘密鍵のパスワード(設定している場合)

データソースと資格情報をそれぞれ作成しましたので、今度はデータソースに資格情報を紐づけます。[データソース]に戻り、先ほど作成したデータソースを開きます。

[資格情報の接続]をクリックします。

認証方法に「キーペア認証」を選択し、キーペアパラメーターに資格情報選択します。[接続テスト]をクリックして接続できることを確認したのち、[リンク]をクリックします。

データソースと資格情報の紐づけが完了しました。[接続]をクリックすると、対象のデータソースにキーペア認証で接続します。

データ入力ツールの[テーブルの選択またはクエリを指定]の画面が表示されました。Snowflakeから取得するテーブルを選択して[OK]をクリックすると、Alteryx Designerのキャンバスの画面に戻ります。

最後にデータの取得を確認してみます。データ入力ツールに閲覧ツールを接続してワークフローを実行すると、結果ウィンドウにデータが表示されました。問題なくデータを取得できているようです。

最後に

Alteryx Designer 2024.1の新機能、Snowflakeのキーペア認証での接続についてご紹介しました。

参考