Azure Synapse Analytics에서 투명한 데이터 암호화 보호기를 제거하세요

Tip

Microsoft Fabric Data Warehouse는 데이터 레이크 기반의 엔터프라이즈 규모 관계형 웨어하우스로, 미래 대비 아키텍처, 기본 제공 AI 및 새로운 기능을 제공합니다. 데이터 웨어하우징이 처음이라면, Fabric Data Warehouse부터 시작하세요. 기존 전용 SQL 풀 워크로드는 업그레이드하면 Fabric을 통해 데이터 과학, 실시간 분석 및 보고 전반에 걸쳐 새로운 기능에 액세스할 수 있습니다.

적용 대상: Azure Synapse Analytics 전용 SQL 풀(이전의 SQL DW)

고객이 관리하는 TDE 보호기가 손상될 수 있을 때 이 절차를 사용하세요. 기존 키를 삭제하거나 비활성화하기 전에 새로운 프로텍터로 전환하여 전용 SQL 풀에 접근할 수 있도록 하세요.

Caution

활성 TDE 보호기를 삭제하거나 비활성화하면 그 보호기에 의존하는 모든 전용 SQL 풀에 접근할 수 없게 됩니다. 키를 제거하기 전에 사고 대응 계획과 백업-유지 요건을 검토하세요.

Note

이 글에서는 독립형 전용 SQL 풀(이전 명칭: SQL DW)에 대해 다룹니다. Synapse 작업 공간 내 전용 SQL 풀에 대해서는 Azure Synapse Analytics 작업 공간의 암호화를 참조하세요.

키를 삭제한다고 해서 이전에 백업되거나 다른 키 금고에 복원된 그 키 복사본이 무효화되는 것은 아닙니다. 사고 대응의 일환으로 모든 사본을 보호하고 목록화하세요.

Prerequisites

TDE 보호자 지문 확인

다음 단계에서는 특정 데이터베이스의 가상 로그 파일(VLF)이 여전히 사용하는 TDE 보호기 썸프린트를 확인하는 방법을 설명합니다.

데이터베이스의 현재 TDE 보호기 지문과 데이터베이스 ID를 찾기 위해 다음 쿼리를 실행하세요:

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에서 안전하게 삭제할 수 있습니다.

  • Azure CLI 명령어 az sql server key show는 쿼리에 사용된 TDE 보호자의 지문을 제공하므로, Azure Key Vault에서 유지할 키와 삭제할 키를 확인할 수 있습니다. 데이터베이스에서 더 이상 사용하지 않는 키만 Azure Key Vault에서 안전하게 삭제할 수 있습니다.

암호화된 리소스에 액세스할 수 있도록 유지

PowerShell

  1. Azure Key Vault에서 새 키를 만듭니다. 접근 제어는 볼트 수준에서 프로비저닝되기 때문에, 잠재적으로 침해될 수 있는 TDE 보호기와는 별도의 키 볼트에서 이 새로운 키를 반드시 생성하세요.

  2. Add-AzSqlServerKeyVaultKey 및 Set-AzSqlServerTransparentDataEncryptionProtector cmdlet을 사용하여 서버에 새 키를 추가하고, 서버의 새로운 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. Get-AzSqlServerTransparentDataEncryptionProtector cmdlet을 사용하여 서버와 모든 복제본이 새로운 TDE 프로텍터로 업데이트되도록 하세요.

    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. Remove-AzKeyVaultKey cmdlet을 사용하여 Azure Key Vault에서 손상되었거나 유출된 키를 삭제하세요.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. 나중에 Azure Key Vault에 키를 복원하려면 Restore-AzKeyVaultKey cmdlet을 사용합니다.

    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. Azure Key Vault에서 TDE 보호기의 키 자료를 백업합니다.

  3. Azure Key Vault에서 잠재적으로 손상된 키를 제거합니다.

Note

키 금고에 대한 권한 변경이 적용되기까지 약 10분 정도 걸릴 수 있습니다. 이 작업 시간에는 AKV에서 TDE 보호기 접근 권한을 취소하는 것도 포함되며, 사용자는 여전히 접근 권한을 가질 수 있습니다.