Предоставление ключа шифрования по запросу к хранилищу 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-объектов поддерживают отправку предоставленных клиентом ключей шифрования по запросу:
- вставка большого двоичного объекта;
- Put Block List (Вставка списка блокировки)
- Put Block
- Вставка блока из URL-адреса
- Put Page
- Put Page from URL (размещение страницы по URL-адресу);
- Append Block
- задание свойств службы BLOB-объекта.
- Set Blob Metadata
- Получение BLOB-объекта
- Получение свойств большого двоичного объекта
- Получение метаданных BLOB-объекта
- Создание моментального снимка BLOB-объекта
Смена ключей, предоставленных клиентом
Для смены ключа шифрования, который использовался для шифрования BLOB-объекта, скачайте BLOB-объект, а затем повторно загрузите его с новым ключом шифрования.
Важно!
Портал Azure не может быть использован для чтения или записи в контейнер или BLOB-объект, зашифрованный с помощью ключа, предоставленного по запросу.
Поэтому обязательно защитите ключ шифрования, предоставленный по запросу к хранилищу BLOB-объектов, поместив его в безопасное хранилище ключей, например Azure Key Vault. При попытке выполнить операцию записи для контейнера или BLOB-объекта без ключа шифрования, операция завершится ошибкой, а доступ к объекту будет потерян.
Поддерживаемые компоненты
На поддержку данной функции может повлиять включение протокола Data Lake Storage 2-го поколения, протокола сетевой файловой системы (NFS) 3.0 или протокола SFTP. Если вы включили любую из этих возможностей, см. Сведения о поддержке функций хранилища BLOB-объектов в учетных записях хранения Azure, чтобы оценить поддержку данной функции.