Ansible Vault パスワードを使用して zip ファイルを暗号化する

Ansible Vault パスワードを使用して zip ファイルを暗号化する

zip ファイルをパスワードで保護することを目的とした Ansible プレイブックを受け取りました。プレイブック (の一部) は次のようになります。

- name: Create and encrypt zipfile
  vars:
    zipPW: !vault |
      $ANSIBLE_VAULT;1.1;AES256
      64656637643264313764633665363234393239346230643936393864313337313030613461326639
      3538303634303365373637633761306133333266393331630a336436383534323264376537653564
      32393162353730373335303733663463333764616438643762653330616431353162326238663564
      3163306336313931660a313530343935643366663433346231386638353932313936366538643664
  shell: "zip -jr /tmp/pit/{{hostvars[inventory_hostname]['gzipoutfile']['stdout']}}.zip /tmp/pit/{{hostvars[inventory_hostname]['gzipoutfile']['stdout']}} -P {{zipPW}}"
  register: zipped
- debug:
    msg: "{{zipped}}

つまり、-P オプションの zip コマンドに Vault パスワードを渡そうとしているのです。

これはうまくいかないようです。プレイブックを実行すると、次のようになります:

"Attempting to decrypt but no vault secrets found"}

私が Ansible vault について理解している限りでは、これは vault パスワードを使用するためにパスワードを提供する必要があることを意味しますが、間違っている可能性があります。自動化を行う場合、パスワードを提供する必要は無意味に思えます。ファイルにパスワードを入れると、zip ファイルをパスワードで暗号化しなかった場合と同様に脆弱になります。

ボールトパスワードを使用するこの方法は可能でしょうか?

答え1

Ansibleはさまざまな方法金庫のパスワードを入力します。

  • ファイル - ファイルシステムの権限によって保護される
  • スクリプト - 他の金庫にアクセスし、他の場所に保存されている金庫のパスワードをデコード/復号化できます

しかし、結局はすべて同じ問題に行き着きます。ある時点で、パスワードを復号化するための何かを提供する必要があり、自動化プロセスが困難になります。ボールト パスワードを復号化するためのプレーン テキスト シークレットをどこに保存するかは、ユーザーが決定する必要があります。

関連情報