テックブログ

Treasure WorkflowのSecrets機能を使ってみる

こんにちは、アピリオのYangです。

2016年12月、ビッグデータ分析のクラウドサービスを提供するTreasure Dataが、複数のクラウドを連携して一つのデータ処理を実現する「ワークフロー管理」のサービス「Treasure Workflow」を開始しました。

Treasure Workflowの導入によって、

  • 低コスト
  • 短期導入
  • 様々なサービスと連携可能
  • BIツールと相性抜群

などの魅力を持つTreasure Dataが更に便利になりました。

Treasure Data

 

すでにTreasure Workflowを使い始めている方がたくさんいらっしゃるかと思いますが、YangがTreasure Workflowを使う際に少し躓いたSecrets機能の使い方について、簡単に共有させていただきます。

 

Secrets機能を利用する背景

Data Connectorの認証情報はTreasure Dataコンソール上でマスキングされますが、Workflowの場合、Secrets機能を使わないと同一アカウント下のユーザ全員がWorkflowコンソール上の認証情報を参照できてしまいます。

Data Connector

Data Connector

Workflow

Workflow Before

上はWorkflowコンソール上で認証情報が表示されている状態です。Secrets機能を利用した場合は、コンソール上の認証情報は下記のように表示されます。

Workflow After

このように、認証情報が同一アカウント下のユーザ全員に参照されることが好ましくない場合、Secrets機能を利用をお薦めします。

 

サンプル

Treasure Data社のドキュメントには認証情報を設定する例しか載っていないため、digdagのソースコードを解読して、認証情報を利用する側も含めてサンプルを書いてみました。

  1. 以下のような認証情報の書かれているsecrets.ymlを用意します。
  2. ymlファイルなどで認証情報を利用する際はこういう風に記述します。
  3. secretsを設定します。
    • プロジェクトをWorkflowコンソールにプッシュする場合、以下のコマンドで認証情報を設定します。
    • Workflowコンソールにプッシュしないで、Workflowをローカルで動かす場合、以下のコマンドで認証情報を設定します。
  4. secretsを確認します。
    • プロジェクトをWorkflowコンソールにプッシュする場合、以下のコマンドで認証情報を確認します。
    • Workflowコンソールにプッシュしないで、Workflowをローカルで動かす場合、以下のコマンドで認証情報を確認します。

 

注意点

  1. secretsがechoできないこと
    • 設定した認証情報が正しく反映されているかどうかを確認するために、echo>:${secret:s3.access_key_id}で認証情報を出力してみましたが、何も出力されません。digdagのソースコードを確認したところ、secrets機能を使って設定した認証情報がecho>:オペレーターで出力されないように作られています。

  2. 数値をコーテーションで囲んでおくこと
    • SFDCのClient Secretや、Google AnalyticsのClient IDみたいな認証情報を数値のまま記述すると丸め誤差が起きてしまい、値が変わってしまいます。ですので、数値のみの認証情報をシングルコーテーションで囲んで文字列として記述しましょう。
  3. secrets.ymlファイルをWorkflowプロジェクトの配下に置かないこと
    • 当たり前のことですが、secrets.ymlファイルをWorkflowプロジェクトの配下に置くと、Workflowプロジェクトをプッシュすると際secrets.ymlもWorkflowコンソールにプッシュされるので、secrets機能を利用する意味がなくなります。

     

参考サイト

 

About YangXiaolei

YangXiaolei

Appirio