Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Безопасность в Yandex Cloud
  • Ключевые принципы безопасности
  • Разделение ответственности за обеспечение безопасности
  • Соответствие требованиям
  • Меры безопасности на стороне Yandex Cloud
  • Средства защиты, доступные пользователям облачных сервисов
  • Фреймворк безопасной работы с агентами AI-SAFE
    • Все руководства
      • Какой способ шифрования выбрать?
      • Шифрование данных с помощью CLI и API Yandex Cloud
      • Шифрование данных с помощью SDK Yandex Cloud
      • Шифрование данных с помощью AWS Encryption SDK
      • Шифрование данных с помощью Google Tink
      • Управление ключами Key Management Service с Terraform
      • Шифрование секретов в Terraform
      • Auto Unseal в HashiCorp Vault
      • Безопасная передача пароля в скрипт инициализации
      • Безопасное хранение паролей для GitLab CI в виде секретов Yandex Lockbox
      • Получение значения секрета Yandex Lockbox на стороне GitHub
      • Получение значения секрета Yandex Lockbox на стороне GitLab
  • Политика поддержки пользователей при проведении проверки уязвимостей
  • Бюллетени безопасности
  • Диапазоны публичных IP-адресов

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

  • Рекомендации для безопасного хранения секретных данных
  • См. также
  1. Практические руководства
  2. Шифрование данных и управление ключами
  3. Шифрование секретов в Terraform

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

Статья создана
Yandex Cloud
Обновлена 5 ноября 2025 г.
  • Рекомендации для безопасного хранения секретных данных
  • См. также

Чтобы зашифровать данные:

  1. Опишите в конфигурационном файле параметры ресурса yandex_kms_secret_ciphertext с указанием на ключ KMS в поле key_id:

    resource "yandex_kms_secret_ciphertext" "password" {
      key_id      = "<идентификатор_ключа>"
      aad_context = "additional authenticated data"
      plaintext   = "strong password"
    }
    

    Где:

    • key_id — идентификатор ключа KMS.
    • aad_context — (AAD-контекст).
    • plaintext — строка, которую нужно зашифровать.

    Важно

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

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

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

    terraform validate
    

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

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

    terraform plan
    

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

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

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

    После этого доступ к шифртексту можно получить через переменную ciphertext, а к зашифрованным данным — plaintext.

    Для проверки вы можете добавить в файл конфигурации следующий код с выходной переменной decrypted_pass.

    Внимание

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

    output "decrypted_pass" {
      sensitive = true
      value     = yandex_kms_secret_ciphertext.password.plaintext
    }
    

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

    terraform output decrypted_pass
    

    Результат:

    "strong password"
    

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

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

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

  • Начало работы с Terraform в Yandex Cloud.
  • Документация провайдера Yandex Cloud.
  • Sensitive Data in State.
  • Шифрование данных с помощью CLI и API Yandex Cloud.
  • Auto Unseal в HashiCorp Vault

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

Предыдущая
Управление ключами Key Management Service с Terraform
Следующая
Auto Unseal в HashiCorp Vault
Проект Яндекса
© 2025 ООО «Яндекс.Облако»