Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Kubernetes
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
    • Все инструкции
    • Подключение к узлу по SSH
    • Подключение к узлу через OS Login
    • Обновление Kubernetes
    • Настройка автомасштабирования
      • Основы работы с Cloud Marketplace
      • Установка Argo CD
      • Установка Chaos Mesh
      • Установка cert-manager c плагином Cloud DNS ACME webhook
      • Установка Container Storage Interface для S3
      • Установка Crossplane
      • Установка External Secrets Operator
      • Установка ExternalDNS c плагином для Cloud DNS
      • Установка Falco
      • Установка Filebeat OSS
      • Установка Fluent Bit
      • Установка Gatekeeper
      • Установка Gateway API
      • Установка GitLab Agent
      • Установка GitLab Runner
      • Установка HashiCorp Vault
      • Установка Ingress NGINX
      • Установка Ingress-контроллера Application Load Balancer
      • Обновление Ingress-контроллера Application Load Balancer
      • Установка Istio
      • Установка Jaeger
      • Установка Kruise
      • Установка Kyverno & Kyverno Policies
      • Установка Loki
      • Установка Metrics Provider
      • Установка NodeLocal DNS
      • Установка Policy Reporter
      • Установка Prometheus Operator
      • Установка Thumbor
      • Установка Velero
    • Подключение внешних узлов к кластеру
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

В этой статье:

  • Перед началом работы
  • Установка с помощью Yandex Cloud Marketplace
  • Установка с помощью Helm-чарта
  • Инициализация хранилища
  • См. также
  1. Пошаговые инструкции
  2. Установка приложений из Cloud Marketplace
  3. Установка HashiCorp Vault

Установка HashiCorp Vault с поддержкой Key Management Service

Статья создана
Yandex Cloud
Обновлена 16 апреля 2025 г.
  • Перед началом работы
  • Установка с помощью Yandex Cloud Marketplace
  • Установка с помощью Helm-чарта
  • Инициализация хранилища
  • См. также

HashiCorp Vault — инструмент с открытым исходным кодом, который обеспечивает безопасное хранение и доступ к различным секретам (паролям, сертификатам, токенам).

Образ приложения содержит предустановленную сборку HashiCorp Vault, которая при помощи Yandex Key Management Service дополнительно поддерживает Auto Unseal. Сборка подготовлена на основе HashiCorp Vault соответствующей версии.

Чтобы установить HashiCorp Vault:

  1. Подготовьте все необходимое для начала работы.
  2. Установите HashiCorp Vault с помощью Yandex Cloud Marketplace или Helm.
  3. Выполните инициализацию хранилища.

Перед началом работыПеред началом работы

Для работы HashiCorp Vault требуется:

  • Сервисный аккаунт с ролью kms.keys.encrypterDecrypter.
  • Авторизованный ключ.
  • Симметричный ключ шифрования.
  1. Создайте сервисный аккаунт:

    yc iam service-account create --name vault-kms
    
  2. Создайте авторизованный ключ для сервисного аккаунта и сохраните его в файл authorized-key.json:

    yc iam key create \
      --service-account-name vault-kms \
      --output authorized-key.json
    
  3. Создайте симметричный ключ Key Management Service:

    yc kms symmetric-key create \
      --name example-key \
      --default-algorithm aes-256 \
      --rotation-period 24h
    

    Сохраните идентификатор ключа (id) — он понадобится при установке приложения.

  4. Назначьте роль kms.keys.encrypterDecrypter сервисному аккаунту, созданному ранее:

    yc resource-manager folder add-access-binding \
      --id <идентификатор_каталога> \
      --service-account-name vault-kms \
      --role kms.keys.encrypterDecrypter
    

    Идентификатор каталога можно получить со списком каталогов.

  5. Убедитесь, что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — добавьте его.

    Важно

    От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.

  6. Установите kubectl и настройте его на работу с созданным кластером.

Установка с помощью Yandex Cloud MarketplaceУстановка с помощью Yandex Cloud Marketplace

Важно

При установке продукта HashiCorp Vault с поддержкой Key Management Service с помощью Cloud Marketplace будет задействован механизм доставки секретов Agent injector. Чтобы задействовать альтернативный механизм Vault CSI provider, установите продукт с помощью Helm-чарта. Подробнее об отличиях этих механизмов см. в документации Hashicorp.

  1. Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
  2. Нажмите на имя нужного кластера Managed Service for Kubernetes и выберите вкладку Marketplace.
  3. В разделе Доступные для установки приложения выберите HashiCorp Vault с поддержкой Key Management Service и нажмите кнопку Перейти к установке.
  4. Задайте настройки приложения:
    • Пространство имен — создайте новое пространство имен (например, hashicorp-vault-space). Если вы оставите пространство имен по умолчанию, HashiCorp Vault может работать некорректно.
    • Название приложения — укажите название приложения.
    • Ключ сервисной учетной записи для Vault — скопируйте в это поле содержимое файла authorized-key.json.
    • ID ключа KMS для Vault — укажите полученный ранее идентификатор ключа Key Management Service.
  5. Нажмите кнопку Установить.
  6. Дождитесь перехода приложения в статус Deployed.

Установка с помощью Helm-чартаУстановка с помощью Helm-чарта

  1. Установите менеджер пакетов Helm версии не ниже 3.8.0.

  2. Установите kubectl и настройте его на работу с созданным кластером.

  3. Для установки Helm-чарта с HashiCorp Vault выполните команду, указав в ней параметры ресурсов, созданных ранее:

    cat <путь_к_файлу_с_авторизованным_ключом> | helm registry login cr.yandex \
      --username 'json_key' \
      --password-stdin && \
    helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/vault/chart/vault \
      --version 0.28.1+yckms \
      --untar && \
    helm install \
      --namespace <пространство_имен> \
      --create-namespace \
      --set-file yandexKmsAuthJson=<путь_к_файлу_с_авторизованным_ключом> \
      --set yandexKmsKeyId=<идентификатор_ключа_KMS> \
      hashicorp ./vault/
    

    Примечание

    Если вы используете версию Helm ниже 3.8.0, добавьте в начало команды строку export HELM_EXPERIMENTAL_OCI=1 && \, чтобы включить поддержку Open Container Initiative (OCI) в клиенте Helm.

    Параметры команды:

    • <путь_к_файлу_с_авторизованным_ключом> — путь к файлу authorized-key.json, сохраненному ранее.
    • <пространство_имен> — новое пространство имен, которое будет создано для работы HashiCorp Vault. Если вы укажете пространство имен по умолчанию, HashiCorp Vault может работать некорректно. Рекомендуем указывать значение, отличное от всех существующих пространств имен (например, hashicorp-vault-space).
    • <идентификатор_ключа_KMS> — полученный ранее идентификатор ключа Key Management Service.

    В результате выполнения команды в кластер будет установлен продукт HashiCorp Vault с поддержкой KMS с механизмом доставки секретов Agent injector. Чтобы задействовать альтернативный механизм Vault CSI provider, дополните команду следующими параметрами:

    --set "injector.enabled=false" \
    --set "csi.enabled=true"
    

    Подробнее об отличиях этих механизмов см. в документации Hashicorp.

Инициализация хранилищаИнициализация хранилища

После установки HashiCorp Vault необходимо инициализировать один из его серверов. Процесс инициализации генерирует учетные данные, необходимые для распечатывания (unseal) всех серверов хранилища.

Примечание

При инициализации выполнять операцию unseal не нужно — образ приложения интегрирован с Key Management Service.

Подробнее см. на странице Auto Unseal и в документации HashiCorp Vault.

Чтобы инициализировать хранилище:

  1. Убедитесь, что приложение перешло в состояние Running и имеет 0/1 готовых подов:

    kubectl get pods \
      --namespace=<пространство_имен> \
      --selector='app.kubernetes.io/name=vault'
    

    Результат:

    NAME              READY  STATUS   RESTARTS  AGE
    <имя_пода_vault>  0/1    Running  0         58s
    
  2. Выполните инициализацию хранилища:

    kubectl exec \
      --namespace=<пространство_имен> \
      --stdin=true \
      --tty=true <имя_пода_vault> \
      -- vault operator init
    

    Результат:

    Recovery Key 1: ulbugw4IKttmCCPprF6JwmUCyx1YfieCQPQi********
    Recovery Key 2: S0kcValC6qSfEI4WJBovSbJWZntBUwtTrtis********
    Recovery Key 3: t44ZRqbzLZNzfChinZNzLCNnwvFN/R52vbD*/*******
    ...
    
    Recovery key initialized with 5 key shares and a key threshold of 3. Please
    securely distribute the key shares printed above.
    

    Сохраните полученные данные в надежном месте.

  3. Повторно запросите список подов приложения и убедитесь, что готов один под:

    kubectl get pods \
      --namespace=<пространство_имен> \
      --selector='app.kubernetes.io/name=vault'
    

    Результат:

    NAME               READY  STATUS   RESTARTS  AGE
    vault-yckms-k8s-0  1/1    Running  0         5m
    

См. такжеСм. также

  • Документация HashiCorp Vault
  • Документация Key Management Service
  • Использование HashiCorp Vault для хранения секретов
  • Установка External Secrets Operator с поддержкой Yandex Lockbox
  • Синхронизация с секретами Yandex Lockbox

Была ли статья полезна?

Предыдущая
Установка GitLab Runner
Следующая
Установка Ingress NGINX
Проект Яндекса
© 2025 ООО «Яндекс.Облако»