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

ansible-vault 2.0以降のアップデート

yunano
June 01, 2016

ansible-vault 2.0以降のアップデート

yunano

June 01, 2016
Tweet

More Decks by yunano

Other Decks in Technology

Transcript

  1. ansible-vault
    2.0以降のアップデート
    2016/06/01
    yunano
    1

    View Slide

  2. 自己紹介
    • Qiitaでyunanoという名前で書いています
    直近では「ansible-consoleを使おう」というネタを
    書きました
    • http://qiita.com/yunano/items/faba4f3330594e41246b
    2

    View Slide

  3. ansible-vaultの簡単なおさらい
    • パスワードなどの機密情報が書かれたファイルを
    暗号化するツール
    • Ansibleの各種コマンドに”--ask-vault-pass”オ
    プションか”--vault-password-file”オプション
    で暗号化した際のパスワードを与えると、処理中
    使用する暗号化されたファイルが復号される
    普通は暗号化されたvars系ファイルを読み込ませる
    暗号化されたplaybookも読むことができる
    暗号化されたインベントリファイルも2.0から可能
    3

    View Slide

  4. ansible-vaultの2.0以降のアップデート
    • ansible-vault editは使ってはいけない!?
    • copyモジュールのsrcに指定したファイルを復号
    • cryptographyを使用して高速化
    4

    View Slide

  5. ansible-vaultの2.0以降のアップデート
    • ansible-vault editは使ってはいけない!?
    • copyモジュールのsrcに指定したファイルを復号
    • cryptographyを使用して高速化
    5

    View Slide

  6. ansible-vault editは使ってはいけない!?
    • 「Don't use ansible-vault edit at all.」
    出展:
    https://github.com/ansible/ansible/issues/12182
    6

    View Slide

  7. ansible-vault editの動き
    • ansible-vault editを実行すると/tmp以下に、復
    号されて平文になった一時ファイルが作られるた
    め、ディスクに平文が書かれることになる
    対策として2.0.1からedit終了時に一時ファイルがラ
    ンダムデータで埋められてから削除されるように
    なった
    7

    View Slide

  8. ansible-vault encryptの機能追加
    • 2.0からansible-vault encryptに標準入出力との
    読み書き機能が追加
    「echo “password” | ansible-vault encrypt >
    foo.vault」
    「ansible-vault encrypt > foo.vault」
    標準入力に何か書いて、行頭でCtrl+dで終了
    8

    View Slide

  9. ansible-vaultの2.0以降のアップデート
    • ansible-vault editは使ってはいけない!?
    • copyモジュールのsrcに指定したファイルを復号
    • cryptographyを使用して高速化
    9

    View Slide

  10. copyモジュールのsrcに指定したファイルを復号
    • 2.1から「copy: src=bar.vault
    dest=/etc/bar」のように、srcに暗号化された
    ファイルを指定すると自動的に復号されてコピー
    されるように仕様変更
    copyモジュール以外には適用されない。例えば
    templateモジュールだとそのままコピーされる
    将来lookupプラグインのfileでも復号されるように
    なる予定(2.2から?)
    10

    View Slide

  11. ansible-vaultの2.0以降のアップデート
    • ansible-vault editは使ってはいけない!?
    • copyモジュールのsrcに指定したファイルを復号
    • cryptographyを使用して高速化
    11

    View Slide

  12. ansible-vaultの復号は*遅い*
    • 特に1.7から、例えばhost_vars以下に100個暗
    号化されたファイルを置いたとして、インベント
    リファイルにその100ホスト書かれていれば、処
    理対象が実際には1ホストしかない場合でもすべ
    ての暗号化ファイルが復号されるようになった
    12

    View Slide

  13. ansible-vaultの復号は*遅い*
    • playbook
    13
    - hosts: host00
    connection: local
    gather_facts: no
    tasks:
    - debug: var=key1

    View Slide

  14. ansible-vaultの復号は*遅い*
    • インベントリファイル
    • host_vars/host[00:99].yml(暗号化する)
    • 「time ansible-playbook -i hosts site.yml --
    vault-password-file password.vault」
    27.595秒
    14
    [test]
    host[00:99]
    key1: val1

    View Slide

  15. cryptographyをインストールする
    • 2.0からcryptographyをインストールすると、そ
    れだけで復号が高速化する
    • 「time ansible-playbook -i hosts site.yml --
    vault-password-file password.vault」
    2.918秒
    15
    $ sudo yum install libffi-devel openssl-devel
    $ sudo pip install cryptography

    View Slide