Покажу как выпилить пароли/сертификаты/важные данные из репозиториев. Дам всю необходимую информацию для внедрения Hashicorp Vault в вашей компании и команде. Сделаю акцент на использовании в контейнерных инфраструктурах. Рассмотрю продвинутые практики использования и юз-кейсы с вау эффектом, которые работают в реальной жизни. Тут будут звучать такие слова как Ansible, Chef, Puppet, Docker, Swarm, Kubernetes etc.
Доклад, который сможет помочь сделать все хорошо, даже если сейчас все плохо.
Хайлоад и безопасность в мире DevOps: совместимы ли? / Юрий Колесов (security...
Report
Share
1 of 56
More Related Content
Как перестать хранить секреты в git и начать использовать Hashicorp Vault
2. Oleg Mykolaichenko
● веду DevOps дайджест на DOU
● пишу на Хабре
● тусуюсь в UkrOps community
● строю инфраструктуры и
автоматизацию
● работал в крупнейшей
гемблинговой компани, плавал
в зубодробильном стартапе
● цитирую Джеза Хамбла и
Мартина Фаулера
3. Цель доклада
● расшарить опыт по выпиливанию паролей из репозов
● дать всю информацию, нужную для успешного внедрения
Hashicorp Vault
● сделать акцент на практическом применении
● рассмотреть крутые практики для модных ребят
● стимулировать имплементацию в Вашей компании и команде
4. Откуда пришла проблема
● мы искали коллегу
● прособеседовали 50+ DevOps Engineers
● все согласны что хранить секреты в репе это плохо
● никто ничего не делает
● но все примерно знают что делать
5. Но почему?
● с низким приоритетом
● занимает много времени
● сложно разворачивать
● сложно поддерживать
● шапочка из фольги
13. Реальная жизнь #1
1. приходит новый сотрудник в компанию
2. ему дают доступ в репозиторий приложения
3. он сразу видит все пароли/токены/сертификаты на все
сервисы для всех инвайроментов
4. это печально
14. Реальная жизнь #2
1. сотрудник уходит из компании
2. он знал все пароли/токены/сертификаты
3. эти секреты никто не меняет, т.к. не понятно в каких местах и
что было на них завязано, и что поломается
4. доступы сотрудника не удаляют, потому что на него тоже
навешано очень много интеграций
5. это печально
15. Реальная жизнь #3
1. приходит сотрудник, и просит дать ему доступ в прод БД, потому что ему
какую-то таску делать
2. кто-то заходит в Excel табличку, ищет пароль, копирует, отправляет его
в Slack
3. это очень печально
16. Уточняем у СТО действительно ли это
проблема для бизнеса
17. Что сказал СТО
Это проблема
Найдите адекватное решение
И уберите пароли из репозиториев
19. Что нам нужно
1. Центральное место управления секретами
2. Гибкие ACL для команды/инвайромента/процесса
3. Интеграция с тулзами, которые мы используем
4. Адекватный UI/CLI интерфейс
5. Придумать workflow и договоренности
6. И чтобы это было безопасно
20. Что нам нужно
1. Центральное место управления секретами
2. Гибкие ACL для команды/инвайромента/процесса
3. Интеграция с тулзами, которые мы используем
4. Адекватный UI/CLI интерфейс
5. Придумать workflow и договоренности
6. И чтобы это было безопасно
Давайте искать
решение!
22. TOP3: что не подходит - git-crypt
https://github.com/AGWA/git-crypt
1. нет центрального места
2. нет ACL
3. нет workflow
4. в принципе можно
заинтегрить с тулзами
5. вроде безопасно
23. TOP3: что не подходит - git-secret
https://github.com/sobolevn/git-
secret
1. почти то же, что и git-crypt
2. но есть ACL
24. TOP3: что не подходит - pass
https://git.zx2c4.com/password-store
1. Unix-way
2. вроде даже интегрируется с
тулзами
3. плагины накручивают ACL
4. даже можно с этим жить
5. но …
25. Подождите
Ведь везде есть какие-то штуки, которые умеют шифровать!
Например:
1. в Chef - databags
2. в Docker - secrets
3. в Puppet - hierra-gpg
4. в тулзе X - что-то тоже есть
26. Но …
Проблем будет еще больше!
А как сделать, чтобы проблем было меньше?
28. Hashicorp Vault
1. self-hosted хранилище для любых секретов
2. 100500 плагинов и модулей на все тулзы и языки
программирования
3. написан на Golang
4. > 7626 звезд на Github
5. > 1000 форков на Github
6. self-driven архитектура
7. JSON API
8. Completely free and open source
29. Вспоминаем, что нам нужно
1. Центральное место управления секретами - Да
2. Гибкие ACL для команды/инвайромента - Да
3. Workflow и договоренности - Договоримся
4. Интеграция с тулзами, которые мы используем - Есть
5. Адекватный UI/CLI интерфейс - Есть
6. И чтобы это было безопасно - Безопасно
38. Вариант реализации структуры путей
$company/$application/$service/$environment/secret
Например:
- macpaw/setapp/mongo/dbe/db_user
- macpaw/setapp/mongo/uat/db_user
- macpaw/setapp/mongo/prod/db_user
40. Как использовать в Ansible
1. Подключить плагин:
https://github.com/jhaals/ansible-vault
2. Плагин - это абстракция над Vault JSON API
3. Синтаксис для *.yml и *.j2:
{{ lookup('vault', 'macpaw/setapp/dev/mongo/db_user').username }}
41. Как использовать в Ansible
1. Подключить плагин:
https://github.com/jhaals/ansible-vault
2. Плагин - это абстракция над Vault JSON API
3. Синтаксис для *.yml и *.j2:
{{ lookup('vault', 'macpaw/setapp/dev/mongo/db_user').username }}
42. Как использовать в Chef
1. Подключить плагин:
https://github.com/hashicorp/vault-ruby
2. Синтаксис для рецептов:
43. Как использовать в Chef
1. Подключить плагин:
https://github.com/hashicorp/vault-ruby
2. Синтаксис для рецептов:
48. Как дружить с Kubernetes #1
В двух словах не расскажешь
Но дружить можно:
https://github.com/Boostport/kubernetes-vault
И это тема для отдельной презентации
49. Как дружить с Kubernetes #2
Если очень интересно, то вот она, отдельная презентация:
https://www.slideshare.net/profyclub_ru/kubernetes-hashicorp-vault-avito
50. Как использовать в экосистеме Hashicorp
Нативно, это же один технологический стек
53. Динамический доступ в AWS
1. Создаем aws backend
2. Добавляем доступы в AWS
3. Генерим динамические креды
54. Тоже очень круто
- динамический временный доступ в базейки
- динамический ssh доступ (OTP)
Работает по аналогии как и с AWS в первом примере
55. Что делать дальше
● имплементить у себя Hashicorp Vault
● шифтить его в команде и компании
● пользоваться всемы бенефитами и удобностями
● после доклада написать в резюме “Hashicorp Vault”
● делать вашу IaC еще лучше!
56. Я Олег
- ukrops.club
- dou.ua/users/oleg-mikolaychenko/articles
- habrahabr.ru/users/mukolaich/posts
- instagram.com/mykolaichenko
Editor's Notes
Тут расскажу вообще кто я такой чтобы людям фонить знаниями, что они тут услышат
также тут скажу про цель доклада
Долго искали человека, все знают что делать но не делают
Почему не делают? Аргументируют
Развенчиваем мифы
Тут буду рассказывать что все оч халатно относятся к сенситив дате, кладут ее в репозиторий и что из этого получается Что с этим можно сделать: - спулить прайвет имеджи чужого стартапа и замутить свой стартап - спулить и поискать там доступы в какие-то RDS, пейпелы, все что угодно - замутить бесплатное для вас супер-огромное блокчейн хранилище для своих имеджей на чужих аккаунтах
Тут то же самое про сенситив дату - прислать всем какое-то сообщение в прайвет ченелы - например, сообщение с призывом перечислить пару биткоинов, потому что слек хакнули - или прорекламировать наш ивент - и еще много чего
А это вообще сборник штук которые серчат по гитхабу, и показывают кто там чего напушил интересненького И даже есть репоз на гитхабе, с готовыми пресетами на поиск подобных штук
Цитата которая вроде правильная, но ее сказал какой-то тип на стековерфлоу, но ей верить нельзя
Цитата из всем известной книги, где Джез Хамбл декларирует проблему и четко говорит что это неок
На этом этапе все уже поняли что это плохо, дальше рассказываю как это выглядит в реальной жизни
Цитата из всем известной книги, где Джез Хамбл декларирует проблему и четко говорит что это неок
На этом этапе все уже поняли что это плохо, дальше рассказываю как это выглядит в реальной жизни
Цитата из всем известной книги, где Джез Хамбл декларирует проблему и четко говорит что это неок
На этом этапе все уже поняли что это плохо, дальше рассказываю как это выглядит в реальной жизни
AppRole бекенд который отлично подходит
проблемы стандартного secret подхода в кубере
рассмотрение вариантов имплементаций
в результате свой волт контроллер