5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[備忘録] (R2025-4以降)Talend StudioとSnowflakeのKey-Pair接続

Last updated at Posted at 2025-09-17

はじめに

当記事は以下の内容のAnother Versionみたいな位置づけです。
https://qiita.com/kazu_1994/items/452518ec97bbc623bdca

Talend Studioに適応中のパッチがR2025-04を境に、Key-Pair接続の方式が変わります。
今回のTalend StudioのパッチはR2025-8なので、新式の適用方法を当記事では備忘録として残しました。

手順

事前準備

OpenSSLをPC(筆者はWindows)にインストールする必要があります。
インストールに関しては、以下の記事を参考にしました。
https://qiita.com/SKY-HaYaTo/items/7c40256543a4f9d14c0d

Talend StudioとSnowflakeの接続までの流れ

  1. コマンドプロンプトを開き、秘密鍵・公開鍵を作成する箇所に移動します。

  2. 以下のコードを入力し、秘密鍵・公開鍵を作成します。(秘密鍵を作成する際のパスワードは後に使用するので控えておいてください。)

    bash.sh
    #秘密鍵を作成
    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
    

  3. Snowflakeを開き、「新しいSQLワークシート」を作成後、以下のクエリを実行します。(問題なければ、ステートメントは正常に実行されます。今回はついでにユーザーを作成してみました。これも備忘録の一貫です。)

    bash.sh
    # 今回のための即席ユーザー
    CREATE ROLE TALEND_ROLE; --ロールの作成
    GRANT ROLE TALEND_ROLE TO ROLE ACCOUNTADMIN; --権限は一旦上位のものを委譲しておく
    
    CREATE USER TALEND_USER
      PASSWORD = 'PASSWORD' -- ダミーパスワードを設定
      LOGIN_NAME = 'TALEND_USER'
      DISPLAY_NAME = 'TALEND_USER'
      DEFAULT_ROLE = TALEND_ROLE
      DEFAULT_WAREHOUSE = 'TALEND_WH' -- 適切なウェアハウスを指定
      MUST_CHANGE_PASSWORD = FALSE;
      
      GRANT ROLE TALEND_ROLE TO USER TALEND_USER; -- 作成したユーザーにロールを付与
    
      #〇〇には生成したrsa_key.pubの内容をペースト  ※ -----BEGIN PUBLIC KEY-----の文字ごと
      ALTER USER TALEND_USER SET RSA_PUBLIC_KEY='○○';
    
      DESC USER TALEND_USER; --詳細の表示
    
      CREATE DATABASE TALEND_DB; --データベースの作成
      CREATE SCHEMA TALEND_DB.TALEND_SCHEMA; --スキーマの作成
    
      -- TALEND_ROLEへの権限付与
      GRANT USAGE ON DATABASE TALEND_DB TO ROLE TALEND_ROLE;
      GRANT USAGE ON SCHEMA TALEND_DB.TALEND_SCHEMA TO ROLE TALEND_ROLE;
      GRANT SELECT ON ALL TABLES IN SCHEMA TALEND_DB.TALEND_SCHEMA TO ROLE TALEND_ROLE;
      GRANT SELECT ON FUTURE TABLES IN SCHEMA TALEND_DB.TALEND_SCHEMA TO ROLE TALEND_ROLE;
      GRANT USAGE ON WAREHOUSE TALEND_WH TO ROLE TALEND_ROLE; 
    

  4. Talendのインストールフォルダから、.iniファイルを探します。
    ※今回はWindowsで設定するので以下の.iniファイルとなります。
    image.png

  5. .iniファイルを開き、末尾に以下のコードを追加します。

    bash.sh
    -Dnet.snowflake.jdbc.enableBouncyCastle=true
    

  6. Talend Studioを起動し、以下に従ってSnowflake作成用のメタデータを作成します。

    名前 項目
    アカウント Snowflakeのアカウント識別子
    Authentication Type Basic
    ユーザーID Snowflakeに登録しているユーザー
    パスワード ダミー(使用しない)
    ウェアハウス Snowflakeに存在しているウェアハウス名
    スキーマ ウェアハウス内のスキーマ名
    データベース ウェアハウス内のデータベース名
    追加のJDBCパラメーター private_key_file=<2で作成したrsa_key.p8のパス>&private_key_file_pwd=<2のkey作成時に設定したパスワード> ※ "advanced..."を押下すると新たなポップアップが表示されるのでそこで設定

  7. 「Test connection」を押下し、「接続成功」のポップアップが出ることを確認します。
    image.png
    image.png

  8. Talend StudioでETLジョブを作成します。
    a. 以下のコンポーネントをデザインワークスペースに配置して下さい。
    ・tSnowflakeConnection(作成したメタデータからドラッグ&ドロップ)
    ・tJava

    b. コンポーネント同士を"OnSubjobOk"で繋ぎます。
    image.png

    c. 実行タブの「詳細設定」に移動し、5のコードをJVM引数に加えます。
    ※ 実行箇所にJVM引数を加えないと、実行できません。Remote Engineで実行する際は、設定ファイルにJVMファイルを加えて下さい。
    image.png

    d. ジョブを実行し、接続ができていることを確認します。
    image.png
    image.png

参考資料

〇 Snowflakeでキーペア認証を行う
https://www.slideshare.net/slideshow/snowflake-talend-studio-qlik-cloud-qlik-replicate/281614802

〇 Key-pair authentication and key-pair rotation
https://docs.snowflake.com/en/user-guide/key-pair-auth

おわりに

Talend CloudとSnowflakeの連携において、Key-Pair認証はこれからの主流です。
パスワード廃止の流れを見据えて、より強固で自動化に強い連携を進めるための第一歩になれば幸いです。

それでは皆様、ごきげんよう。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?