###Ansible Vault
Ansible Vaultとは、パスワードを用いてYAMLファイルを暗号化する仕組み。このコマンドを利用して暗号化したファイルを作成すると、ファイルの内容を読み取ることができなくなる。
処理を実行する際は、設定したVaultパスワードを渡すだけでプレイブックの実行が可能。
また、変数ファイル、インベントリの暗号化も可能。
###形式
ansible-vault [オプション] ファイル名
###オプション
暗号化ファイルを作成する
create
暗号化ファイルを標準のテキストファイルに復号する
decrypt
標準のテキストファイルを暗号化する
encrypt
暗号化ファイルの編集を行う
edit
暗号化ファイルに設定しているVaultパスワードを変更する
rekey
暗号化ファイルの中身を復号して出力する
view
###ベストプラクティス ####ログの標準出力の回避 プレイブックに詳細オプション(-v)を付けて実行すると、暗号化したファイルを利用しても、標準出力に内容が表示されてしまう。
暗号化した変数を利用する場合は、「no_log」ディレクティブを利用して、標準出力に内容が表示されないようにする必要がある。
- name: Secret task
shell: echo {{ secret_value }}
no_log: true
####変数の暗号化
Ansible Vaultを利用して暗号化すると、ファイルの中身が読めないため、暗号化した変数名まで分からなくなる。
暗号化する変数が定義されたファイルと、暗号化されないファイルを分けて管理するのがベスト。
####Vaultの高速化
デフォルトではPyCryptoが利用されているため、多くのファイルを暗号化、復号すると時間がかかる。
cryptographyを利用すると暗号化、復号する処理の高速化が可能。
インストールの方法によっては、すでに入っている可能性あり。
###参考
IT技術者のための現場ノウハウ Ansible実践ガイド/北山晋吾 著