Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Key Management Service
  • Начало работы
    • Все руководства
    • Шифрование секретов в Managed Service for Kubernetes
    • Подпись и проверка Docker-образов в Managed Service for Kubernetes
    • Управление ключами KMS с HashiCorp Terraform
    • Шифрование секретов в HashiCorp Terraform
    • Auto Unseal в HashiCorp Vault
    • Безопасная передача пароля в скрипт инициализации
    • Шифрование для бакета Object Storage на стороне сервера
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Вопросы и ответы
  • Обучающие курсы

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

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Настройте Auto Unseal
  • Примеры конфигурации
  • Ротация ключей
  • Как удалить созданные ресурсы
  • См. также
  1. Практические руководства
  2. Auto Unseal в HashiCorp Vault

Auto Unseal в HashiCorp Vault

Статья создана
Yandex Cloud
Улучшена
Kamenev N.
Обновлена 14 апреля 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Настройте Auto Unseal
  • Примеры конфигурации
  • Ротация ключей
  • Как удалить созданные ресурсы
  • См. также

Сборка HashiCorp Vault с поддержкой Yandex Key Management Service доступна в виде образа ВМ в Cloud Marketplace и docker-образа. Она отличается от основной только одним из бинарных файлов Vault, в который добавлена поддержка Key Management Service.

Даная сборка позволяет использовать Key Management Service в качестве доверенного сервиса для шифрования секретов. Реализуется это через механизм Auto Unseal.

Из этого руководства вы узнаете как настроить механизм Auto Unseal для работы с KMS.

Чтобы настроить Auto Unseal:

  1. Подготовьте облако к работе.
  2. Настройте Auto Unseal.

Подготовьте облако к работеПодготовьте облако к работе

  1. Скачайте последнюю версию docker-образа, используйте команду:

    docker pull cr.yandex/yc/vault
    
  2. Выберите один из способов аутентификации запросов Vault к KMS. Аутентифицироваться можно через:

    Сервисный аккаунт, привязанный к ВМ
    Произвольный сервисный аккаунт
    Аккаунт на Яндексе или федеративный аккаунт

    Для аутентификации будет использоваться IAM-токен, автоматически извлекаемый из метаданных ВМ. Подробнее об этом читайте в разделе Работа с Yandex Cloud изнутри виртуальной машины.

    Совет

    Этот вариант наиболее предпочтительный с точки зрения безопасности. При настройке с использованием сервисного аккаунта, привязанного к ВМ, указание учетных данных не требуется.

    Для аутентификации будет использован авторизованный ключ. Подробнее о том, как работать с авторизованным ключом читайте в разделе Получить IAM-токен с помощью CLI.

    Для аутентификации будет использован OAuth-токен или IAM-токен.

    Совет

    Этот вариант самый нежелательный с точки зрения безопасности. Рекомендуется использовать только для тестирования.

  3. Создайте отдельный Key Management Service-ключ для Vault (рекомендуется).

  4. Предоставьте доступ к ключу только пользователю или сервисному аккаунту, который будет использоваться для аутентификации запросов Vault в KMS. Vault при взаимодействии с KMS выполняет только операции шифрования и расшифрования, поэтому роли kms.keys.encrypterDecrypter будет достаточно.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки инфраструктуры входят:

  • плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
  • плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud);
  • плата за количество активных версий KMS-ключа и число выполненных криптографических операций (см. тарифы Yandex Virtual Private Cloud).

Настройте Auto UnsealНастройте Auto Unseal

Для настройки Auto Unseal внесите изменения в конфигурационный файл Vault:

Важно

Если Vault уже проинициализирован, изменять конфигурацию необходимо в рамках процедуры миграции.

  1. В блоке seal укажите значение "yandexcloudkms".

  2. Добавьте параметр kms_key_id с идентификатором KMS-ключа для шифрования.

  3. Аутентифицируйтесь одним из способов:

    Сервисный аккаунт, привязанный к ВМ
    Произвольный сервисный аккаунт
    Аккаунт на Яндексе или федеративный аккаунт

    Привяжите сервисный аккаунт к ВМ в соответствии с инструкцией.

    В значении параметра service_account_key_file укажите путь к файлу с авторизованным ключом сервисного аккаунта.

    Если вы используете аккаунт на Яндекс, то в значении параметра oauth_token укажите OAuth-токен. Для федеративного аккаунта укажите IAM-токен.

  4. Измените конфигурацию в рамках процедуры миграции, соответствующей используемой версии Vault.

Примечание

Для задания значений параметров вместо конфигурационного файла можно использовать переменные окружения:

  • переменной YANDEXCLOUD_KMS_KEY_ID соответствует параметр kms_key_id файла конфигурации;
  • переменной YANDEXCLOUD_SERVICE_ACCOUNT_KEY_FILE — параметр service_account_key_file;
  • переменной YANDEXCLOUD_OAUTH_TOKEN — параметр oauth_token.

Значения из переменных окружения имеют приоритет над значениями из конфигурационного файла.

Примеры конфигурацииПримеры конфигурации

Сервисный аккаунт, привязанный к ВМ
Произвольный сервисный аккаунт
Аккаунт на Яндексе или федеративный аккаунт
...
seal "yandexcloudkms" {
  kms_key_id = "<идентификатор_KMS-ключа>"
}
...
...
seal "yandexcloudkms" {
  kms_key_id               = "<идентификатор_KMS-ключа>"
  service_account_key_file = "<путь_к_JSON-файлу>"
}
...

Где service_account_key_file — путь к JSON-файлу с авторизованным ключом.

...
seal "yandexcloudkms" {
  kms_key_id  = "<идентификатор_KMS-ключа>"
  oauth_token = "<токен_пользователя>"
}
...

Ротация ключейРотация ключей

При шифровании master-ключа Vault KMS-ключом Vault дополнительно сохраняет версию ключа, которой он был зашифрован.

При расшифровании master-ключа Vault (при рестарте Vault) сохраненная версия KMS-ключа, на которой зашифрован master-ключ Vault, сравнивается с primary-версией KMS-ключа. Если версии различаются, происходит перешифрование master-ключа Vault новой primary-версией KMS-ключа.

Таким образом перешифрование master-ключа Vault можно осуществлять ротацией ключа в KMS. Ротация ключа в Key Management Service приведет к автоматическому перешифрованию master-ключа Vault во время следующего рестарта Vault.

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы:

  • удалите ВМ, если вы создавали ее для запуска Vault;
  • удалите статический публичный IP-адрес, если вы его зарезервировали;
  • удалите Key Management Service-ключ.

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

  • HashiCorp Vault
  • Seal/Unseal в Vault
  • Seal-конфигурация в Vault

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

Предыдущая
Шифрование секретов в HashiCorp Terraform
Следующая
Безопасная передача пароля в скрипт инициализации
Проект Яндекса
© 2025 ООО «Яндекс.Облако»