Используйте пароль хранилища Ansible для шифрования zip-файла

Используйте пароль хранилища Ansible для шифрования zip-файла

Мне дали Ansible playbook, который направлен на защиту паролем zip-файла. (Часть) playbook выглядит так:

- 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}}

Поэтому они пытаются передать пароль хранилища команде zip для опции -P.

Кажется, это не работает. При запуске плейбука я получаю:

"Attempting to decrypt but no vault secrets found"}

Насколько я понимаю, хранилище Ansible означает, что мне нужно указать пароль, чтобы использовать пароль хранилища, но я могу ошибаться. Необходимость указывать пароль кажется бесполезной, если вы хотите автоматизировать вещи. Если я помещаю пароль в файл, я так же уязвим, как и в случае, когда я не шифрую zip-файл паролем.

Возможен ли вообще такой способ использования пароля хранилища?

решение1

Ansible имеетРазличные путипредоставить пароль хранилища.

  • файлы - могут быть защищены разрешениями файловой системы
  • скрипты - могут получить доступ к другим хранилищам, декодировать/расшифровывать пароль хранилища, хранящийся в другом месте

Но все сводится к одной и той же проблеме: в какой-то момент вам нужно предоставить что-то для расшифровки пароля, что затрудняет процессы автоматизации. Вам решать, где вы хотите хранить открытый текстовый секрет для расшифровки паролей хранилища.

Связанный контент