Vault в CI/CD
Тема дорожной карты · Ansible
Ansible Vault в CI — это практика автоматической расшифровки защищённых vault переменных в ходе запусков CI/CD-конвейера без интерактивного ввода пароля. Стандартный подход: хранить пароль vault как защищённую переменную окружения или секрет в CI-платформе (GitHub Actions, GitLab CI, Jenkins), записывать его во временный файл во время выполнения и передавать этот файл Ansible через --vault-password-file /tmp/vault_pass или установку переменной окружения ANSIBLE_VAULT_PASSWORD_FILE. При использовании нескольких vault ID каждый пароль передаётся через --vault-id label@/path/to/file, позволяя конвейерам расшифровывать только нужные им vault ID. Файл с паролем vault должен иметь права 0600 и удаляться после завершения конвейера для минимизации раскрытия данных, а сам пароль в открытом виде никогда не должен выводиться в логах конвейера.
Как это работает
Vault в CI/CD использует Ansible Vault для шифрования at rest: ansible-vault encrypt secrets.yml AES-шифрует файл паролем; ansible-vault edit расшифровывает в памяти для правки; запуск плейбука расшифровывает на лету через --ask-vault-pass или --vault-password-file. Per-variable шифрование (ansible-vault encrypt_string) даёт встроить одно зашифрованное значение в plaintext-файл. Multiple Vault ID (--vault-id prod@prompt) — для per-environment паролей.
Когда применять
Всегда Vault-шифруйте файлы с секретами — пароли, API-ключи, сертификаты. Per-environment Vault ID — чтобы dev и prod credentials шифровались отдельно. Сам Vault-пароль — в secrets-менеджере (Bitwarden, 1Password, Yandex Lockbox) или CI-секрете + --vault-password-file. Для больших флотов — интеграция с HashiCorp Vault (community.hashi_vault).
Типичные ошибки
Ловушки Vault в CI/CD: коммит файла с Vault-паролем в git ("для удобства"); один Vault-пароль для prod и dev (утечка в dev компрометирует prod); не ротируются Vault-пароли (могут утечь через build-логи годами); encrypt_string inline повсюду вместо одного Vault-файла (каждый секрет требует отдельной перешифровки при ротации ключа).