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 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
      • Загрузка объектов в бакет Object Storage с помощью эфемерного ключа доступа
    • Получение сведений для запроса на включение ресурса в белый список Минцифры
  • Политика поддержки пользователей при проведении проверки уязвимостей
  • Бюллетени безопасности
  • Диапазоны публичных IP-адресов

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

  • Добавление зависимостей
  • Аутентификация
  • Аутентификация с сервисным аккаунтом, привязанным к виртуальной машине Yandex Cloud
  • Аутентификация с произвольным сервисным аккаунтом
  • Аутентификация с пользовательским аккаунтом
  • Шифрование и расшифрование данных
  1. Практические руководства
  2. Шифрование данных и управление ключами
  3. Шифрование данных с помощью SDK Yandex Cloud

Шифрование данных с помощью SDK Yandex Cloud

Статья создана
Yandex Cloud
Улучшена
ilya
Обновлена 5 августа 2026 г.
Открыть в Markdown
  • Добавление зависимостей
  • Аутентификация
    • Аутентификация с сервисным аккаунтом, привязанным к виртуальной машине Yandex Cloud
    • Аутентификация с произвольным сервисным аккаунтом
    • Аутентификация с пользовательским аккаунтом
  • Шифрование и расшифрование данных

С Yandex Key Management Service можно работать с помощью SDK Yandex Cloud. Реализация SDK есть на Java, Go, Python и Node.js.

SDK Yandex Cloud наиболее удобен для шифрования данных небольшого размера (ограничение на размер открытого текста – 32 КБ). Для шифрования данных большего объема рекомендуется использовать AWS Encryption SDK или Google Tink. Они шифруют данные по схеме envelope encryption.

Добавление зависимостейДобавление зависимостей

Перед началом работы необходимо добавить зависимости.

Java
Go

Добавьте зависимости с помощью Apache Maven:

<dependency>
    <groupId>com.yandex.cloud</groupId>
    <artifactId>java-sdk-services</artifactId>
    <version>2.4.2</version>
</dependency>

Установите SDK:

go get github.com/yandex-cloud/go-sdk

АутентификацияАутентификация

Аутентифицироваться можно с помощью:

  • сервисного аккаунта, привязанного к виртуальной машине Yandex Cloud;
  • произвольного сервисного аккаунта;
  • пользовательского аккаунта.

Аутентификация с сервисным аккаунтом, привязанным к виртуальной машине Yandex CloudАутентификация с сервисным аккаунтом, привязанным к виртуальной машине Yandex Cloud

Java
Go

Аутентифицируйтесь с сервисным аккаунтом, привязанным к ВМ:

CredentialProvider credentialProvider = Auth.computeEngineBuilder().build();

Аутентифицируйтесь с сервисным аккаунтом, привязанным к ВМ:

credentials := ycsdk.InstanceServiceAccount()

Аутентификация с произвольным сервисным аккаунтомАутентификация с произвольным сервисным аккаунтом

В key.json должен содержаться авторизованный ключ сервисного аккаунта. Как создать авторизованный ключ читайте в разделе Создать авторизованный ключ.

Java
Go

Аутентифицируйтесь с произвольным сервисным аккаунтом:

CredentialProvider credentialProvider = Auth.apiKeyBuilder().fromFile(Paths.get("key.json")).build();

Аутентифицируйтесь с произвольным сервисным аккаунтом:

authorizedKey, err := iamkey.ReadFromJSONFile("key.json")
if err != nil {...}
credentials, err := ycsdk.ServiceAccountKey(authorizedKey)
if err != nil {...}

Аутентификация с пользовательским аккаунтомАутентификация с пользовательским аккаунтом

Пользовательским аккаунтом считается аккаунт на Яндексе, федеративный и локальный аккаунт.

Важно

Аутентификация с пользовательским аккаунтом может быть небезопасна. Рекомендуем использовать сервисный аккаунт.

Переменная token — это ваш IAM-токен. Подробнее о получении IAM-токена читайте в документации Yandex Identity and Access Management.

Java
Go
CredentialProvider credentialProvider = Auth.iamTokenBuilder()
        .token(token)
        .build();
credentials := ycsdk.NewIAMTokenCredentials(token)

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

Примечание

Изменения, вызванные eventually consistent операциями, становятся применимыми для шифрования и расшифрования с задержкой до трех часов.

Используйте методы encrypt и decrypt для шифрования и расшифрования данных. В коде используются следующие переменные:

  • endpoint – api.cloud.yandex.net:443.
  • keyId – идентификатор ключа KMS.
  • plaintext – открытый текст (не более 32 КБ).
  • ciphertext – шифртекст.
  • aad – AAD-контекст.
Java
Go
SymmetricCryptoServiceBlockingStub symmetricCryptoService = ServiceFactory.builder()
    .endpoint(endpoint)
    .credentialProvider(credentialProvider)
    .build()
    .create(
        SymmetricCryptoServiceBlockingStub.class,
        SymmetricCryptoServiceGrpc::newBlockingStub
    );

...

byte[] ciphertext = symmetricCryptoService.encrypt(SymmetricEncryptRequest.newBuilder()
    .setKeyId(keyId)
    .setPlaintext(ByteString.copyFrom(plaintext))
    .setAadContext(ByteString.copyFrom(aad))
    .build()
).getCiphertext().toByteArray();

...

byte[] plaintext = symmetricCryptoService.decrypt(SymmetricDecryptRequest.newBuilder()
    .setKeyId(keyId)
    .setCiphertext(ByteString.copyFrom(ciphertext))
    .setAadContext(ByteString.copyFrom(aad))
    .build()
).getPlaintext().toByteArray();

sdk, err := ycsdk.Build(context, ycsdk.Config{
  Endpoint:    endpoint,
  Credentials: credentials,
})
if err != nil {...}

...

response, err := sdk.KMSCrypto().SymmetricCrypto().Encrypt(context, &kms.SymmetricEncryptRequest{
  KeyId:      keyId,
  Plaintext:  plaintext,
  AadContext: aad,
})
if err != nil {...}
ciphertext := response.Ciphertext

...

response, err := sdk.KMSCrypto().SymmetricCrypto().Decrypt(context, &kms.SymmetricDecryptRequest{
  KeyId:      keyId,
  Ciphertext: ciphertext,
  AadContext: aad,
})
if err != nil {...}
plaintext := response.Plaintext

Полезные ссылкиПолезные ссылки

  • Yandex Cloud Java SDK.
  • Примеры работы с KMS с помощью Java SDK.
  • Yandex Cloud Go SDK.

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

Предыдущая
Шифрование данных с помощью CLI и API Yandex Cloud
Следующая
Шифрование данных с помощью AWS Encryption SDK
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»