Program PowerShell i interfejs wiersza polecenia platformy Azure: włączanie funkcji Transparent Data Encryption przy użyciu klucza zarządzanego przez klienta w usłudze Azure Key Vault

Dotyczy: Dedykowane pule SQL dla Azure Synapse Analytics (poprzednio SQL DW)

Wskazówka

Microsoft Fabric Data Warehouse to magazyn relacyjny w skali przedsiębiorstwa na podstawie bazy danych data lake z architekturą gotową do użycia w przyszłości, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz korzystać z magazynowania danych, zacznij od Fabric Data Warehouse. Istniejące obciążenia dedykowanej puli SQL mogą zostać zaktualizowane do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analizy w czasie rzeczywistym i raportowania.

Ten artykuł wyjaśnia, jak używać klucza z Azure Key Vault do przezroczystego szyfrowania danych (TDE) w Azure Synapse Analytics. Aby zdobyć więcej informacji o funkcji TDE z integracją z Azure Key Vault — obsługą BYOK, odwiedź stronę TDE z kluczami zarządzanymi przez klienta w usłudze Azure Key Vault.

Note

Ten artykuł dotyczy samodzielnych dedykowanych pul SQL (dawniej SQL DW).

  • Dla dedykowanych pul SQL w Azure Synapse Analytics (dawniej SQL DW) ustaw protektor TDE na poziomie serwera. Wszystkie zaszyfrowane bazy danych powiązane z tym serwerem dziedziczą ochronę TDE.
  • Szyfruj dane w dedykowanych pulach SQL oraz bezserwerowych pulach SQL w przestrzeni roboczej Synapse, używając klucza zarządzanego przez klienta skonfigurowanego na poziomie przestrzeni roboczej. Aby uzyskać więcej informacji na temat przezroczystego szyfrowania danych dla dedykowanych pul SQL w obszarach roboczych usługi Synapse, zobacz Szyfrowanie usługi Azure Synapse Analytics.

Wymagania wstępne dotyczące programu PowerShell

  • Musisz mieć subskrypcję platformy Azure i być administratorem tej subskrypcji.
  • [Zalecane, ale opcjonalne] Posiadanie modułu zabezpieczeń sprzętowych (HSM) lub lokalnego magazynu kluczy, aby utworzyć lokalną kopię materiału klucza chroniącego TDE.
  • Musisz mieć zainstalowany i uruchomiony program Azure PowerShell.
  • Utwórz usługę Azure Key Vault i klucz do użycia na potrzeby funkcji TDE.
  • Klucz musi mieć następujące atrybuty, które mają być używane dla funkcji TDE:
    • Data aktywacji (jeśli jest ustawiona) musi być datą i godziną w przeszłości
    • Data wygaśnięcia (jeśli jest ustawiona) musi być datą i godziną w przyszłości.
    • Klucz musi być w stanie Włączone
    • Możliwość wykonywania operacji pobierania, zawijania klucza, rozpakowania klucza
  • Aby użyć klucza zarządzanego modułu HSM Azure Key Vault, postępuj zgodnie z instrukcjami, aby utworzyć i aktywować zarządzany moduł HSM przy użyciu Azure CLI

Aby uzyskać instrukcje instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.

Aby uzyskać szczegółowe informacje dotyczące usługi Azure Key Vault, zobacz Instrukcje programu PowerShell z usługi Azure Key Vault i Jak używać usuwania nietrwałego usługi Azure Key Vault za pomocą programu PowerShell.

Przypisz tożsamość Microsoft Entra do serwera

Jeśli masz istniejący serwer, skorzystaj z poniższych instrukcji, aby dodać tożsamość Microsoft Entra do swojego serwera:

$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity

Jeśli tworzysz serwer, użyj cmdletu New-AzSqlServer z tagiem-Identity, aby dodać tożsamość Microsoft Entra podczas tworzenia serwera:

$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
    -ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity

Udzielanie uprawnień usługi Azure Key Vault do serwera

Użyj polecenia cmdlet Set-AzKeyVaultAccessPolicy, aby udzielić serwerowi dostępu do magazynu kluczy przed użyciem klucza dla funkcji TDE.

Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
    -ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey

Aby dodać uprawnienia do serwera w usłudze Managed HSM, dodaj do serwera lokalną rolę RBAC Managed HSM Crypto Service Encryption User. Ta rola umożliwia serwerowi wykonywanie get, wrap key, oraz operacji unwrap key na kluczach w zarządzanym HSM. Aby uzyskać więcej informacji, zobacz Zarządzanie rolami zarządzanego modułu HSM.

Dodawanie klucza usługi Azure Key Vault do serwera i ustawianie funkcji ochrony TDE

Note

W przypadku zarządzanych kluczy HSM użyj polecenia Az.Sql 2.11.1 w wersji programu PowerShell lub nowszej.

Note

Łączna długość nazwy magazynu kluczy i nazwy klucza nie może przekroczyć 94 znaków.

Wskazówka

Używanie wersjonowanych kluczy usługi Azure Key Vault dla TDE

Przy ustawianiu ochrony TDE odwołuj się do klucza Azure Key Vault, używając konkretnej wersji klucza.

Example:

  • Identyfikator klucza zawierający określoną wersję

    https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>

# 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>

# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>

Włącz TDE

Użyj polecenia cmdlet Set-AzSqlDatabaseTransparentDataEncryption, aby włączyć funkcję TDE.

Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
   -ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"

Teraz baza danych lub magazyn danych ma włączoną funkcję TDE z kluczem szyfrowania w usłudze Azure Key Vault.

Sprawdzanie stanu szyfrowania i działania szyfrowania

Użyj polecenia Get-AzSqlDatabaseTransparentDataEncryption , aby uzyskać stan szyfrowania bazy danych lub magazynu danych.

# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
   -ServerName <LogicalServerName> -DatabaseName <DatabaseName> `

Przydatne polecenia cmdlet programu PowerShell

  • Użyj polecenia cmdlet Set-AzSqlDatabaseTransparentDataEncryption, aby wyłączyć funkcję TDE.

    Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -DatabaseName <DatabaseName> -State "Disabled"
    
  • Użyj polecenia cmdlet Get-AzSqlServerKeyVaultKey , aby zwrócić listę kluczy usługi Azure Key Vault dodanych do serwera.

    # KeyId is an optional parameter, to return a specific key version
    Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  • Użyj polecenia Remove-AzSqlServerKeyVaultKey , aby usunąć klucz usługi Azure Key Vault z serwera.

    # the key set as the TDE Protector cannot be removed
    Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    

Troubleshooting

  • Jeśli nie można znaleźć skrytki kluczy, upewnij się, że jesteś w odpowiedniej subskrypcji.

    Get-AzSubscription -SubscriptionId <SubscriptionId>
    

  • Jeśli nie możesz dodać nowego klucza do serwera lub nie możesz zaktualizować nowego klucza jako modułu TDE Protector, sprawdź następujące warunki:

    • Klucz nie powinien mieć daty ważności.
    • Klucz musi mieć włączone operacje get, zawijanie klucza i odwijanie klucza.