Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Разграничение прав доступа для групп пользователей
    • Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer
    • Централизованная публикация в интернете и защита приложений от DDoS
    • Передача логов с виртуальной машины в Cloud Logging
    • Запись логов балансировщика в PostgreSQL
    • Безопасное хранение паролей для GitLab CI в виде секретов Yandex Lockbox
    • Сервисный аккаунт с профилем OS Login для управления ВМ с помощью Ansible
    • Передача логов с Container Optimized Image в Cloud Logging
    • Добавление HTML-страницы для работы SmartCaptcha
    • Создание L7-балансировщика с профилем безопасности
    • Настройка алертов в Monitoring
    • Загрузка аудитных логов в MaxPatrol SIEM
    • Загрузка аудитных логов в SIEM Splunk
    • Загрузка аудитных логов в SIEM ArcSight
    • Шифрование для бакета Object Storage на стороне сервера
    • Шифрование секретов в HashiCorp Terraform
    • Управление ключами KMS с HashiCorp Terraform
    • Auto Unseal в HashiCorp Vault
    • Передача логов кластера Managed Service for Greenplum® в Yandex Cloud Logging

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

  • Добавление ключа
  • Управление доступом к ключу
  • См. также
  1. Безопасность
  2. Управление ключами KMS с HashiCorp Terraform

Управление ключами Yandex Key Management Service с HashiCorp Terraform

Статья создана
Yandex Cloud
Улучшена
Обновлена 29 января 2025 г.
  • Добавление ключа
  • Управление доступом к ключу
  • См. также

Terraform-провайдер для Yandex Cloud поддерживает работу с ключами Yandex Key Management Service.

Добавление ключаДобавление ключа

Чтобы создать новый ключ:

  1. Опишите в конфигурационном файле параметры ресурса yandex_kms_symmetric_key:

    resource "yandex_kms_symmetric_key" "key-a" {
      name                = "<имя_ключа>"
      description         = "<описание_ключа>"
      default_algorithm   = "AES_128"
      rotation_period     = "8760h"
      deletion_protection = true
      lifecycle {
        prevent_destroy = true
      }
    }
    

    Где:

    • name — имя ключа. Формат имени:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    • description — описание ключа.

    • default_algorithm — алгоритм шифрования. Возможные значения: AES-128, AES-192 или AES-256.

    • rotation_period — период ротации (частота смены версии ключа по умолчанию). Чтобы создать ключ без автоматической ротации, не указывайте параметр rotation_period.

    • deletion_protection — защита от удаления ключа. Чтобы создать ключ без защиты от удаления, не указывайте параметр deletion_protection.

    • lifecycle.prevent_destroy — защита от удаления ключа при выполнении команд Terraform. Чтобы создать ключ без такой защиты, не указывайте блок lifecycle.

    Важно

    Удаление ключа KMS равносильно уничтожению всех зашифрованных с его помощью данных — без ключа восстановить данные не получится. Параметр deletion_protection и блок lifecycle необходимы, чтобы обезопасить ключ от удаления (например, командой terraform destroy).

    Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера.

  2. Проверьте конфигурацию командой:

    terraform validate
    

    Если конфигурация является корректной, появится сообщение:

    Success! The configuration is valid.
    
  3. Выполните команду:

    terraform plan
    

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

  4. Примените изменения конфигурации:

    terraform apply
    
  5. Подтвердите изменения: введите в терминал слово yes и нажмите Enter.

    После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления или с помощью команд CLI:

    yc kms symmetric-key list
    

Управление доступом к ключуУправление доступом к ключу

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

Например, назначьте на сервисный аккаунт роль kms.keys.encrypterDecrypter, дающую права шифровать и расшифровывать данные ключами из определенного каталога:

resource "yandex_resourcemanager_folder_iam_member" "admin" {
  folder_id = "<идентификатор_каталога>"
  role      = "kms.keys.encrypterDecrypter"
  member    = "serviceAccount:<идентификатор_сервисного_аккаунта>"
}

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

  • Начало работы с Terraform.
  • Управление доступом в Key Management Service.
  • Документация провайдера Yandex Cloud.
  • Шифрование данных с помощью CLI и API Yandex Cloud.

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

Предыдущая
Шифрование секретов в HashiCorp Terraform
Следующая
Auto Unseal в HashiCorp Vault
Проект Яндекса
© 2025 ООО «Яндекс.Облако»