Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Key Management Service
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Ключ
    • Версия ключа
    • Шифрование данных
  • Концепции
    • Обзор
    • Ключ
    • Версия ключа
    • Шифрование
    • Шифрование по схеме envelope encryption
    • Консистентность ключей
    • Аппаратный модуль безопасности (HSM)
    • Квоты и лимиты
  • Практические руководства
    • Все руководства
    • Шифрование данных
      • Какой способ шифрования выбрать?
      • Шифрование с помощью CLI и API Yandex Cloud
      • Шифрование с помощью SDK Yandex Cloud
      • Шифрование с помощью AWS Encryption SDK
      • Шифрование с помощью Google Tink
    • Шифрование секретов в Managed Service for Kubernetes
    • Управление ключами KMS с Hashicorp Terraform
    • Шифрование секретов в Hashicorp Terraform
    • Auto Unseal в Hashicorp Vault
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • SymmetricCryptoService
      • SymmetricKeyService
      • OperationService
    • REST (англ.)
      • Overview
      • SymmetricCrypto
        • Overview
        • decrypt
        • encrypt
        • generateDataKey
        • reEncrypt
      • SymmetricKey
        • Overview
        • cancelVersionDestruction
        • create
        • delete
        • get
        • list
        • listAccessBindings
        • listOperations
        • listVersions
        • rotate
        • scheduleVersionDestruction
        • setAccessBindings
        • setPrimaryVersion
        • update
        • updateAccessBindings
  • Вопросы и ответы
  1. Практические руководства
  2. Управление ключами KMS с Hashicorp Terraform

Управление ключами KMS с Hashicorp Terraform

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

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

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

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

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

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

    Где:

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

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

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

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

    Важно

    Удаление ключа KMS равносильно уничтожению всех зашифрованных с его помощью данных — без ключа восстановить данные не получится. Блок 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.

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

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Добавление ключа
  • Управление доступом к ключу
  • См. также