Digdag secretsの利用


secretsはパスワードなどをDigdagに渡すためのしくみです。
以下は、 secretsの設定情報をワークフローの環境変数に登録する場合の設定手順です。

🐝 Digdag secretsを有効にする

.config/digdag/configファイルにsecretsの設定を記述します。

digdag.secret-access-policy-file = secret-access-policy.yaml
digdag.secret-encryption-key = MDEyMzQ1Njc4OTAxMjM0NQ==

MDEyMzQ1Njc4OTAxMjM0NQ==0123456789 をBASE64でエンコードしたものです。
それぞれの環境で固有の値を設定してください。

🍄 secretsへのアクセスのポリシー

.config/digdag/secret-access-policy.yamlsecretsへのアクセスポリシーを設定します。

operators:
mail:
secrets:
- mail.*
pg:
secrets:
- pg.*
s3_wait:
secrets:
- aws.*
td:
secrets:
- td.*
td_load:
secrets:
- td.*
td_for_each:
secrets:
- td.*
td_run:
secrets:
- td.*
td_ddl:
secrets:
- td.*
td_partial_delete:
secrets:
- td.*
td_table_export:
secrets:
- td.*
- aws.*
td_wait:
secrets:
- td.*
td_wait_table:
secrets:
- td.*

🎃 secretsの追加

コマンドラインから個別に設定する場合はこちら。

digdag secret --project <project> --set mail.password=hoge fuga

Jsonファイルを使う場合は、まずJSONファイル(ここではsecrets.json)を設定します。

{
foo: secret1,
bar: secret2
}

設定したsecretsをDigdagに読み込みます。

digdag secrets --project <project> --set @secrets.json

🐞 digファイルからsecretの呼び出し方法

digファイルからさきほど設定したsecretsを呼び出す場合は、次のように記述します。

# secret_test.dig
+test:
sh>: env
_env:
MAIL_PASS: ${secret:mail.password}

😸 参考

📚 おすすめの書籍