Шифрование службы хранилища Azure для неактивных данных

Служба хранилища Azure использует функцию шифрования на стороне службы (SSE) для автоматического шифрования данных при их сохранении в облаке. Шифрование службы хранилища Azure защищает данные и помогает соблюсти корпоративные требования к обеспечению безопасности и соответствия.

Корпорация Майкрософт рекомендует использовать функцию шифрования на стороне службы для защиты данных в большинстве сценариев. Но клиентские библиотеки Службы хранилища Azure для Хранилища BLOB-объектов и Хранилища очередей также обеспечивают шифрование на стороне клиента. Дополнительные сведения см. в разделе Шифрование на стороне клиента для BLOB-объектов и очередей.

Сведения о шифровании на стороне службы в Службе хранилища Azure

Шифрование и расшифровка данных в службе хранилища Microsoft Azure выполняются открытым образом с использованием 256-разрядного алгоритма AES, который является одним из наиболее надежных блочных шифров и совместим со стандартом FIPS 140-2. Процедура шифрования в Службе хранилища Microsoft Azure выполняется аналогично процедуре шифрования BitLocker в Windows.

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

Данные в учетной записи хранения шифруются независимо от уровня производительности ("Стандартный" или "Премиум"), уровня доступа ("горячего" или "холодного") или модели развертывания (Azure Resource Manager или классической версии). Все большие двоичные объекты на архивном уровне также шифруются. Все функции избыточности службы хранилища Azure поддерживают шифрование, и при включенной георепликации шифруются все данные в основном и дополнительном регионах. Шифруются все ресурсы службы хранилища Azure, включая большие двоичные объекты, диски, файлы, очереди и таблицы. Также шифруются все метаданные объектов. Какие-либо дополнительные затраты на шифрование службы хранилища Azure отсутствуют.

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

Дополнительные сведения о криптографических модулях, лежащих в основе функции шифрования службы хранилища Azure, см. в статье API шифрования: следующее поколение.

Сведения о шифровании и управлении ключами для управляемых дисков Azure см. в статье Шифрование управляемых дисков Azure на стороне сервера.

Об управлении ключами шифрования

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

  • Вы можете указать ключ, управляемый клиентом, который будет использоваться для шифрования и расшифровки данных в хранилище BLOB-объектов и в Файлы Azure. 1,2 Ключи, управляемые клиентом, должны храниться в Azure Key Vault или azure Key Vault управляемой аппаратной модели безопасности (HSM). Дополнительные сведения о ключах, управляемых клиентом, см. в статье Использование ключей, управляемых клиентом, для шифрования службы хранилища Azure.
  • Вы можете выбрать ключ, представляемый клиентом, для операций с Хранилищем BLOB-объектов. Клиент, выполняющий запрос на чтение или запись к Хранилищу BLOB-объектов, может включать в запрос свой ключ шифрования, чтобы детально контролировать способ шифрования и расшифровки данных BLOB-объектов. Дополнительные сведения о ключах, представляемых клиентом, см. в статье Предоставление ключа шифрования по запросу к Хранилищу BLOB-объектов.

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

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

Параметр управления ключами Ключи, управляемые Майкрософт Ключи, управляемые клиентом Ключи, представляемые клиентом
Операции шифрования и расшифровки Azure Azure Azure
Поддерживаемые службы хранилища Azure Все Хранилище BLOB-объектов, Файлы Azure1,2 Хранилище BLOB-объектов
Хранилище ключей Хранилище ключей Майкрософт Azure Key Vault или HSM в Key Vault Собственное хранилище ключей клиента
Ответственность за смену ключей Microsoft Customer Customer
Управление ключами Microsoft Customer Customer
Область ключа Учетная запись (по умолчанию), контейнер или BLOB-объект Учетная запись (по умолчанию), контейнер или BLOB-объект Недоступно

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

Примечание

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

Двойное шифрование данных с помощью шифрования инфраструктуры

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

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

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

Шифрование на стороне клиента для BLOB-объектов и очередей

Клиентские библиотеки Хранилища BLOB-объектов Azure для .NET, Java и Python поддерживают шифрование данных в клиентских приложениях перед отправкой в Службу хранилища Azure и их расшифровку во время скачивания клиентом. Клиентские библиотеки Хранилища очередей для .NET и Python также поддерживают шифрование на стороне клиента.

Примечание

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

Клиентские библиотеки Хранилища BLOB-объектов и Хранилища очередей для шифрования пользовательских данных используют AES. В клиентских библиотеках доступны две версии шифрования на стороне клиента:

  • В версии 2 используется режим счетчика с аутентификацией Галуа (GCM) с AES. Пакеты SDK Хранилища BLOB-объектов и Хранилища очередей поддерживают шифрование на стороне клиента с помощью версии 2.
  • В версии 1 используется режим цепочки цифровых блоков (CBC) с AES. Пакеты SDK Хранилища BLOB-объектов, Хранилища очередей и Хранилища таблиц поддерживают шифрование на стороне клиента с помощью версии 1.

Предупреждение

Использование функции шифрования на стороне клиента версии 1 больше не рекомендуется из-за уязвимости системы безопасности в реализации клиентской библиотеки режима CBC. Дополнительные сведения об этой уязвимости системы безопасности приведены в статье Обновление функции шифрования на стороне клиента в пакете SDK Службы хранилища Azure для устранения уязвимости системы безопасности. Если сейчас вы используете версию 1, рекомендуем обновить приложение для использования шифрования на стороне клиента версии 2 и перенести данные.

Пакет SDK Хранилища таблиц Azure поддерживает только шифрование на стороне клиента версии 1. Использовать функцию шифрования на стороне клиента с Хранилищем таблиц не рекомендуется.

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

Клиентская библиотека Поддерживаемая версия шифрования на стороне клиента Рекомендуемая миграция Дополнительные рекомендации
Клиентские библиотеки Хранилища BLOB-объектов для .NET (версия 12.13.0 и более поздние версии), Java (версия 12.18.0 и более поздние версии) и Python (версия 12.13.0 и более поздние версии) 2,0

1.0 (только для обратной совместимости)
Обновите код для использования функции шифрования на стороне клиента версии 2.

Скачайте зашифрованные данные для расшифровки, а затем повторно зашифруйте их с помощью функции шифрования на стороне клиента версии 2.
Шифрование на стороне клиента для BLOB-объектов
Клиентская библиотека хранилища BLOB-объектов для .NET (версия 12.12.0 и ниже), Java (версия 12.17.0 и ниже) и Python (версия 12.12.0 и ниже) 1.0 (не рекомендуется) Обновите приложение для использования версии пакета SDK Хранилища BLOB-объектов, которая поддерживает шифрование на стороне клиента версии 2. Подробные сведения см. в разделе Таблица поддержки пакета SDK для шифрования на стороне клиента.

Обновите код для использования функции шифрования на стороне клиента версии 2.

Скачайте зашифрованные данные для расшифровки, а затем повторно зашифруйте их с помощью функции шифрования на стороне клиента версии 2.
Шифрование на стороне клиента для BLOB-объектов
Клиентская библиотека Хранилища очередей для .NET (версия 12.11.0 и выше) и Python (версия 12.4 и выше) 2,0

1.0 (только для обратной совместимости)
Обновите код для использования функции шифрования на стороне клиента версии 2. Шифрование на стороне клиента для очередей
Клиентская библиотека Хранилища очередей для .NET (версия 12.10.0 и ниже) и Python (версия 12.3.0 и ниже) 1.0 (не рекомендуется) Обновите приложение для использования версии пакета SDK Хранилища очередей, которая поддерживает шифрование на стороне клиента версии 2. См. раздел Таблица поддержки пакета SDK для шифрования на стороне клиента.

Обновите код для использования функции шифрования на стороне клиента версии 2.
Шифрование на стороне клиента для очередей
Клиентская библиотека Хранилища таблиц для .NET, Java и Python 1.0 (не рекомендуется) Недоступно. Недоступно

Дальнейшие действия