HashiCorp Vault — инструмент с открытым исходным кодом, который обеспечивает безопасное хранение и доступ к различным секретам, таким как пароли, сертификаты, токены. Образ содержит предустановленную сборку HashiCorp Vault с дополнительной поддержкой Auto Unseal при помощи Yandex Key Management Service. Сборка подготовлена на основе HashiCorp Vault 1.17.2.
-
Создайте сервисный аккаунт, необходимый для работы HashiCorp Vault:
yc iam service-account create --name vault-kms
-
Создайте авторизованный ключ для сервисного аккаунта и сохраните его в файл
authorized-key.json
:yc iam key create \ --service-account-name vault-kms \ --output authorized-key.json
-
Создайте ключ Yandex Key Management Service:
yc kms symmetric-key create \ --name example-key \ --default-algorithm aes-256 \ --rotation-period 24h
Сохраните идентификатор ключа (
id
) — он понадобится при установке приложения. -
Назначьте сервисному аккаунту роль
kms.keys.encrypterDecrypter
на ключ Yandex Key Management Service:yc kms symmetric-key add-access-binding \ --name example-key \ --service-account-name vault-kms \ --role kms.keys.encrypterDecrypter
-
Задайте настройки приложения:
- Пространство имен — выберите пространство имен или создайте новое.
- Название приложения — укажите название приложения.
- Ключ сервисного аккаунта — скопируйте в это поле содержимое файла
authorized-key.json
. - Идентификатор ключа KMS — укажите полученный ранее идентификатор ключа Yandex Key Management Service.
-
Нажмите кнопку Установить.
-
Убедитесь, что приложение перешло в состояние
Running
и имеет0/1
готовых подов:kubectl get pods --selector='app.kubernetes.io/name=vault'
Ожидаемый результат выполнения команды:
NAME READY STATUS RESTARTS AGE <имя пода vault> 0/1 Running 0 58s
-
Выполните инициализацию хранилища:
kubectl exec --stdin=true --tty=true <имя пода vault> -- vault operator init
Ожидаемый результат выполнения команды:
Recovery Key 1: ulbugw4IKttmCCPprF6JwmUCyx1YfieCQPQiI2S0VV9o Recovery Key 2: S0kcValC6qSfEI4WJBovSbJWZntBUwtTrtisSIcS3n0e Recovery Key 3: t44ZRqbzLZNzfChinZNzLCNnwvFN/R52vbDq/UueHPPg Recovery Key 4: af4PRlm3VdXRzEHoDpYEnSgbwj4oc4zLCwkJG36cOUER Recovery Key 5: rw9LXcyGEhoO4y4O5IA32IwiDS2t76zd52eiVqfpu+b6 Initial Root Token: s.4ddyD9kkIKVrslVBQBX1I5Pq Success! Vault is initialized Recovery key initialized with 5 key shares and a key threshold of 3. Please securely distribute the key shares printed above.
При инициализации хранилища выполнять операцию
unseal
не нужно. Подробнее см. на странице Auto Unseal и в документации HashiCorp Vault. -
Повторно запросите список подов приложения и убедитесь, что готов один под:
kubectl get pods --selector='app.kubernetes.io/name=vault'
Ожидаемый результат выполнения команды:
NAME READY STATUS RESTARTS AGE vault-yckms-k8s-0 1/1 Running 0 1h
Служба технической поддержки Yandex Cloud отвечает на запросы 24 часа в сутки, 7 дней в неделю. Доступные виды запросов и срок их обработки зависят от тарифного плана. Подключить платную поддержку можно в консоли управления. Подробнее о порядке оказания технической поддержки. Вы также можете воспользоваться помощью сообщества.
Helm-чарт | Версия | Pull-команда | Документация |
---|---|---|---|
yandex-cloud/vault/chart/vault | 0.28.1_yckms | Открыть |
Docker-образ | Версия | Pull-команда |
---|---|---|
yandex-cloud/vault/vault-k8s1721661666224330603612865640135376997075149811052 | 1.4.2 | |
yandex-cloud/vault/vault1721661666224330603612865640135376997075149811052 | 1.17.2_yckms | |
yandex-cloud/vault/vault1721661666224330603612865640135376997075149811052 | 1.17.2_yckms | |
yandex-cloud/vault/vault-csi-provider1721661666224330603612865640135376997075149811052 | 1.4.3 |