Поделиться через


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

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

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

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

Важные аспекты при переключении защиты TDE

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

Примечание.

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

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

Внимание

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

Предварительные условия

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

Совет

Рекомендуется, но необязательно. Сначала создайте ключевой материал для защиты 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 см. статью Обновление существующей базы данных Azure SQL с ключами, управляемыми клиентом.

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

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

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

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

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

  3. Отметьте флажок Автоповорот экрана.

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

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

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

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

  7. Уберите отметку Сделать этот ключ защитником TDE по умолчанию.

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

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

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

Примечание.

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

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

Можно настроить первичные и вторичные серверы, используя другой ключ в хранилище ключей, при настройке 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 с управляемого Microsoft в режим BYOK:

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