Шифрование и дешифрование Ansible Vault
Шифруйте и дешифруйте секреты Ansible Vault прямо в браузере с использованием AES-256
Ввод
Вывод
Документация
Что такое Ansible Vault?
Ansible Vault — это встроенная функция Ansible, которая шифрует конфиденциальные данные, такие как пароли, API ключи и сертификаты, чтобы их можно было безопасно хранить вместе с playbooks и roles в системе контроля версий. Она использует симметричное шифрование AES-256 с производной функцией ключа PBKDF2, что означает, что один пароль используется как для шифрования, так и для расшифровки. Зашифрованное содержимое Vault идентифицируется заголовком $ANSIBLE_VAULT;1.1;AES256, за которым следует hex-кодированный шифротекст.
Ansible Vault решает фундаментальную задачу DevOps: как хранить секреты в одном репозитории с кодом инфраструктуры, не раскрывая их. Вместо управления отдельными хранилищами секретов или использования переменных окружения, команды могут коммитить зашифрованные файлы непосредственно в Git и расшифровывать их во время выполнения playbook.
Описание инструмента
Этот инструмент шифрует и расшифровывает содержимое Ansible Vault прямо в браузере. Введите пароль vault и открытый текст для создания полностью совместимого зашифрованного blob, или вставьте существующий blob для раскрытия исходного секрета. Никакие данные не покидают браузер — все криптографические операции выполняются на стороне клиента.
Примеры
Шифрование открытого текста:
Входные данные (открытый текст):
db_password: s3cur3P@ss!Выходные данные (зашифрованный vault):
$ANSIBLE_VAULT;1.1;AES256
33383239333036363833303565653032383832663162356533343630623030613133623032636566
6536303436646561356461623866386133623462383832620a646363626137626635353462386430
34333937313366383038346135656563316236313139333933383139376333353266666436316536
6335376265313432610a313537363637383264646261303637646631346137393964386432313633
3666Расшифровка содержимого vault:
Вставьте зашифрованный блок выше с правильным паролем, чтобы восстановить исходное значение db_password: s3cur3P@ss!.
Возможности
- Шифрование AES-256 полностью совместимо с форматом Ansible Vault 1.1
- Только на стороне клиента — данные не отправляются на какой-либо сервер
- Поддерживает как шифрование, так и расшифровку с помощью одного поля пароля
- Мгновенное преобразование с живым предпросмотром по мере ввода
- Работает с многострочными секретами, фрагментами YAML и произвольным текстом
Варианты использования
- Быстрое шифрование нового секрета перед коммитом в Git репозиторий, содержащий Ansible playbooks
- Расшифровка и проверка содержимого vault во время отладки без необходимости локальной установки Ansible
- Обмен зашифрованными секретами с коллегами, которые могут расшифровать их в браузере, используя общий пароль vault
Как это работает
Ansible Vault 1.1 использует следующий процесс:
- Производная функция ключа — PBKDF2-HMAC-SHA256 производит 80-байтовый ключ из пароля и случайной соли (10 000 итераций). Ключ разбивается на 32-байтовый ключ шифрования, 32-байтовый ключ HMAC и 16-байтовый IV.
- Шифрование — открытый текст шифруется с помощью AES-256-CTR, используя производный ключ и IV.
- Аутентификация — HMAC-SHA256 вычисляется над шифротекстом для обеспечения целостности.
- Кодирование — соль, дайджест HMAC и шифротекст кодируются в hex и объединяются под заголовком
$ANSIBLE_VAULT;1.1;AES256.
Расшифровка обращает процесс вспять: пароль повторно производит те же ключи, проверяет HMAC и расшифровывает шифротекст.
Ограничения
- Поддерживает только формат Ansible Vault 1.1 с шифрованием AES-256
- Не поддерживает метки vault ID для установок с несколькими паролями
- Большие файлы могут вызвать кратковременные задержки интерфейса из-за ресурсоемкого этапа производной функции ключа