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

Шифрование секретов в Hashicorp Terraform

  • Рекомендации для безопасного хранения секретных данных
  • См. также

Terraform-провайдер для Yandex.Cloud позволяет зашифровать секреты ключом KMS для последующего их использования в Terraform-конфигурации.

Открытый текст и ключ KMS, который следует использовать для шифрования, необходимо указать в блоке yandex_kms_secret_ciphertext:

resource "yandex_kms_secret_ciphertext" "encrypted_strong_password" {
  key_id      = "<ID ключа>"
  aad_context = "additional authenticated data"
  plaintext   = "strong password"
}

После этого доступ к шифртексту можно получить через переменную ${yandex_kms_secret_ciphertext.encrypted_strong_password.ciphertext}.

Важно

Использование yandex_kms_secret_ciphertext позволяет скрыть секреты при разворачивании инфраструктуры, но в общем случае указание plaintext и aad_context в конфигурационном файле в открытом виде небезопасно. Секреты могут быть прочитаны из файла конфигурации, могут попасть в Terraform-state или могут быть прочитаны из логов выполнения.

Рекомендации для безопасного хранения секретных данных

  • Не указывайте значения секретов в конфигурационном файле явно. Читайте их из хранилища, доступ к которому ограничен (например, использовать хранилища секретов).
  • Рассмотрите возможность удаленного хранения Terraform-state.

См. также

  • Начало работы с Terraform в Yandex.Cloud.
  • Документация провайдера Yandex.Cloud.
  • Sensitive Data in State.
В этой статье:
  • Рекомендации для безопасного хранения секретных данных
  • См. также
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»