Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Neurosupport
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Key Management Service
  • Начало работы
    • Обзор
      • Ключевая пара шифрования
      • Асимметричное шифрование
    • Шифрование по схеме envelope encryption
    • Консистентность ключей
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Вопросы и ответы
  • Обучающие курсы

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

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

Асимметричное шифрование в KMS

Статья создана
Yandex Cloud
Обновлена 24 июня 2026 г.
Открыть в Markdown
  • Получение открытого ключа ключевой пары
  • Шифрование данных
  • Расшифрование данных

Одна из доступных схем шифрования в KMS — асимметричное шифрование. По этой схеме шифрование выполняется с помощью открытого ключа (Public key) асимметричной ключевой пары (криптопары), а расшифрование — с помощью ее закрытого ключа (Private key). Key Management Service позволяет выгружать открытый ключ для шифрования текста на стороне клиента. Расшифровать такой текст в KMS можно с использованием закрытого ключа ключевой пары. Получить прямой доступ к закрытому ключу в KMS нельзя.

Каждая ключевая пара соответствует одному ключу в квотах KMS.

Получение открытого ключа ключевой парыПолучение открытого ключа ключевой пары

Чтобы зашифровать сообщение, необходимо получить в KMS открытый ключ. Для этого нужно создать запрос к сервису с помощью CLI или API.

Чтобы получить открытый ключ шифрования ключевой пары, пользователю или сервисному аккаунту необходимо назначить роль kms.asymmetricEncryptionKeys.publicKeyViewer на ключевую пару.

Шифрование данныхШифрование данных

Шифрование данных выполняется вне сервиса Key Management Service. Для операции шифрования необходим открытый ключ асимметричной ключевой пары шифрования.

Чтобы зашифровать сообщение, можно воспользоваться утилитой OpenSSL.

openssl pkeyutl \
  -in <путь_к_файлу_с_сообщением> \
  -encrypt \
  -pubin \
  -inkey <путь_к_файлу_с_открытым_ключом> \
  -pkeyopt rsa_padding_mode:oaep \
  -pkeyopt rsa_oaep_md:sha256 \
  -pkeyopt rsa_mgf1_md:sha256 | base64

Где:

  • -in — путь к файлу с сообщением, которое требуется зашифровать.
  • -inkey — путь к файлу, содержащему открытый ключ шифрования.

Хэш-функция указана в конце выбранного ключа. При шифровании используется только sha256. Сервис KMS принимает зашифрованный текст в кодировке base64 и расшифровывает его с помощью закрытого ключа.

Максимальный размер шифруемого сообщения зависит от длины ключа шифрования и длины хэш-функции (RFC2437). Максимальный размер сообщения можно вычислить по формуле:

<длина_сообщения> = (k - 2) - 2 × hashLength

Где:

  • <длина_сообщения> — длина шифруемого сообщения в байтах.
  • k — длина ключа шифрования в байтах.
  • hashLength — длина хэш-функции в байтах.
Алгоритм Параметры Макс. длина сообщения
RSA_2048_ENC_OAEP_SHA_256 k=256, hashLength=32 190 байт
RSA_3072_ENC_OAEP_SHA_256 k=384, hashLength=32 318 байт
RSA_4096_ENC_OAEP_SHA_256 k=512, hashLength=32 446 байт

Расшифрование данныхРасшифрование данных

Расшифровать данные можно с помощью закрытого ключа ключевой пары в сервисе Key Management Service. Для этого нужно создать запрос к сервису с помощью CLI или API.

Чтобы расшифровать данные, пользователю или сервисному аккаунту необходимо назначить роль kms.asymmetricEncryptionKeys.decrypter на ключевую пару шифрования.

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

Предыдущая
Ключевая пара шифрования
Следующая
Ключевая пара электронной подписи
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»