Ansible-vault для хранения конфиденциальной информации | OTUS
⚡Подписка от OTUS!
Собери свой пул курсов на выгодных условиях. Подробности в чате →
Написать в чат

Курсы

Программирование
Unity Game Developer. Basic
-15%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Разработчик C#
-8%
Алгоритмы и структуры данных
-8%
Backend-разработчик на PHP
-8%
JavaScript Developer. Professional
-9%
iOS Developer. Professional
-8%
Базы данных
-12%
C# ASP.NET Core разработчик
-6%
Python Developer. Basic
-10%
Java Developer. Professional Web-разработчик на Python Android Developer. Basic PostgreSQL Software Architect Reverse-Engineering. Professional Kotlin Backend Developer React.js Developer VOIP инженер Нереляционные базы данных Scala-разработчик Супер-практикум по использованию и настройке GIT IoT-разработчик JavaScript Developer. Basic Advanced Fullstack JavaScript developer Unity Game Developer. Professional Супер-интенсив Azure
Инфраструктура
Супер-интенсив "Версионирование и командная работа с помощью Git"
-30%
Administrator Linux. Professional
-5%
Супер-интенсив «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Administrator Linux. Advanced
-8%
Infrastructure as a code in Ansible
-12%
Network engineer
-4%
MS SQL Server Developer
-8%
Cloud Solution Architecture Highload Architect Разработчик голосовых ассистентов и чат-ботов Мониторинг и логирование: Zabbix, Prometheus, ELK Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Архитектор сетей Супер-интенсив «IaC Ansible»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Ansible-vault для хранения конфиденциальной информации

Если решение какой-нибудь задачи предполагает наличие конфиденциальной информации (к примеру, доступ в базу данных), неплохой практикой является хранение данной информации в зашифрованном виде. Создавать и управлять шифрованными файлами позволяет утилита командной строки ansible-vault, поставляемая вместе с Ansible.

В результате применения ansible-vault вы сможете «коммитить» зашифрованный файл в систему управления версиями, а прочесть его смогут лишь доверенные пользователи, имеющие пароль дешифрования.

Давайте посмотрим, как это работает.

Команда ниже позволяет шифровать уже существующий файл, при этом вам необходимо будет лишь создать пароль шифрования:

Screenshot_1-1801-06bf41.png

Если нужно создать новый зашифрованный файл:

Screenshot_2-1801-f01153.png

Если надо расшифровать файл, вводим пароль, который был задействован для шифрования:

Screenshot_3-1801-18da8d.png

Также можно выполнить редактирование зашифрованного файла. По дефолту используется редактор vim, однако его можно переопределить переменной окружения $EDITOR.

Screenshot_4-1801-d1d79d.png

Когда нужно отобразить содержимое файла, который вы зашифровали:

Screenshot_5-1801-1628db.png

Когда вы будете выполнять импорт файла secrets.yml в ваш плейбук, Ansible «зафейлится», ведь он не будет знать, каким образом прочесть зашифрованный вами файл. Чтобы решить проблему, надо указать аргумент командной строки --ask-vault-pass, в результате чего будет предложено ввести пароль для зашифрованного вами файла.

Screenshot_6-1801-19e8e0.png

Есть и иной способ: он заключается в хранении пароля непосредственно в файле (файл не должен быть «закоммичен»), при этом потребуется указать путь к файлу с помощью аргумента --vault-password-file. Если файл является исполняемым, Ansible станет запускать его, применяя вывод в качестве пароля.

Если тема ansible-vault вам интересна, самую актуальную и более подробную информацию можно найти в официальной документации.

По материалам статьи «15 Things You Should Know About Ansible».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться