прозрачное шифрование данных for Azure Synapse Analytics

Tip

Microsoft Fabric Data Warehouse — это реляционное хранилище корпоративного масштаба на основе озера данных, с архитектурой, готовой к будущему, встроенным ИИ и новыми функциями. Если вы не знакомы с хранилищем данных, начните с Fabric Data Warehouse. Существующие рабочие нагрузки выделенных пулов SQL могут быть обновлены до Fabric для доступа к новым возможностям в области науки о данных, аналитики в реальном времени и создания отчётов.

Применимо к: Выделенные SQL-пулы Azure Synapse Analytics (ранее — "SQL Data Warehouse")

прозрачное шифрование данных (TDE) защищает выделенный SQL-пул от вредоносной офлайн-активности, шифруя файлы базы данных, журналы транзакций и резервные копии в состоянии покоя. Шифрование и расшифровка происходят в реальном времени и не требуют изменений в приложениях.

Необходимо вручную включить TDE для отдельного выделенного SQL-пула Azure Synapse Analytics.

Функция TDE выполняет шифрование и расшифровку ввода-вывода данных в реальном времени на уровне страницы. Каждая страница расшифровывается при считывании в память, а затем снова шифруется перед записью на диск. TDE шифрует пространство хранения всей базы данных, используя симметричный ключ, который называется ключом шифрования базы данных. При запуске базы данных зашифрованный ключ DEK расшифровывается, а затем используется для расшифровки и повторного шифрования файлов базы данных в процессе SQL Server. Протектор TDE защищает DEK. Защитник TDE является либо сертификатом, управляемым сервисом (прозрачное шифрование данных, управляемое сервисом).

Для Azure Synapse вы устанавливаете TDE протектор на уровне сервера, и все базы, связанные с этим сервером, наследуют его.

Note

В этой статье рассматриваются отдельные выделенные SQL-пулы (ранее SQL DW), размещённые на логическом сервере. Для выделенных SQL-пулов в рабочем пространстве Synapse см. раздел «Шифрование для рабочих областей Azure Synapse Analytics».

Как работает TDE

TDE шифрует страницы базы данных с помощью симметричного ключа шифрования базы данных (DEK). DEK хранится в загрузочной записи базы данных, и средство защиты TDE защищает его. Защитник — это сертификат, управляемый сервисом.

Вы настраиваете TDE-протектор на логическом сервере, и выделенные SQL-пулы на этом сервере наследуют его. Каждая страница расшифровывается при чтении в память и шифруется перед записью в хранилище.

TDE, управляемое службой

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

TDE под управлением клиента

В клиентском управляемом TDE протектор — это асимметричный ключ, которым вы управляете в Azure Key Vault или Azure Key Vault Managed HSM. Вы управляете созданием ключей, правами доступа, ротацией, резервным копированием и удалением. Ключ не покидает хранилище ключей.

Отзыв доступа логического сервера к ключу делает зашифрованные выделенные SQL-пулы недоступными. Защитите хранилище ключей с помощью soft delete, purge protection, мониторинга и доступа с наименьшими привилегиями.

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

Для получения требований и рекомендаций см. Customer-managed TDE for Azure Synapse Analytics.

Переместить базу данных, защищённую прозрачное шифрование данных

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

  • Восстановление геоданных
  • восстановление на определенный момент времени через интерфейс самообслуживания;
  • восстановление удаленной базы данных;
  • Активная георепликация
  • создание копии базы данных.

При экспорте защищенной TDE базы данных в BACPAC-файл экспортируемое содержимое базы данных не шифруется. При импорте в пустую базу данных шифрование зависит от того, включен ли TDE в этой базе данных.

Настроить прозрачное шифрование данных

Azure portal

Чтобы включить или отключить TDE, откройте выделенный SQL-пул в портале Azure, выберите Прозрачное шифрование данных и сохраните необходимое состояние. Чтобы настроить средство защиты, управляемое клиентом, откройте прозрачное шифрование данных на логическом сервере и выберите ключ из Azure Key Vault. Найдите параметры TDE для своей пользовательской базы данных. По умолчанию используется ключ шифрования уровня сервера. Для сервера, который содержит базу данных, автоматически создается сертификат TDE.

PowerShell

Управление TDE с помощью PowerShell.

Important

Модуль Az заменяет AzureRM. Все будущие разработки предназначены для модуля Az.Sql.

Для настройки TDE с помощью PowerShell нужно подключиться в качестве владельца Azure, участника или диспетчера безопасности SQL.

Используйте следующие командлеты Az.Sql:

Командлет Purpose
Set-AzSqlDatabaseTransparentDataEncryption Включите или отключите TDE для выделенного SQL-пула.
Get-AzSqlDatabaseTransparentDataEncryption Получите текущее состояние TDE.
Add-AzSqlServerKeyVaultKey Добавьте ключ к логическому серверу.
Get-AzSqlServerKeyVaultKey Выведите список ключей, доступных логическому серверу.
Set-AzSqlServerTransparentDataEncryptionProtector Установите средство защиты TDE сервера.
Get-AzSqlServerTransparentDataEncryptionProtector Получите текущий защитник TDE.
Remove-AzSqlServerKeyVaultKey Удалите ключ у логического сервера.

Transact-SQL

Управление TDE с помощью Transact-SQL.

Подключитесь к базе данных с помощью имени входа, являющегося администратором или членом роли dbmanager в master базе данных.

Command Description
ALTER DATABASE (база данных Azure SQL) SET ENCRYPTION ON/OFF Шифрует или расшифровывает базу данных
sys.dm_database_encryption_keys Возврат сведений о состоянии шифрования для базы данных и связанных с ней ключей шифрования
sys.dm_pdw_nodes_database_encryption_keys Возвращает информацию о состоянии шифрования каждого узла Azure Synapse и о связанных ключах шифрования базы данных.

Нельзя переключить TDE-протектор на ключ из Azure Key Vault, используя Transact-SQL. Используйте для этого портал Azure или PowerShell.

REST API

Следующие ресурсы управления SQL применяются к логическому серверу и выделенному SQL-пулу.

Чтобы настроить TDE с помощью REST API, нужно подключиться в качестве владельца Azure, участника или диспетчера безопасности SQL.

Используйте следующий набор команд для автономных выделенных SQL-пулов Azure Synapse Analytics:

Command Description
Создание или обновление сервера Добавляет идентификатор из Microsoft Entra ID (ранее Azure Active Directory) на сервер. (используется для предоставления доступа к Azure Key Vault)
Создание или обновление ключа сервера Добавляет ключ Azure Key Vault на сервер.
Удаление ключа сервера Удаляет ключ Azure Key Vault с сервера.
Получение ключей сервера Возвращает определенный ключ Azure Key Vault с сервера.
Список ключей серверов, упорядоченный по серверам Возвращает ключи хранилища ключей Azure для сервера.
Создание или обновление предохранителя шифрования Задает средство защиты TDE для сервера.
Получить средство защиты шифрования Получает средство защиты TDE для сервера.
Список предохранителей шифрования, упорядоченный по серверам Получает средства защиты TDE для сервера.
Создание или обновление конфигурации прозрачного шифрования данных (TDE) Включает или отключает прозрачное шифрование данных (TDE) для базы данных.
Получение конфигурации прозрачного шифрования данных Получает конфигурацию прозрачного шифрования данных для базы данных.
Перечень результатов конфигурации прозрачное шифрование данных Получает результат шифрования для базы данных.