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

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

  • Перед началом работы
  • Зашифруйте данные
  • Расшифруйте данные
  1. Пошаговые инструкции
  2. Симметричное шифрование
  3. Шифрование данных

Симметричное шифрование данных

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Перед началом работы
  • Зашифруйте данные
  • Расшифруйте данные

В этом разделе вы узнаете, как в KMS шифровать и расшифровывать данные небольшого размера (до 32 КБ) с помощью CLI и API по схеме симметричного шифрования. Подробнее о возможных способах шифрования читайте в разделе Какой способ шифрования выбрать?

Перед началом работыПеред началом работы

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

Зашифруйте данныеЗашифруйте данные

CLI
Terraform
API
SDK Yandex Cloud
AWS Encryption SDK
Google Tink

Команда зашифрует открытый текст, переданный в файле --plaintext-file, и запишет полученный шифртекст в файл --ciphertext-file.

  • --id — идентификатор ключа KMS, должен быть указан один из флагов: --id или --name.
  • --name — название ключа KMS, должен быть указан один из флагов: --id или --name.
  • --version-id — (опционально) версия ключа KMS, которая будет использоваться для шифрования. По умолчанию используется основная.
  • --plaintext-file — входной файл с открытым текстом.
  • --aad-context-file — (опционально) входной файл с AAD-контекстом.
  • --ciphertext-file — выходной файл с шифртекстом.
yc kms symmetric-crypto encrypt \
  --id abj76v82fics******** \
  --plaintext-file plaintext-file \
  --ciphertext-file ciphertext-file

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

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

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

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

  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"
    

Чтобы зашифровать данные, воспользуйтесь методом REST API encrypt для ресурса SymmetricCrypto или вызовом gRPC API SymmetricCryptoService/Encrypt.

О том, как шифровать и расшифровывать данные с помощью SDK Yandex Cloud читайте в разделе Шифрование данных с помощью SDK Yandex Cloud.

О том, как шифровать и расшифровывать данные с помощью AWS Encryption SDK читайте в разделе Шифрование данных с помощью AWS Encryption SDK.

О том, как шифровать и расшифровывать данные с помощью Google Tink читайте в разделе Шифрование данных с помощью Google Tink.

Расшифруйте данныеРасшифруйте данные

CLI
API
SDK Yandex Cloud
AWS Encryption SDK
Google Tink

Команда расшифрует шифртекст, переданный в файле --ciphertext-file, и запишет полученный открытый текст в файл --plaintext-file:

  • --id — идентификатор ключа KMS, должен быть указан один из флагов: --id или --name.
  • --name — название ключа KMS, должен быть указан один из флагов: --id или --name.
  • --ciphertext-file — входной файл с шифртекстом.
  • --aad-context-file — (опционально) входной файл с AAD-контекстом.
  • --plaintext-file — выходной файл с открытым текстом.
yc kms symmetric-crypto decrypt \
  --id abj76v82fics******** \
  --ciphertext-file ciphertext-file \
  --plaintext-file decrypted-file

Чтобы расшифровать данные, воспользуйтесь методом REST API decrypt для ресурса SymmetricCrypto или вызовом gRPC API SymmetricCryptoService/Decrypt.

О том, как шифровать и расшифровывать данные с помощью SDK Yandex Cloud читайте в разделе Шифрование данных с помощью SDK Yandex Cloud.

О том, как шифровать и расшифровывать данные с помощью AWS Encryption SDK читайте в разделе Шифрование данных с помощью AWS Encryption SDK.

О том, как шифровать и расшифровывать данные с помощью Google Tink читайте в разделе Шифрование данных с помощью Google Tink.

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

  • Интерфейс командной строки CLI.
  • Симметричное шифрование в Yandex Key Management Service.
  • Асимметричное шифрование в Yandex Key Management Service.
  • Управление ключами в KMS.
  • Шифрование секретов в HashiCorp Terraform.

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

Предыдущая
Версия ключа
Следующая
Права доступа к ключу шифрования
Проект Яндекса
© 2025 ООО «Яндекс.Облако»