Реализация прозрачного шифрования данных

Завершено

Прозрачное шифрование данных (TDE) помогает защитить Базу данных SQL Azure, Управляемый экземпляр Azure SQL и Synapse SQL в Azure Synapse Analytics от угрозы автономной вредоносной деятельности путем шифрования неактивных данных. Выполняется шифрование и расшифровка базы данных, связанных резервных копий и неактивных файлов журналов транзакций в реальном времени без необходимости изменения приложения. По умолчанию TDE включается для всех вновь развернутых баз данных Azure SQL, а для старых баз данных в Базе данных SQL Azure, Управляемом экземпляре Azure SQL или Azure Synapse его необходимо включить вручную.

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

Для Базы данных SQL Azure и Azure Synapse средство защиты TDE настраивается на уровне логического сервера SQL и наследуется всеми базами данных, связанными с этим сервером. Для Управляемого экземпляра Azure SQL (возможность BYOK предоставляется в режиме предварительной версии) средство защиты TDE настраивается на уровне экземпляра и наследуется всеми зашифрованными базами данных на этом экземпляре. В этом документе термин сервер обозначает как сервер, так и экземпляр, если не указано иное.

По умолчанию все создаваемые базы данных SQL шифруются с помощью управляемого службой прозрачного шифрования данных. При шифровании источника базы данных целевые базы данных, созданные с помощью восстановления, георепликации и копирования базы данных, шифруются по умолчанию. Однако, если источник базы данных не зашифрован, целевые базы данных, созданные с помощью восстановления, георепликации и копирования базы данных по умолчанию не шифруются. Существующие базы данных SQL, созданные до мая 2017 г. и существующие базы данных Управляемый экземпляр SQL, созданные до февраля 2019 г., по умолчанию не шифруются. Базы данных SQL Управляемый экземпляр, созданные с помощью инструкции RESTORE, наследуют состояние шифрования от источника. Чтобы восстановить существующую базу данных, зашифрованную с помощью TDE, необходимо сначала импортировать требуемый сертификат TDE в Управляемый экземпляр SQL. Чтобы узнать состояние шифрования базы данных, выполните запрос выбора из sys.dm_database_encryption_keys dmV и проверьте состояние столбца encryption_state_desc .

TDE нельзя использовать для шифрования системных баз данных, таких как master база данных, в База данных SQL и Управляемый экземпляр SQL. База данных master содержит объекты, необходимые для выполнения операций TDE с пользовательскими базами данных. Рекомендуется не хранить конфиденциальные данные в системных базах данных. Исключением является tempdbто, что всегда шифруется с помощью TDE для защиты данных, хранящихся там.

Управляемое службой прозрачное шифрование данных

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

Корпорация Майкрософт гарантирует простое перемещение ключей и управление ими для георепликации и восстановления.

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

Управляемое клиентом TDE, которое также называется поддержкой создания собственных ключей (BYOK) для TDE. В этом сценарии средство защиты TDE, шифрующее DEK, является асимметричным ключом, управляемым клиентом, который хранится в принадлежащем клиенту и управляемом хранилище Azure Key Vault (облачной системе управления внешними ключами Azure) и никогда не покидает хранилище ключей. Средство защиты TDE может быть создано хранилищем ключей или передано в хранилище ключей из локального модуля HSM. База данных SQL должна иметь разрешения для хранилища ключей, принадлежащего клиенту, для шифрования и расшифрования DEK. Если будут отозваны права доступа логического сервера SQL к хранилищу ключей, база данных станет недоступна и все данные останутся зашифрованными.

Благодаря интеграции TDE с Azure Key Vault пользователи могут самостоятельно контролировать задачи управления ключами. В Azure Key Vault можно выполнять такие операции, как смена ключей, настройка разрешений для хранилища ключей, резервное копирование ключей, а также включать аудит и отчетность по всем предохранителям TDE. Key Vault поддерживает централизованное управление ключами, использует тщательно отслеживаемые аппаратные модули безопасности (HSM), а также позволяет разделять обязанности по управлению ключами и данными для обеспечения соответствия политикам безопасности.

Снимок экрана: форма конфигурации прозрачное шифрование данных.

Перемещение базы данных, защищенной прозрачным шифрованием данных

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

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

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

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

Например, когда BACPAC-файл экспортируется из экземпляра SQL Server, импортированное содержимое новой базы данных не шифруется автоматически. Когда BACPAC-файл импортируется в экземпляр SQL Server, новая база данных также не шифруется автоматически.

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

Управление прозрачным шифрованием данных

Управление TDE на портале Azure.

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

Включение и отключение TDE на уровне базы данных. Для управляемого экземпляра базы данных SQL Azure используйте Transact-SQL (T-SQL), чтобы включить и отключить прозрачное шифрование данных для базы данных. Для базы данных SQL Azure и Azure Synapse можно управлять TDE для базы данных в портале Azure после входа с помощью учетной записи администратора или участника Azure. Найдите параметры TDE для своей пользовательской базы данных. По умолчанию используется ключ шифрования уровня сервера. Для сервера, который содержит базу данных, автоматически создается сертификат TDE.

Снимок экрана: включение и отключение прозрачное шифрование данных на уровне базы данных.

Вы устанавливаете главный ключ TDE, известный как предохранитель TDE, на уровне сервера или экземпляра. Чтобы использовать TDE с поддержкой BYOK и защитить базы данных с помощью ключа из Azure Key Vault, откройте параметры TDE на сервере или управляемом экземпляре.

Снимок экрана: использование прозрачное шифрование данных с поддержкой собственных ключей.

Вы также можете использовать управляемый клиентом ключ для TDE на уровне базы данных для База данных SQL Azure.