Шифрование одной переменной в строке
Сочетайте открытые и секретные переменные
«Шифрование одной переменной в строке» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Не всё является секретом
Иногда в файле конфиденциально только одно значение, а остальное безвредно. Шифрование всего файла кажется излишней мерой. 🤔
Зашифруйте только одну переменную
Vault может зашифровать одно значение, оставив остальную часть YAML доступной для чтения. Это сохраняет изменения в удобном для проверки виде и позволяет просматривать конфигурацию.
Команда encrypt_string
Используйте ansible-vault encrypt_string, чтобы превратить одно значение в открытом тексте в зашифрованный блок, который можно вставить в любой файл vars.
ansible-vault encrypt_string 's3cr3t' --name 'db_password'Что выводит команда
Команда выводит ключ YAML, значение которого использует тег !vault, за которым следует блок шифротекста с отступом.
db_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
39653764...Вставьте в vars
Скопируйте этот блок прямо в group_vars или в vars плейбука, рядом с обычными переменными в открытом тексте.
vars:
app_user: deploy
db_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
39653764...Тег !vault
Тег !vault сообщает Ansible: это единственное значение зашифровано, и перед использованием его нужно расшифровать.
Используется как любая переменная
Во время выполнения значение прозрачно расшифровывается. Вы обращаетесь к нему с помощью обычного синтаксиса {{ }}, как к обычной переменной.
- name: Set DB password
debug:
msg: "{{ db_password }}"Не вводите открытый текст в командной строке
Сохранение секрета в истории командной оболочки опасно. Добавьте --stdin-name, чтобы ввести значение интерактивно.
ansible-vault encrypt_string --stdin-name 'db_password'Отдельное значение или весь файл
Шифрование отдельных значений удобно, когда среди общедоступной конфигурации есть несколько секретов. Если файл полностью состоит из секретов, проще зашифровать его целиком.
В обоих случаях используется один пароль
Для отдельных значений используется тот же пароль хранилища, что и для шифрования всего файла, поэтому Ansible расшифровывает оба варианта с помощью одной парольной фразы за запуск.
Изменения остаются пригодными для проверки
Главное преимущество: шифротекстом является только строка с секретом, поэтому проверка кода и git diff по-прежнему ясно показывают все изменения, не связанные с секретами.
Быстрая проверка
Вам нужно зашифровать одно значение, оставив остальную часть файла vars доступной для чтения.
Итоги
С помощью encrypt_string Вы шифруете одно значение в блок !vault, смешивая секреты и открытый текст в одном доступном для чтения файле. ✨
Часто задаваемые вопросы
Урок «Шифрование одной переменной в строке» бесплатный?
Да — полный текст урока «Шифрование одной переменной в строке» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Шифрование одной переменной в строке»?
Сочетайте открытые и секретные переменные Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Шифрование одной переменной в строке»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Шифрование файла с ansible-vault create
- Редактирование, просмотр и смена ключа файлов хранилища
- Шифрование одной переменной в строке
- Расшифровка во время выполнения с --ask-vault-pass