Предоставление ключа шифрования по запросу к хранилищу BLOB-объектов

Клиенты, выполняющие запросы к хранилищу BLOB-объектов Azure, могут предоставлять ключ шифрования AES-256 для шифрования этого большого двоичного объекта во время операции записи. Последующие запросы на чтение или запись в большой двоичный объект должны содержать тот же ключ. Включение ключа шифрования по запросу обеспечивает детальный контроль над параметрами шифрования для операций с хранилищем BLOB-объектов. Предоставляемые клиентом ключи могут храниться в службе Azure Key Vault или в другом хранилище ключей.

Шифрование операций чтения и записи

Когда клиентское приложение предоставляет ключ шифрования по запросу, служба хранилища Azure прозрачно выполняет шифрование и дешифрование при чтении и записи данных BLOB-объектов. Служба хранилища Azure записывает хэш SHA-256 ключа шифрования вместе с содержимым BLOB-объекта. Хэш используется для проверки того, что все последующие операции с BLOB-объектом используют один и тот же ключ шифрования.

Служба хранилища Azure не хранит ключ шифрования, отправленный клиентом с запросом, и не управляет им. Ключ безопасно удаляется сразу по завершении процесса шифрования или расшифровки.

Когда клиент создает или обновляет BLOB-объект с помощью предоставленного клиентом ключа по запросу, последующие запросы на чтение и запись для этого BLOB-объекта также должны предоставлять ключ. Если ключ не предоставлен по запросу для BLOB-объекта, который уже зашифрован с помощью предоставленного клиентом ключа, запрос завершается ошибкой с кодом 409 (конфликт).

Если клиентское приложение отправляет ключ шифрования по запросу, а учетная запись хранения также шифруется с помощью ключа, управляемого Майкрософт, или ключа, управляемого клиентом, служба хранилища Azure использует ключ, указанный в запросе, для шифрования и дешифрования.

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

Каждый моментальный снимок или версия BLOB-объекта может иметь свой собственный ключ шифрования.

Репликация объектов не поддерживается для BLOB-объектов в исходной учетной записи, зашифрованных с помощью ключа, предоставляемого клиентом.

Заголовки запроса для указания предоставленных клиентом ключей

Для вызовов REST клиенты могут использовать следующие заголовки для безопасной передачи сведений о ключе шифрования в запросе к хранилищу BLOB-объектов:

Заголовок запроса Description
x-ms-encryption-key Требуется для запросов на запись и чтение. Значение ключа шифрования AES-256 в кодировке Base64.
x-ms-encryption-key-sha256 Требуется для запросов на запись и чтение. Значение SHA256 ключа шифрования в кодировке Base64.
x-ms-encryption-algorithm Требуется для запросов на запись, необязательно для запросов на чтение. Задает алгоритм, используемый при шифровании данных с помощью заданного ключа. Для этого заголовка должно быть установлено значение AES256.

Указание ключей шифрования в запросе является необязательным. Но если указать один из указанных выше заголовков для операции записи, необходимо указать все эти заголовки.

Операции хранилища BLOB-объектов, поддерживающие предоставленные клиентом ключи

Следующие операции хранилища BLOB-объектов поддерживают отправку предоставленных клиентом ключей шифрования по запросу:

Смена ключей, предоставленных клиентом

Для смены ключа шифрования, который использовался для шифрования BLOB-объекта, скачайте BLOB-объект, а затем повторно загрузите его с новым ключом шифрования.

Важно!

Портал Azure не может быть использован для чтения или записи в контейнер или BLOB-объект, зашифрованный с помощью ключа, предоставленного по запросу.

Поэтому обязательно защитите ключ шифрования, предоставленный по запросу к хранилищу BLOB-объектов, поместив его в безопасное хранилище ключей, например Azure Key Vault. При попытке выполнить операцию записи для контейнера или BLOB-объекта без ключа шифрования, операция завершится ошибкой, а доступ к объекту будет потерян.

Поддерживаемые компоненты

На поддержку данной функции может повлиять включение протокола Data Lake Storage 2-го поколения, протокола сетевой файловой системы (NFS) 3.0 или протокола SFTP. Если вы включили любую из этих возможностей, см. Сведения о поддержке функций хранилища BLOB-объектов в учетных записях хранения Azure, чтобы оценить поддержку данной функции.

Следующие шаги