Udostępnij za pośrednictwem


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 Azure SQL Database, Azure SQL Managed Instance i dedykowanych pul SQL w 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.

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.
  • 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 instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.

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.

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". Dzięki temu serwer może wykonywać operacje pobierania kluczy, zawijania kluczy oraz rozpakowywania kluczy w zarządzanym module HSM. Aby uzyskać więcej informacji, zobacz Zarządzanie rolami modułu HSM

Dodaj klucz usługi Key Vault do serwera i ustaw funkcję ochrony TDE

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/<key-id>

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


  • Jeśli nie można dodać nowego klucza do serwera lub nie można zaktualizować nowego klucza jako 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 .