Настройка георепликации и восстановления резервных копий для прозрачного шифрования данных с помощью ключей, управляемых клиентом на уровне базы данных
CMK уровня базы данных доступен для База данных SQL Azure (все выпуски База данных SQL). Он недоступен для Управляемый экземпляр SQL Azure, локальной среды SQL Server, виртуальных машин Azure и Azure Synapse Analytics (выделенных пулов SQL (ранее — хранилище данных SQL)).
В этом руководстве мы рассмотрим действия по настройке георепликации и резервного копирования на База данных SQL Azure. База данных SQL Azure настраивается с прозрачным шифрованием данных (TDE) и ключами, управляемыми клиентом (CMK) на уровне базы данных, используя управляемое удостоверение, назначаемое пользователем, для доступа к Azure Key Vault. Azure Key Vault и логический сервер для SQL Azure находятся в одном клиенте Microsoft Entra для этого руководства, но они могут находиться в разных клиентах.
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Это же руководство можно применить к настройке ключей, управляемых клиентом на уровне базы данных, в другом клиенте, включая параметр федеративного идентификатора клиента. Дополнительные сведения см. в разделе "Управление удостоверениями и ключами для TDE" с ключами, управляемыми клиентом на уровне базы данных.
Внимание
После создания или восстановления базы данных меню прозрачное шифрование данных в портал Azure отобразит новую базу данных с теми же параметрами, что и исходная база данных, но может содержать отсутствующие ключи. Во всех случаях, когда новая база данных создается из исходной базы данных, количество ключей, отображаемых для целевой базы данных в списке дополнительных ключей базы данных портал Azure, может быть меньше количества ключей, отображаемых для исходной базы данных. Это связано с тем, что количество отображаемых ключей зависит от отдельных требований к функциям, используемым для создания целевой базы данных. Чтобы получить список всех ключей, доступных для новой базы данных, используйте доступные API в представлении параметров ключа, управляемого клиентом на уровне базы данных, в База данных SQL Azure.
Создание База данных SQL Azure с ключами, управляемыми клиентом на уровне базы данных, в качестве дополнительного или копирования
Используйте следующие инструкции или команды, чтобы создать вторичную реплику или скопировать целевой объект База данных SQL Azure, настроенный с помощью ключей, управляемых клиентом. Управляемое удостоверение, назначаемое пользователем, требуется для настройки управляемого клиентом ключа для прозрачного шифрования данных на этапе создания базы данных.
Создание копии базы данных с ключами, управляемыми клиентом на уровне базы данных
Чтобы создать базу данных в База данных SQL Azure как копию с ключами, управляемыми клиентом на уровне базы данных, выполните следующие действия.
Перейдите к портал Azure и перейдите к База данных SQL Azure, настроенной с помощью ключей, управляемых клиентом на уровне базы данных. Перейдите на вкладку прозрачное шифрование данных меню "Шифрование данных" и проверьте список текущих ключей, используемых базой данных.
Создайте копию базы данных, выбрав "Копировать " в меню "Обзор " базы данных.
Откроется меню "Создать База данных SQL— копирование базы данных". Используйте другой сервер для этой базы данных, но те же параметры, что и для базы данных, которую вы пытаетесь скопировать. В разделе управления ключами прозрачное шифрование данных выберите "Настроить прозрачное шифрование данных".
Когда появится меню прозрачное шифрование данных, просмотрите параметры CMK для этой базы данных копирования. Параметры и ключи должны быть заполнены одинаковыми удостоверениями и ключами, используемыми в исходной базе данных.
Нажмите кнопку "Применить", чтобы продолжить, а затем нажмите кнопку "Проверить и создать", чтобы создать базу данных копирования.
Создание вторичной реплики с ключами, управляемыми клиентом на уровне базы данных
Перейдите к портал Azure и перейдите к База данных SQL Azure, настроенной с помощью ключей, управляемых клиентом на уровне базы данных. Откройте меню прозрачное шифрование данных и проверьте список текущих ключей, используемых базой данных.
В разделе "Параметры управления данными" для базы данных выберите "Реплики". Выберите "Создать реплику", чтобы создать вторичную реплику базы данных.
Откроется меню "Создание База данных SQL — геореплика". Используйте сервер-получатель для этой базы данных, но те же параметры, что и база данных, которую вы пытаетесь реплицировать. В разделе управления ключами прозрачное шифрование данных выберите "Настроить прозрачное шифрование данных".
Когда появится меню прозрачное шифрование данных, просмотрите параметры CMK для этой реплики базы данных. Параметры и ключи должны быть заполнены одинаковыми удостоверениями и ключами, используемыми в базе данных-источнике.
Нажмите кнопку "Применить", чтобы продолжить, а затем нажмите кнопку "Проверить и создать", чтобы создать базу данных копирования.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
Предварительно заполняет список текущих ключей, используемых базой данных-источником expand-keys , с помощью параметра в current качестве keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
Выберите управляемое удостоверение, назначаемое пользователем (и федеративный идентификатор клиента при настройке доступа между клиентами).
Создайте базу данных в качестве вторичной базы данных и предоставьте предварительно заполненный список ключей, полученных из исходной базы данных и указанного выше удостоверения (и федеративного идентификатора клиента при настройке межтенантного доступа).
# Create a secondary replica with Active Geo Replication with the same name as the primary database
az sql db replica create -g $resourceGroup -s $serverName -n $databaseName --partner-server $secondaryServer --partner-database $secondaryDatabase --partner-resource-group $secondaryResourceGroup -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Внимание
$keys — это разделенный пробелами список ключей, полученных из исходной базы данных.
Чтобы создать копию базы данных, az sql db copy можно использовать с теми же параметрами.
# Create a copy of a database configured with database level customer-managed keys
az sql db copy -g $resourceGroup -s $serverName -n $databaseName --dest-name $secondaryDatabase -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Предварительно заполните список текущих ключей, используемых базой данных-источником, с помощью команды Get-AzSqlDatabase и -ExpandKeyList-KeysFilter "current" параметров. Исключите, -KeysFilter если вы хотите получить все ключи.
Ниже приведен пример шаблона ARM, который создает вторичную реплику и копию База данных SQL Azure, настроенную с помощью управляемого удостоверения, назначаемого пользователем, и управляемого клиентом TDE на уровне базы данных.
Используйте инструкции из разделов о пользовательском развертывании на портале Azure и создании собственного шаблона с помощью редактора. Затем необходимо сохранить конфигурацию после того, как вставлен пример.
Предварительно заполните список текущих ключей, используемых базой данных-источником, с помощью следующего запроса REST API:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Выберите управляемое удостоверение, назначаемое пользователем (и федеративный идентификатор клиента при настройке доступа между клиентами).
Создайте базу данных в качестве вторичной базы данных и предоставьте предварительно заполненный список ключей, полученных из исходной базы данных, и указанное выше удостоверение (и федеративный идентификатор клиента при настройке межтенантного доступа) в шаблоне ARM в качестве keys_to_add параметра.
Восстановление База данных SQL Azure с помощью ключей, управляемых клиентом на уровне базы данных
В этом разделе описаны действия по восстановлению База данных SQL Azure, настроенной с помощью ключей, управляемых клиентом на уровне базы данных. Управляемое удостоверение, назначаемое пользователем, требуется для настройки управляемого клиентом ключа для прозрачного шифрования данных на этапе создания базы данных.
Восстановление до точки во времени
В следующем разделе описывается, как восстановить базу данных, настроенную с помощью ключей, управляемых клиентом, на уровне базы данных до заданной точки во времени. Дополнительные сведения о восстановлении резервной копии для Базы данных SQL см. в этой статье.
Чтобы восстановить базу данных до точки во времени, выберите "Восстановить " в меню "Обзор " базы данных.
Откроется меню "Создать База данных SQL — восстановление базы данных". Укажите необходимые сведения об источнике и базе данных. В разделе управления ключами прозрачное шифрование данных выберите "Настроить прозрачное шифрование данных".
Когда появится меню прозрачное шифрование данных, просмотрите параметры CMK для базы данных. Параметры и ключи должны заполняться одинаковыми удостоверениями и ключами, используемыми в базе данных, которую вы пытаетесь восстановить.
Нажмите кнопку "Применить", чтобы продолжить, а затем нажмите кнопку "Проверить и создать", чтобы создать базу данных копирования.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
Предварительно заполняйте список ключей, используемых базой данных-источником expand-keys , с помощью параметра с точкой восстановления в качестве keys-filterточки времени.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
Выберите управляемое удостоверение, назначаемое пользователем (и федеративный идентификатор клиента при настройке доступа между клиентами).
Создайте базу данных в качестве целевого объекта восстановления и предоставьте предварительно заполненный список ключей, полученных из исходной базы данных и указанного выше удостоверения (и федеративного идентификатора клиента при настройке межтенантного доступа).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Внимание
$keys — это разделенный пробелами список ключей, полученных из исходной базы данных.
Предварительно заполняйте список ключей, используемых базой данных-источником, с помощью команды Get-AzSqlDatabase и -KeysFilter "2023-01-01"-ExpandKeyList параметров (2023-01-01это пример точки во времени, в которую требуется восстановить базу данных). Исключите, -KeysFilter если вы хотите получить все ключи.
Выберите управляемое удостоверение, назначаемое пользователем (и федеративный идентификатор клиента при настройке доступа между клиентами).
Используйте команду Restore-AzSqlDatabase с -FromPointInTimeBackup параметром и предоставьте предварительно заполненный список ключей, полученных из описанных выше шагов, и указанное выше удостоверение (и федеративный идентификатор клиента при настройке межтенантного доступа) в вызове API с помощью -KeyListпараметров , -AssignIdentity( -UserAssignedIdentityId-EncryptionProtector и при необходимости-FederatedClientId).
В следующем разделе описывается восстановление удаленной базы данных, настроенной с помощью ключей, управляемых клиентом на уровне базы данных. Дополнительные сведения о восстановлении резервной копии для Базы данных SQL см. в этой статье.
Перейдите к портал Azure и перейдите к логическому серверу для удаленной базы данных, которую требуется восстановить. В разделе "Управление данными" выберите "Удаленные базы данных".
Выберите удаленную базу данных, которую хотите восстановить.
Откроется меню "Создать База данных SQL — восстановление базы данных". Укажите необходимые сведения об источнике и базе данных. В разделе управления ключами прозрачное шифрование данных выберите "Настроить прозрачное шифрование данных".
При появлении меню прозрачное шифрование данных настройте управляемое удостоверение, управляемое клиентом и дополнительные ключи базы данных для базы данных.
Нажмите кнопку "Применить", чтобы продолжить, а затем нажмите кнопку "Проверить и создать", чтобы создать базу данных копирования.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
Предварительно заполните список ключей, используемых удаленной базой данных, с помощью expand-keys параметра. Рекомендуется передать все ключи, которые использовала исходная база данных. Вы также можете попытаться восстановить ключи, предоставленные во время удаления, с помощью keys-filter параметра.
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
Внимание
restorable-dropped-database-id можно получить путем перечисления всех восстанавливаемых баз данных на сервере и формата databaseName,deletedTimestamp.
Выберите управляемое удостоверение, назначаемое пользователем (и федеративный идентификатор клиента при настройке доступа между клиентами).
Создайте базу данных в качестве целевого объекта восстановления и предоставьте предварительно заполненный список ключей, полученных из удаленной исходной базы данных и указанного выше удостоверения (и федеративного идентификатора клиента при настройке доступа между клиентами).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys --deleted-time "2023-02-06T11:02:46.160000+00:00"
Внимание
$keys — это разделенный пробелом список ключей, извлеченных из исходной базы данных.
Предварительно заполните список ключей, используемых базой данных-источником, с помощью команды Get-AzSqlDeletedDatabaseBackup и -ExpandKeyList параметра. Рекомендуется передать все ключи, которые использовала исходная база данных. Вы также можете попытаться восстановить ключи, предоставленные во время удаления, с помощью -KeysFilter параметра.
DatabaseId можно получить путем перечисления всех восстанавливаемых баз данных на сервере и формата databaseName,deletedTimestamp.
Выберите управляемое удостоверение, назначаемое пользователем (и федеративный идентификатор клиента при настройке доступа между клиентами).
Используйте команду Restore-AzSqlDatabase с -FromDeletedDatabaseBackup параметром и предоставьте предварительно заполненный список ключей, полученных из описанных выше шагов, и указанное выше удостоверение (и федеративный идентификатор клиента при настройке межтенантного доступа) в вызове API с помощью -KeyListпараметров , -AssignIdentity( -UserAssignedIdentityId-EncryptionProtector и при необходимости-FederatedClientId).
В следующем разделе описывается восстановление геореплицированной резервной копии базы данных, настроенной с помощью ключей, управляемых клиентом на уровне базы данных. Дополнительные сведения о восстановлении резервной копии для Базы данных SQL см. в этой статье.
Перейдите к портал Azure и перейдите к логическому серверу, где требуется восстановить базу данных.
В меню "Обзор" выберите "Создать базу данных".
Откроется меню "Создать База данных SQL". Заполните вкладки "Базовый" и "Сеть" для новой базы данных. В разделе "Дополнительные параметры" выберите "Резервное копирование для использования существующего раздела данных " и выберите геореплицированную резервную копию.
Перейдите на вкладку "Безопасность". В разделе прозрачное шифрование данных "Управление ключами" выберите "Настроить прозрачное шифрование данных".
Когда появится меню прозрачное шифрование данных, выберите "Управляемый клиентом" ключ уровня базы данных (CMK). Назначаемое пользователем управляемое удостоверение, управляемый клиентом ключ и дополнительные ключи базы данных должны соответствовать исходной базе данных, которую требуется восстановить. Убедитесь, что управляемое удостоверение, назначаемое пользователем, имеет доступ к хранилищу ключей, содержащего управляемый клиентом ключ, который использовался в резервной копии.
Нажмите кнопку "Применить", чтобы продолжить, а затем нажмите кнопку "Проверить и создать", чтобы создать базу данных резервной копии.
Сведения об установке текущего выпуска Azure CLI см. в статье Установка Azure CLI.
Предварительно заполняйте список ключей, используемых геозаписной копией базы данных, настроенной с ключами, управляемыми клиентом, на уровне базы данных с помощью expand-keys параметра.
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
Выберите управляемое удостоверение, назначаемое пользователем (и федеративный идентификатор клиента при настройке доступа между клиентами).
Создайте базу данных в качестве целевого объекта геовосстановления и предоставьте предварительно заполненный список ключей, полученных из удаленной исходной базы данных и указанного выше удостоверения (и федеративного идентификатора клиента при настройке доступа между клиентами).
# Create a geo restored database
az sql db geo-backup restore --geo-backup-id "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" --dest-database $destName --resource-group $resourceGroup --dest-server $destServerName -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Внимание
$keys — это разделенный пробелом список ключей, извлеченных из исходной базы данных.
Предварительно заполните список ключей, используемых базой данных-источником, с помощью команды Get-AzSqlDatabaseGeoBackup и -ExpandKeyList извлечения всех ключей.
DatabaseId можно получить путем перечисления всех восстанавливаемых баз данных на сервере и формата databaseName,deletedTimestamp.
Выберите управляемое удостоверение, назначаемое пользователем (и федеративный идентификатор клиента при настройке доступа между клиентами).
Используйте команду Restore-AzSqlDatabase с -FromGeoBackup параметром и предоставьте предварительно заполненный список ключей, полученных из описанных выше шагов, и указанное выше удостоверение (и федеративный идентификатор клиента при настройке межтенантного доступа) в вызове API с помощью -KeyListпараметров , -AssignIdentity( -UserAssignedIdentityId-EncryptionProtector и при необходимости-FederatedClientId).
Резервные копии долгосрочного хранения (LTR) не предоставляют список ключей, используемых резервной копией. Чтобы восстановить резервную копию LTR, все ключи, используемые исходной базой данных, должны быть переданы целевому объекту восстановления LTR.
Параметр автоматического поворота ключей для скопированных или восстановленных баз данных
Недавно скопированные или восстановленные базы данных можно настроить для автоматического смены ключа, управляемого клиентом, используемого для прозрачного шифрования данных. Сведения о том, как включить автоматическую смену ключей в портал Azure или с помощью API, см. в статье "Автоматическая смена ключей" на уровне базы данных.
Следующие шаги
Ознакомьтесь со следующей документацией по различным операциям CMK на уровне базы данных: