Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо:База данных SQL Azure Управляемый экземпляр SQL Azure
Azure Synapse Analytics (только выделенные пулы SQL)
В этой статье описывается, как реагировать на потенциально скомпрометированную защиту TDE для База данных SQL Azure или Azure Synapse Analytics, которая использует TDE с ключами, управляемыми клиентом, в Azure Key Vault — поддержка создания собственного ключа (BYOK). См. дополнительные сведения о поддержке BYOK для TDE.
Внимание
Процедуры, описанные в этой статье, следует выполнять только в критических случаях или в тестовых средах. Внимательно изучите шаги, так как удаление предохранителей TDE из Azure Key Vault приведет к тому, что база данных станет недоступна.
Если возникнут любые подозрения о компрометации ключа, например путем несанкционированного доступа пользователей и (или) служб к этому ключу, его следует удалить.
Помните, что после удаления предохранителя TDE в Azure Key Vault до 10 минут все зашифрованные базы данных начнут запрещать все подключения с соответствующим сообщением об ошибке и изменить состояние на недоступное.
В этом руководство рассматривается подход к тому, как сделать базу данных недоступной после реагирования на инцидент, связанный с компрометацией.
Примечание.
Информация в статье применима к Базе данных SQL Azure, Управляемому экземпляру SQL Azure и Azure Synapse Analytics (выделенные пулы SQL, ранее — хранилище данных SQL). Сведения о прозрачном шифровании данных для выделенных пулов SQL в рабочих областях Azure Synapse см. в статье Шифрование в Azure Synapse Analytics.
Необходимые компоненты
- Подписка Azure и права администратора для нее.
- У вас должна быть установлена и запущена среда Azure PowerShell.
- В этом практическом руководстве предполагается, что вы уже используете ключ из Azure Key Vault в качестве предохранителя TDE для базы данных SQL Azure или Azure Synapse. См. дополнительные сведения о прозрачном шифровании данных с поддержкой создания собственных ключей.
Инструкции по установке модуля Az см. в статье об установке Azure PowerShell. Используйте новый модуль Azure PowerShell Az.
Проверка отпечатков предохранителя TDE
В следующих шагах показано, как проверить, какие отпечатки предохранителя TDE все еще используются виртуальными файлами журнала (VLF) заданной базы данных. Отпечаток текущего предохранителя TDE базы данных и идентификатор базы данных можно найти, выполнив команду:
SELECT [database_id],
[encryption_state],
[encryptor_type], /*asymmetric key means Azure Key Vault, certificate means service-managed keys*/
[encryptor_thumbprint]
FROM [sys].[dm_database_encryption_keys]
Следующий запрос возвращает VLF и предохранители TDE, соответствующие используемым отпечаткам. Каждый уникальный отпечаток связан с уникальным ключом в Azure Key Vault.
SELECT * FROM sys.dm_db_log_info (database_id)
Кроме того, можно использовать PowerShell или Azure CLI.
Команда Get-AzSqlServerKeyVaultKey
PowerShell предоставляет отпечаток средства защиты TDE, используемого в запросе, чтобы увидеть, какие ключи следует хранить и какие ключи удалять в Azure Key Vault. Из Azure Key Vault можно безопасно удалить только те ключи, которые больше не используются базой данных.
Сохранение доступности зашифрованных ресурсов
Создайте новый ключ в Azure Key Vault. Убедитесь, что новый ключ успешно создан в другом хранилище. Нельзя использовать то же хранилище, где размещен скомпрометированный предохранитель TDE, так как управление доступом предоставляется на уровне хранилища.
Добавьте на сервер новый ключ с помощью командлетов Add-AzSqlServerKeyVaultKey и Set-AzSqlServerTransparentDataEncryptionProtector, а затем настройте его в качестве нового предохранителя TDE для этого сервера.
# add the key from Azure Key Vault to the server Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId> # set the key as the TDE protector for all resources under the server Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> ` -ServerName <LogicalServerName> -Type AzureKeyVault -KeyId <KeyVaultKeyId>
Убедитесь, что сервер и все реплики обновлены для использования нового предохранителя TDE с помощью командлета Get-AzSqlServerTransparentDataEncryptionProtector.
Примечание.
Для распространения нового предохранителя TDE на все базы данных и базы данных-получатели на сервере может потребоваться несколько минут.
Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Создайте резервную копию нового ключа в Azure Key Vault.
# -OutputFile parameter is optional; if removed, a file name is automatically generated. Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
Удалите скомпрометированный ключ из Azure Key Vault с помощью командлета Remove-AzKeyVaultKey .
Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
Чтобы восстановить ключ в Azure Key Vault в будущем, используйте командлет Restore-AzKeyVaultKey .
Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
Как сделать зашифрованные ресурсы доступными
Удалите все базы данных, которые зашифрованы с помощью потенциально скомпрометированного ключа.
Для файлов базы данных и журналов резервные копии создаются автоматически, поэтому вы всегда сможете восстановить базу данных на определенный момент времени, предоставив нужный ключ. Удаление баз данных перед удалением действующего предохранителя TDE нужно для того, чтобы предотвратить потерю данных из последних транзакций (до 10 минут).
Создайте резервную копию ключевого материала защиты TDE в Azure Key Vault.
Удалите потенциально скомпрометированный ключ из Azure Key Vault.
Примечание.
Чтобы изменения разрешений вступили в силу для хранилища ключей, может потребоваться около 10 минут. Сюда входит Отмена разрешений на доступ к предохранителю TDE в AKV, а пользователи в течение этого времени могут по-прежнему иметь права доступа.
Связанный контент
- См. дополнительные сведения о том, как заменить предохранитель TDE для сервера в соответствии с требованиями к безопасности с помощью PowerShell.
- Начало работы с поддержкой использования собственного ключа для TDE: включение TDE с помощью собственного ключа из Azure Key Vault с помощью PowerShell