Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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