Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Router
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Managed Service for YDB
    • SpeechKit
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • Container Registry
    • Managed Service for Prometheus®
    • Message Queue
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Cloud Apps
    • Yandex AI Studio
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Yandex Cloud Video
    • Stackland
    • Yandex StoreDoc
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • DataSphere
    • Vision OCR
    • Translate
    • Cloud Registry
    • SmartCaptcha
    • Cloud Desktop
    • SourceCraft Code Assistant
    • Managed Service for GitLab
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Serverless Integrations
    • IoT Core
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Практические руководства
    • Все руководства
    • Разграничение прав доступа для групп пользователей
    • Приглашение нового пользователя и назначение ролей
    • Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer
    • Создание распределенной инфраструктуры с защищенным доступом
    • Централизованная публикация в интернете и защита приложений от DDoS
    • Базовая настройка SWS
    • Экстренная защита сервисов в Application Load Balancer от DDoS на уровне L7
    • Передача логов с виртуальной машины в Cloud Logging
    • Запись логов балансировщика в PostgreSQL
    • Безопасное хранение паролей для GitLab CI в виде секретов Yandex Lockbox
    • Сервисный аккаунт с профилем OS Login для управления ВМ с помощью Ansible
    • Передача логов с Container Optimized Image в Cloud Logging
    • Добавление HTML-страницы для работы SmartCaptcha
    • Настройка алертов и дашбордов в Monitoring
    • Загрузка аудитных логов в SIEM Splunk
    • Загрузка аудитных логов в SIEM ArcSight
      • Какой способ шифрования выбрать?
      • Шифрование с помощью CLI и API Yandex Cloud
      • Шифрование с помощью SDK Yandex Cloud
      • Шифрование с помощью AWS Encryption SDK
      • Шифрование с помощью Google Tink
    • Шифрование для бакета Object Storage на стороне сервера
    • Шифрование секретов в HashiCorp Terraform
    • Управление ключами KMS с HashiCorp Terraform
    • Auto Unseal в HashiCorp Vault
    • Передача логов кластера Yandex MPP Analytics for PostgreSQL в Yandex Cloud Logging
    • Получение сведений для запроса на включение ресурса в белый список Минцифры
    • Загрузка объектов в бакет Object Storage с помощью эфемерного ключа доступа

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

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

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

Статья создана
Yandex Cloud
Обновлена 16 июня 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.yandexcloud.kz: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 ТОО «Облачные Сервисы Казахстан»