Удалите средство защиты прозрачное шифрование данных в Azure Synapse Analytics

Tip

Microsoft Fabric Data Warehouse — это реляционное хранилище корпоративного масштаба на основе озера данных, с архитектурой, готовой к будущему, встроенным ИИ и новыми функциями. Если вы не знакомы с хранилищем данных, начните с Fabric Data Warehouse. Существующие рабочие нагрузки выделенных пулов SQL могут быть обновлены до Fabric для доступа к новым возможностям в области науки о данных, аналитики в реальном времени и создания отчётов.

Применимо к: Выделенные SQL-пулы Azure Synapse Analytics (ранее — "SQL Data Warehouse")

Используйте эту процедуру, если может быть скомпрометирован TDE-протектор, управляемый клиентом. Перед удалением или отключением старого ключа переключитесь на новое средство защиты, чтобы выделенные пулы SQL оставались доступными.

Caution

Удаление или отключение активного TDE-протектора делает все выделенные SQL-пулы, зависящие от него, недоступными. Изучите план реагирования на инциденты и требования к сохранению резервных копий перед удалением ключа.

Note

В этой статье рассматриваются отдельные выделенные SQL-пулы (ранее SQL DW). Для выделенных SQL-пулов в рабочем пространстве Synapse см. раздел «Шифрование для рабочих областей Azure Synapse Analytics».

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

Prerequisites

Проверьте отпечатки сертификата средства защиты 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:

  • Команда PowerShell Get-AzSqlServerKeyVaultKey предоставляет отпечаток сертификата средства защиты TDE, используемого в запросе, чтобы вы могли видеть, какие ключи оставить, а какие удалить в Azure Key Vault. Только ключи, которые база данных больше не использует, можно безопасно удалить из Azure Key Vault.

  • Команда az sql server key show Azure CLI предоставляет отпечаток протектора TDE, используемого в запросе, чтобы вы могли видеть, какие ключи сохранить, а какие удалить в Azure Key Vault. Только ключи, которые база данных больше не использует, можно безопасно удалить из Azure Key Vault.

Сохранение доступности зашифрованных ресурсов

PowerShell

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

  2. Добавьте новый ключ на сервер с помощью командлетов 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>
    
  3. Убедитесь, что сервер и все реплики обновляются до нового защитника TDE с помощью командлета Get-AzSqlServerTransparentDataEncryptionProtector.

    Note

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

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Создайте резервную копию нового ключа в Azure Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Удалите скомпрометированный ключ из Azure Key Vault, используя cmdlet Remove-AzKeyVaultKey.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. Чтобы восстановить ключ в Azure Key Vault в будущем, используйте командлет Restore-AzKeyVaultKey .

    Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
    

Azure CLI

Дополнительные сведения о команде см. в разделе azure CLI keyvault.

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

  2. Добавьте новый ключ на сервер и обновите его в качестве нового предохранителя TDE сервера.

    # add the key from Azure Key Vault to the server  
    az sql server key create --kid <KeyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
    # set the key as the TDE protector for all resources under the server
    az sql server tde-key set --server-key-type AzureKeyVault --kid <KeyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
  3. Убедитесь, что сервер и все реплики переводятся на новый TDE-протектор.

    Note

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

    az sql server tde-key show --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
  4. Создайте резервную копию нового ключа в Azure Key Vault.

    # --file parameter is optional; if removed, a file name is automatically generated.
    az keyvault key backup --file <DesiredBackupFilePath> --name <KeyVaultKeyName> --vault-name <KeyVaultName>
    
  5. Удалите скомпрометированный ключ из Azure Key Vault.

    az keyvault key delete --name <KeyVaultKeyName> --vault-name <KeyVaultName>
    
  6. Восстановить ключ в Azure Key Vault на будущее.

    az keyvault key restore --file <BackupFilePath> --vault-name <KeyVaultName>
    

Как сделать зашифрованные ресурсы недоступными

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

    Система автоматически делает резервную копию базы данных и файлов журналов, так что вы можете восстановить базу данных на определенный момент времени (при условии, что вы предоставите ключ). Удалите базы данных перед удалением активного TDE-протектора, чтобы избежать возможной потери данных за последние 10 минут транзакций.

  2. Создайте резервную копию ключевого материала защиты TDE в Azure Key Vault.

  3. Удалите потенциально скомпрометированный ключ из Azure Key Vault.

Note

Изменения разрешений для хранилища ключей могут вступить в силу примерно через 10 минут. Этот процесс включает отзыв разрешений доступа к протектору TDE в AKV, и у пользователей могут оставаться права доступа.