Шифрование в Object Storage
При использовании сервиса Yandex Object Storage критичные данные должны быть зашифрованы.
Шифрование бакета Object Storage с помощью ключей Yandex Key Management Service (server-side encryption) — рекомендуемый подход. Такое шифрование защищает от случайной или намеренной публикации содержимого бакета в интернете.
Внимание
Данные в Object Storage шифруются по схеме envelope encryption. Удаление ключа равносильно потере зашифрованных им данных.
Шифрование выполняется на стороне сервера (server-side encryption) с помощью ключей, хранящихся в Key Management Service. Созданный KMS-ключ указывается в настройках бакета. Этот ключ будет использоваться для шифрования всех новых объектов или при загрузке объекта через API.
Объекты шифруются перед сохранением в бакет и расшифровываются при скачивании из него. Шифрование по умолчанию применяется ко всем новым объектам, при этом загруженные ранее — остаются без изменений.
Для шифрования у пользователя бакета вместе с ролью storage.configurer
должна быть роль для доступа к ключу — kms.keys.encrypter
. Чтобы расшифровывать объекты, пользователю нужны роли storage.configurer
и kms.keys.decrypter
(для чтения ключа шифрования).
Подробнее см. Сервисные роли Key Management Service.
Кроме шифрования с помощью Key Management Service-ключей, вы можете использовать следующие подходы:
- Интеграция Object Storage с сервисом Key Management Service для шифрования данных на уровне приложения (client-side encryption). Подробнее смотрите в разделе Рекомендуемые криптографические библиотеки.
- Шифрование данных на уровне приложения перед отправкой их в Object Storage с помощью сторонних библиотек. При использовании сторонних библиотек и собственных способов управления ключами следует убедиться, что схема работы, используемые алгоритмы и длины ключей соответствуют требованиям регуляторов.