My Note

自己理解のためのブログ

AnsibleでVaultを使う

Ansibleで変数を扱っていると機密性の高い情報は暗号化する必要があります。例えばAWSの鍵情報やToken情報やssh秘密鍵など。

では、さっそく!

Ansibleでデータを暗号化する

Vaultの設定例

  • ansible.cfg (ansibleの直下に配置)
    • vault_password_fileでvaultのファイルパスとファイル名を指定する
[defaults]
vault_password_file = ./.vault
  • .vault
hogehoge
  • group/vars配下で
main.yml  vault.yml
  • main.yml
sample_password: "{{ vault_sample_password }}"
include_vars: vault.yml
  • vault.yml
vault_sample_password: "fuga"
  • vault.yml (平文)
    • Vaultで暗号化すると次のようになる。
---
hoge: hoge
vault_sample_password: "hoge"
  • vault.yml (暗号化)
$ANSIBLE_VAULT;1.1;AES256
34303639323036613466616234363931663530373365346335396135383234663935333765626264
3165353632636435386361393564336230626265323865370a333938383538666562356330336638
35366133326665633630353930623634396564623663353934323537623038623432363232646537
3333356361623936350a633034363535666233323232643339363135386332326463323634636163
36366539363638333733366462333639646435636462396166613531623431613364363366656134
6130336463356564663036303064336136633631626564316666

ansibleでデータを暗号・復号するコマンド

  • decrypt( 復号化 )
ansible-vault decrypt --vault-password-file </path/to/vault-pw-file> </path/to/target-file>
  • encrypt( 暗号化 )
ansible-vault encrypt --vault-password-file </path/to/vault-pw-file> </path/to/target-file>

参考

  • Vimで簡単にansible-vault/decryptする方法
    • 本ブログのリモートサーバ上で効率的にAnsibleを書くためにvimをカスタマイズする ( NERDTreeとvim-ansible-vault導入 ) に記載