
Мне дали 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 имеетРазличные путипредоставить пароль хранилища.
- файлы - могут быть защищены разрешениями файловой системы
- скрипты - могут получить доступ к другим хранилищам, декодировать/расшифровывать пароль хранилища, хранящийся в другом месте
Но все сводится к одной и той же проблеме: в какой-то момент вам нужно предоставить что-то для расшифровки пароля, что затрудняет процессы автоматизации. Вам решать, где вы хотите хранить открытый текстовый секрет для расшифровки паролей хранилища.