4
3

More than 3 years have passed since last update.

Ansibleの暗号化

Last updated at Posted at 2020-11-29

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実践ガイド/北山晋吾 著

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3