Ansible Vault と SSM Parameter Store を組み合わせてみた : もっといいやり方があるのではと思いつつ。 Ansible Vault設定 ansible-vault コマンドで秘匿情報を作成・編集する。 例えば hosts/hoge 配下にインベントリ設定をしているときに、all向けに秘匿情報を設定したい場合を考える。この場合、 hosts/hoge/group_vars/all 配下に秘匿情報として vault.yml を作成すれば良い。 $ ansible-vault create /hosts/hoge/group_vars/all/vault.yml 上記コマンドの実行時に暗号化および復号用のパスワードを入力する。 作成した vault.yml を編集するときは edit サブコマンドを使う。 $ ansible-vault edit /hosts/hoge/group_vars/all/vault.yml いずれも端末デフォルトのエディタが立ち上がって編集可能になる。 vault.yml の中では vault_ というプレフィックスで変数を定義し、平文の変数ファイル内で参照すると取り回しが良い (role内で直接参照すると細かな変更が辛くなりがちである)。 以下はDataDogのAPIキーとして vault_dd_api_key = xxxxxxxxxxxxx を暗号化して、 all.yml で読み出す例。 group_vars/all/all.yml ### Datadog Settings # vault_... は Ansible Vault で設定した秘匿情報 datadog_api_key: "{{ vault_dd_api_key }}" datadog_checks: process: init_config: instances: - name: ssh search_string: ['ssh', 'sshd' ] - name: chronyd search_string: ['chrony', ...