Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rundeckで 秘匿情報パラメータを セキュアに扱う

kashiwaguma-hiro
November 21, 2018
270

Rundeckで 秘匿情報パラメータを セキュアに扱う

ジョブスケジューラであるRundeckからジョブを起動する際、パスワード等の秘匿情報を扱うと思います。
この日得情報を扱う良いアイデアをご紹介します。

kashiwaguma-hiro

November 21, 2018
Tweet

Transcript

  1. Rundeckで
    秘匿情報パラメータを
    セキュアに扱う
    会計スクラムチーム
    柏熊 宏幸

    View Slide

  2. かるく自己紹介
    ● 社歴
    ○ 2016年3月1日入社(DMM歴:2年7ヶ月)
    ● 所属
    ○ 会計スクラムチーム
    ○ 決済、購入、ポイントの情報を何やかんやし、経理 /CFO向けのレポートをつくってます
    ● 得意
    ○ IaC(Terraform, Ansible)
    ○ Python
    ○ Kotlin
    ○ 障害調査切り分けなど

    View Slide

  3. 背景
    ● 経理レポート作成のため、オンプレの一部データをAWSへ転送
    ● 転送にはRundeck+embulkを採用
    購入
    決済
    ポイント
    kick
    user認証
    IAM認証

    View Slide

  4. 課題
    ● Rundeckから秘匿情報をパラメータで渡すとき、生のまま扱うことに...
    購入
    決済
    ポイント
    user認証
    IAM認証
    kick
    kick時、パラメータとして
    秘匿情報を渡す!

    View Slide

  5. こんな感じでまるみえ〜

    View Slide

  6. ■画面上 ■exportした設定ファイル
    生パスワード丸見え

    View Slide

  7. 解決策
    ● Rundeck Key Storageが使えそう
    ○ https://rundeck.org/docs/administration/security/key-storage.html
    ● Rundeck上で扱うprivate key, public key, パスワード類を保存・参照・破棄できる
    機能
    ● 事前にKeyStorageに保存し、ジョブ実行時に参照/利用。
    ● 保存時のキーは、ファイルパスのように指定。
    ○ (例) 会計DBのユーザパスワード
    ■ keys/accounting/user
    ■ keys/accounting/passsword

    View Slide

  8. Key Storageへ登録

    View Slide

  9. Job設定での参照

    View Slide

  10. ■画面上 ■exportした設定ファイル
    生のままパスワード
    表示されなくなる!

    View Slide

  11. 注意点
    ● 保存した後は保存値は画面上からは確認できない
    ○ マスタ値は別で管理しましょう
    ● secureつってるけど、暗号化はされてないよ
    ○ catコマンドで中身を普通に見れました
    ○ 暗号化したい場合は、 Key Storage Convert Pluginを使ってやる
    ■ https://rundeck.org/docs/developer/storage-converter-plugin.html

    View Slide

  12. まとめ
    ● Rundeckから秘匿情報を扱うとき、Key Storageをつかえばそのまま扱うよりセキュ
    アっぽい
    ○ 秘匿情報や鍵のこと考えなきゃ〜からの開放が良さげ
    ● 暗号化までガチガチに考えるならConverter Pluginの設定が必要そう
    ● 気になった方は、Dockerでできるのでためしてガッテン!
    ○ https://hub.docker.com/r/jordan/rundeck/

    View Slide