Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:Azure SQL Database
Azure SQL Managed Instance
Ten artykuł pokazuje, jak użyć klucza z Azure Key Vault do przezroczystego szyfrowania danych (TDE) w Azure SQL Database. 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. Jeśli chcesz instrukcji w portalu Azure, jak włączyć TDE z kluczem zarządzanym przez klienta z Azure Key Vault, zobacz Tworzenie serwera skonfigurowanego z przypisaną przez użytkownika tożsamością zarządzaną oraz TDE z kluczem zarządzanym przez klienta.
Uwaga
Azure SQL Database obsługuje zarówno klucze asymetryczne (RSA), jak i symetryczne (AES) dla funkcji Transparent Data Encryption zarządzanej przez klienta, w zależności od konfiguracji. Obsługa kluczy symetrycznych (AES) jest obecnie dostępna w publicznej wersji zapoznawczej i jest ograniczona do Azure SQL Database. Możesz zauważyć, że ta funkcja pojawia się z czasem, w zależności od regionu i statusu wdrożenia usług. Szczegóły można znaleźć w artykule Transparent Data Encryption with customer-managed keys (BYOK).
Wymagania wstępne dla 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.
-
Instrukcje dotyczące korzystania ze sprzętowego modułu zabezpieczeń (HSM) i usługi Azure Key Vault
- Magazyn kluczy musi mieć następującą właściwość do użycia w przypadku funkcji TDE:
- usuwanie miękkie i ochrona przed trwałym usunięciem
-
Instrukcje dotyczące korzystania ze sprzętowego modułu zabezpieczeń (HSM) i usługi Azure Key Vault
- 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
- Użyj polecenia cmdlet Get-AzKeyVaultKey , aby pobrać identyfikator klucza z magazynu kluczy.
- Użyj polecenia cmdlet Add-AzSqlServerKeyVaultKey , aby dodać klucz z usługi Azure Key Vault do serwera.
- Użyj polecenia cmdlet Set-AzSqlServerTransparentDataEncryptionProtector, aby ustawić klucz jako funkcję ochrony TDE dla wszystkich zasobów serwera.
- Użyj polecenia cmdlet Get-AzSqlServerTransparentDataEncryptionProtector, aby potwierdzić, że funkcja ochrony TDE została skonfigurowana zgodnie z oczekiwaniami.
Uwaga
W przypadku zarządzanych kluczy HSM użyj polecenia Az.Sql 2.11.1 w wersji programu PowerShell lub nowszej.
Uwaga
Łączna długość nazwy magazynu kluczy i nazwy klucza nie może przekroczyć 94 znaków.
Wskazówka
Używanie wersjonowanych i niewersjonowanych kluczy usługi Azure Key Vault dla szyfrowania TDE
Przy ustawianiu ochrony TDE możesz odwołać się do klucza Azure Key Vault, używając konkretnej wersji klucza lub identyfikatora klucza bez wersji.
W obu przypadkach usługa Azure SQL Database zawsze rozpoznaje i używa najnowszej włączonej wersji klucza w usłudze Azure Key Vault lub zarządzanym module HSM usługi Azure Key Vault. Użyj identyfikatorów kluczy bez wersji, aby uniknąć osadzania określonej wersji klucza w konfiguracji funkcji ochrony TDE.
Identyfikatory kluczy bez wersji są obecnie obsługiwane tylko w przypadku usługi Azure SQL Database.
Przykłady:
Identyfikator klucza zawierający określoną wersję
https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>Identyfikator klucza bez wersji
https://<key-vault-name>.vault.azure.net/keys/<key-name>
# 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 ma włączone TDE z kluczem szyfrującym w Azure Key Vault.
Sprawdzanie stanu szyfrowania i działania szyfrowania
Użyj Get-AzSqlDatabaseTransparentDataEncryption , aby uzyskać stan szyfrowania dla bazy 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>
Rozwiązywanie problemów
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.
TDE BYOK Azure Synapse Analytics
Zobacz dokumentację TDE BYOK dotyczącą usługi Azure Synapse Analytics w dokumentacji SQL usługi Azure Synapse Analytics. Aby uzyskać dokumentację dotyczącą funkcji Transparent Data Encryption dla dedykowanych pul SQL w obszarach roboczych usługi Synapse, zobacz Szyfrowanie usługi Azure Synapse Analytics.