Смена защиты прозрачного шифрования данных (TDE)

Применимо: База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics (только выделенные пулы SQL)

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

В этой статье рассматриваются автоматические и ручные методы для смены защиты TDE на сервере.

Важные аспекты при смене защиты TDE

  • При изменении или смене средства защиты TDE старые резервные копии базы данных, включая файлы журнала резервного копирования, не обновляются для использования последнего средства защиты TDE. Чтобы восстановить резервную копию, зашифрованную с помощью предохранителя TDE из Key Vault, необходимо убедиться, что данные ключа доступны на целевом сервере. Поэтому мы рекомендуем сохранять все старые версии предохранителей TDE в Azure Key Vault (AKV), чтобы иметь возможность восстановить резервные копии базы данных.
  • Даже при переходе с ключа, управляемого клиентом (CMK), на ключ, управляемый службой, следует сохранить все ранее использованные ключи в AKV. Это позволит восстановить резервные копии баз данных, включая резервные копии файлов журналов, созданные с предохранителями TDE из AKV.
  • Помимо старых резервных копий файлы журнала транзакций также могут требовать доступа к старому предохранителю TDE. Чтобы определить наличие оставшихся журналов, для которых по-прежнему требуется старый ключ, после смены ключей используйте динамическое административное представление sys.dm_db_log_info. Этот динамический административный административный представление возвращает сведения о файле виртуального журнала транзакций (VLF) журнала транзакций вместе с отпечатком ключа шифрования VLF.
  • Более старые ключи должны храниться в AKV и должны быть доступны для сервера в течение срока хранения резервной копии, настроенного в качестве политик хранения резервных копий в базе данных. Это позволяет гарантировать, что все резервные копии долгосрочного хранения (LTR) на сервере по-прежнему можно будет восстановить с помощью старых ключей.

Примечание.

Работу приостановленного выделенного пула SQL в Azure Synapse Analytics необходимо возобновить до смены ключа.

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

Внимание

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

Необходимые компоненты

Совет

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

Перейдите на портал Azure.

Автоматическая смена клавиш

Автоматическая смена защиты TDE может быть включена при настройке средства защиты TDE для сервера или базы данных из портал Azure или с помощью приведенных ниже команд PowerShell или Azure CLI. После включения сервер или база данных постоянно проверяет хранилище ключей для любых новых версий ключа, используемых в качестве средства защиты TDE. Если обнаружена новая версия ключа, средство защиты TDE на сервере или базе данных будет автоматически поворачиваться на последнюю версию ключа в течение 24 часов.

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

Примечание.

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

В случае использования портала Azure выполните следующие действия:

  1. Перейдите к разделу прозрачного шифрования данных для существующего сервера или управляемого экземпляра.
  2. Выберите параметр ключа, управляемый клиентом, и выберите хранилище ключей и ключ, которые будут использоваться в качестве средства защиты TDE.
  3. Установите флажок автоматического поворота ключа .
  4. Выберите Сохранить.

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

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

Автоматическая смена ключей также может быть включена на уровне базы данных для База данных SQL Azure. Это полезно, если требуется включить автоматическую смену ключей только для одного или подмножества баз данных на сервере. Дополнительные сведения см. в разделе "Управление удостоверениями и ключами для TDE" с ключами, управляемыми клиентом на уровне базы данных.

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

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

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

В случае использования портала Azure выполните следующие действия:

  1. Перейдите к разделу прозрачного шифрования данных для основного сервера.

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

  3. Установите флажок автоматического поворота ключа .

  4. Выберите Сохранить.

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

  5. Перейдите к разделу прозрачного шифрования данных для дополнительного сервера.

  6. Выберите параметр ключа, управляемый клиентом, и выберите хранилище ключей и ключ, которые будут использоваться в качестве средства защиты TDE. Используйте тот же ключ, что и для первичного сервера.

  7. Снимите флажок Сделать этот ключ защищенным по умолчанию TDE.

  8. Выберите Сохранить.

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

Когда ключ поворачивается на первичном сервере, он автоматически передается на дополнительный сервер.

Использование разных ключей для каждого сервера

Можно настроить первичные и вторичные серверы с другим ключом хранилища ключей при настройке TDE с помощью CMK в портал Azure. В портал Azure, что ключ, используемый для защиты первичного сервера, также является тем же ключом, который защищает базу данных-источник, которая была реплицирована на сервер-получатель. Однако для получения сведений о ключах, используемых на сервере, можно использовать PowerShell, Azure CLI или REST API. В этом примере показано, что автоматически вращаемые ключи передаются с первичного сервера на дополнительный сервер.

Ниже приведен пример использования команд PowerShell для проверки ключей, передаваемых с первичного сервера на дополнительный сервер после смены ключей.

  1. Выполните следующую команду на основном сервере, чтобы отобразить ключевые сведения сервера:

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  2. Должен отобразиться примерно такой результат:

    ResourceGroupName : <SQLDatabaseResourceGroupName> 
    ServerName        : <logicalServerName> 
    ServerKeyName     : <keyVaultKeyName> 
    Type              : AzureKeyVault 
    Uri               : https://<keyvaultname>.vault.azure.net/keys/<keyName>/<GUID> 
    Thumbprint        : <thumbprint> 
    CreationDate      : 12/13/2022 8:56:32 PM
    
  3. Выполните ту же Get-AzSqlServerKeyVaultKey команду на вторичном сервере:

    Get-AzSqlServerKeyVaultKey -ServerName <logicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> 
    
  4. Если сервер-получатель имеет средство защиты TDE по умолчанию, используя другой ключ, отличный от первичного сервера, вы увидите два (или более) ключа. Первый ключ является предохранителем TDE по умолчанию, а второй — ключом, используемым на сервере-источнике, используемым для защиты реплицированной базы данных.

  5. Когда ключ поворачивается на первичном сервере, он автоматически передается на дополнительный сервер. Если вы снова запустите Get-AzSqlServerKeyVaultKey сервер-источник, вы увидите два ключа. Первый ключ — это исходный ключ, а второй — текущий ключ, созданный в рамках смены ключа.

  6. Get-AzSqlServerKeyVaultKey При выполнении команды на сервере-получателе также должны отображаться те же ключи, которые присутствуют на основном сервере. Это подтверждает, что сменные ключи на основном сервере автоматически передаются на сервер-получатель и используются для защиты реплики базы данных.

Смена ключей вручную

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

При смене ключа вручную при создании новой версии ключа в хранилище ключей (вручную или с помощью политики автоматического поворота ключей в хранилище ключей) то же самое необходимо задать вручную в качестве предохранителя TDE на сервере.

Примечание.

Общая длина имени хранилища ключей и имени ключа не может превышать 94 символа.

На портале Azure:

  1. Перейдите в меню прозрачного шифрования данных для существующего сервера или управляемого экземпляра.
  2. Выберите параметр ключа, управляемый клиентом, и выберите хранилище ключей и ключ, которые будут использоваться в качестве нового средства защиты TDE.
  3. Выберите Сохранить.

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

Переключение режима предохранителя TDE

С помощью портал Azure для переключения защиты TDE с управляемого Корпорацией Майкрософт режима BYOK:

  1. Перейдите в меню прозрачного шифрования данных для существующего сервера или управляемого экземпляра.
  2. Выберите параметр ключа, управляемого клиентом.
  3. Выберите хранилище ключей и ключ, которые будут использоваться в качестве средства защиты TDE.
  4. Выберите Сохранить.