Как развернуть HashiCorp Vault в Yandex Cloud
HashiCorp Vault — инструмент, который многие применяют, и сегодня я расскажу вам, как можно легко его развернуть в Yandex Cloud. Да, там его уже можно развернуть в ваш k8s просто выбрав из маркетплейса, но иногда хочется лучше.
➡️ В чем проблема развертывания Vault в k8s?
Vault хранит критичные секреты в зашифрованном виде, но после перезапуска требует ручную разблокировку (unseal). В k8s это рушит преимущества и наши любимые подходы автоматизации. Поэтому для того, чтобы автоматизировать этот процесс есть вариант развертывания еще одного «распечатывающего» Vault, и так можно значительно все усложнить. В Yandex Cloud есть KMS, и это поможет нам решить эту проблему.
🍀 За основу возьмем инструкцию для развертывания из маркетплейса:
1. Создаем сервис аккаунт
2. Создаем kms ключ
3. Назначаем сервис аккаунту роль для работы с kms
Чтобы поставить Vault из маркетплейса, нам больше ничего не нужно. Но так он развернется без души, то есть, без UI.
Это нормально, но для моих задач не подойдет. Хочется более стабильное решение, поэтому базу также вынесем отдельно.
🍀 Чего в инструкции нет:
➡️ Нам потребуется заранее развернуть ALB контроллер, если он еще не был развернут в вашем кластере. Про это можно обсудить отдельно, но пока пропустим.
➡️ Создаем кластер postgres любым удобным способом: Если у вас terraform, то и пункты выше надо будет делать там, или можно к консоли сделать. Если у вас действительно стабильное решение и k8s уже распределен в разные зоны доступности, сделаем такой же postgres. Создаем также пользователя, базу.
➡️ Дальше по вкусу можно добавить сервис, чтобы вносить конкретный хост в конфиг, или что вам еще захочется. Добавим в секрет сертификат или возможно он там уже есть.
Сделал чарт, который может решить простую задачу: развернуть в Yandex Сloud HashiCorp Vault в отказоустойчивом варианте. Для этого взял чарт, который лежит в маркетплейсе, он является чуть измененным чартом для Yandex Cloud. Структуру немного поменял, убрал чарт в папку — мне так больше нравится, делать это необязательно.
Сделал разными коммитами, чтобы было вам удобнее смотреть, что изменилось:
1. Добавляю настройки для работы с ALB, так-же tls. Выключаю ненужное, включаю нужное. Настраиваю на использование с postgres.
2. Отдельным коммитом добавил ci — он совсем уж простой. Можете сделать любой удобный.
А теперь проверим вашу внимательность. Что я специально упустил? И какие еще решения можно считать спорными?
Post #764
1.34K
- 👍 4