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: Azure SQL Database Azure SQL Managed InstanceAzure Synapse Analytics
W tym artykule opisano, jak używać klucza z usługi Azure Key Vault na potrzeby przezroczystego szyfrowania danych (TDE) w usłudze Azure SQL Database lub Azure Synapse Analytics. Aby dowiedzieć się więcej na temat funkcji TDE z integracją usługi Azure Key Vault — obsługa byOK, odwiedź stronę TDE z kluczami zarządzanymi przez klienta w usłudze Azure Key Vault. Jeśli szukasz instrukcji witryny Azure Portal dotyczących włączania funkcji TDE przy użyciu klucza zarządzanego przez klienta z usługi Azure Key Vault, zobacz Tworzenie serwera skonfigurowanego przy użyciu tożsamości zarządzanej przypisanej przez użytkownika i szyfrowania TDE zarządzanego przez klienta.
Ten artykuł dotyczy usług Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics (dedykowanych pul SQL (dawniej SQL DW). 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.
Uwaga
Usługa Azure SQL obsługuje teraz używanie klucza RSA przechowywanego w zarządzanym module HSM jako funkcji ochrony TDE. Zarządzany moduł HSM usługi Azure Key Vault to w pełni zarządzana, wysoce dostępna, zgodna ze standardami usługa w chmurze, która umożliwia ochronę kluczy kryptograficznych dla aplikacji w chmurze przy użyciu zweryfikowanych modułów HSM fiPS 140-2 poziom 3. Dowiedz się więcej o zarządzanych modułach HSM.
Uwaga
Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).
Wymagania wstępne dla PowerShell
- Musisz mieć subskrypcję platformy Azure i być administratorem tej subskrypcji.
- [Zalecane, ale opcjonalne] Posiadanie sprzętowego modułu zabezpieczeń (HSM) lub lokalnego magazynu kluczy do tworzenia lokalnej kopii materiału klucza funkcji ochrony 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 Key Vault
- Magazyn kluczy musi mieć następującą właściwość do użycia w przypadku funkcji TDE:
- usuwanie nietrwałe i ochrona przed przeczyszczaniem
- Instrukcje dotyczące korzystania ze sprzętowego modułu zabezpieczeń (HSM) i usługi 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ć w przyszłości datą i godziną
- Klucz musi być w stanie Włączone
- Możliwość wykonywania operacji pobierania, zawijania klucza, odpakowania kluczy
- Aby użyć zarządzanego klucza HSM, postępuj zgodnie z instrukcjami, aby utworzyć i aktywować zarządzany moduł HSM przy użyciu interfejsu wiersza polecenia platformy Azure
Aby uzyskać instrukcje dotyczące instalacji modułu Az, zobacz Instalowanie programu Azure PowerShell. Aby uzyskać informacje o określonych poleceniach cmdlet, zobacz AzureRM.Sql.
Aby uzyskać szczegółowe informacje dotyczące usługi Key Vault, zobacz instrukcje programu PowerShell z usługi Key Vault i Jak używać usuwania nietrwałego usługi Key Vault za pomocą programu PowerShell.
Ważne
Moduł Azure Resource Manager (RM) programu PowerShell jest nadal obsługiwany, ale wszystkie przyszłe programowanie dotyczy modułu Az.Sql. Moduł AzureRM będzie nadal otrzymywać poprawki błędów do co najmniej grudnia 2020 r. Argumenty poleceń w module Az i modułach AzureRm są zasadniczo identyczne. Aby uzyskać więcej informacji na temat ich zgodności, zobacz Wprowadzenie do nowego modułu Az programu Azure PowerShell.
Przypisywanie tożsamości firmy Microsoft Entra do serwera
Jeśli masz istniejący serwer, użyj następującego polecenia, aby dodać tożsamość firmy Microsoft Entra do serwera:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Jeśli tworzysz serwer, użyj polecenia cmdlet New-AzSqlServer z tagiem -Identity, aby dodać tożsamość firmy Microsoft Entra podczas tworzenia serwera:
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
Udzielanie uprawnień usługi 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 zarządzanym module HSM, dodaj lokalną rolę RBAC "Zarządzany użytkownik RBAC usługi kryptograficznej modułu HSM". Umożliwi to serwerowi wykonywanie operacji pobierania, zawijania klucza, odpakowywanie kluczy na kluczach w zarządzanym module HSM. Instrukcje dotyczące aprowizowania dostępu do serwera w zarządzanym module HSM
Dodaj klucz usługi Key Vault do serwera i ustaw funkcję 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 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.
Uwaga
Łączna długość nazwy magazynu kluczy i nazwy klucza nie może przekraczać 94 znaków.
Napiwek
Przykładowy identyfikator KeyId z usługi Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/1a1a2b2b3c3c4d4d5e5e6f6f7g7g8h8h
Przykładowy identyfikator KeyId z zarządzanego modułu HSM:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey
# add the key from 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łączanie funkcji 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 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 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 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
Sprawdź następujące kwestie, jeśli wystąpi problem:
Jeśli nie można odnaleźć magazynu kluczy, upewnij się, że jesteś w odpowiedniej subskrypcji.
Get-AzSubscription -SubscriptionId <SubscriptionId>
- Jeśli nie można dodać nowego klucza do serwera lub nie można zaktualizować nowego klucza jako funkcji ochrony TDE, sprawdź następujące kwestie:
- Klucz nie powinien mieć daty wygaśnięcia
- Klucz musi mieć włączone operacje get, wrap key i unwrap key .
Następne kroki
- Dowiedz się, jak obrócić funkcję ochrony TDE serwera w celu zachowania zgodności z wymaganiami dotyczącymi zabezpieczeń: Obracanie funkcji ochrony Transparent Data Encryption przy użyciu programu PowerShell.
- W przypadku zagrożenia bezpieczeństwa dowiedz się, jak usunąć potencjalnie naruszoną ochronę TDE: usuń potencjalnie naruszony klucz.