Как начать работать с Key Management Service
Шифрование помогает защитить от несанкционированного чтения конфиденциальные данные, например документы и резервные копии. В Key Management Service можно создавать ключи шифрования и управлять правами на их использование. Сервис можно вызывать из собственных приложений через API или SDK, а также использовать для шифрования данных в других сервисах Yandex Cloud.
Симметричный ключ хранится в KMS и не передается приложению: оно запрашивает у сервиса операции шифрования и расшифрования. Поэтому ключ не нужно размещать в коде или конфигурации приложения.
В этом учебном примере вы создадите симметричный ключ: один и тот же ключ используется для шифрования и расшифрования данных. Вы выполните обе операции через CLI без подключения других сервисов и разработки приложения.
Key Management Service также поддерживает асимметричные ключевые пары для шифрования и ключевые пары для электронной подписи.
Подготовка к работе
Чтобы начать работать с Key Management Service:
-
Войдите в консоль управления
. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям. -
На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его. -
Назначьте вашему аккаунту в Yandex Cloud роль
ownerилиeditorна нужное облако.Примечание
Если вы не можете управлять ролями, обратитесь к администратору вашего облака или организации.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
Создайте ключ симметричного шифрования
Создайте ключ симметричного шифрования:
-
В консоли управления
выберите каталог, в котором хотите создать ключ. -
Перейдите
в сервис Key Management Service. -
На панели слева выберите
Симметричные ключи. -
Нажмите кнопку Создать ключ и задайте параметры ключа:
- В поле Имя укажите
my-first-key. - В поле Алгоритм шифрования укажите
AES-256. - В поле Период ротации, дни оставьте значение
Нет ротации. - Нажмите кнопку Создать.
- В поле Имя укажите
-
Нажмите на строку с именем ключа и убедитесь, что в блоке Версии есть первая версия ключа.
Зашифруйте текст с помощью ключа
Придумайте секретный текст, например Запуск состоится 42 мартобря.
. Размер текста не должен превышать 32 КБ, для шифрования больших объемов данных используйте шифрование по схеме envelope encryption.
Зашифруйте текст:
-
Запишите секретный текст в файл
plaintext.txt. -
Из консоли управления скопируйте идентификатор ключа, созданного ранее.
- В консоли управления
выберите каталог, в котором был создан ключ. - Перейдите
в сервис Key Management Service. - В открывшемся окне скопируйте идентификатор ключа из поля Идентификатор.
- В консоли управления
-
Зашифруйте текст:
yc kms symmetric-crypto encrypt \ --id <идентификатор_ключа> \ --plaintext-file plaintext.txt \ --ciphertext-file ciphertext
Результат — бинарный файл ciphertext, содержащий шифртекст.
Расшифруйте текст
Расшифруйте бинарный файл ciphertext, полученный на предыдущем шаге.
Расшифруйте текст:
yc kms symmetric-crypto decrypt \
--id <идентификатор_ключа> \
--ciphertext-file ciphertext \
--plaintext-file decrypted.txt
В результате файл ciphertext будет расшифрован, и в decrypted.txt будет записан расшифрованный текст: Запуск состоится 42 мартобря.
.
Практические сценарии
Чтобы применить KMS в своих задачах, воспользуйтесь руководствами:
- Шифрование данных приложения — обращение к KMS из кода через SDK Yandex Cloud.
- Шифрование файлов в Object Storage — автоматическое шифрование новых объектов в бакете с помощью выбранного ключа.
- Шифрование секретов в Managed Service for Kubernetes — защита паролей и других конфиденциальных данных, хранящихся в секретах кластера.
- Auto Unseal в HashiCorp Vault — автоматическая разблокировка Vault при запуске с помощью ключа KMS.