Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:Azure SQL Database
Azure SQL Managed Instance
Den här artikeln visar hur man använder en nyckel från Azure Key Vault för transparent datakryptering (TDE) på Azure SQL Database. Mer information om TDE med Azure Key Vault-integrering – BYOK-support (Bring Your Own Key) finns i TDE med kundhanterade nycklar i Azure Key Vault. Om du vill ha Azure-portalinstruktioner om hur du aktiverar TDE med en kundhanterad nyckel från Azure Key Vault, se Create server configured with user-assigned managed identity and customer-managed TDE.
Not
Azure SQL Database stöder både asymmetriska (RSA) och symmetriska (AES) nycklar för kundhanterad Transparent Data Encryption, beroende på konfigurationen. Stöd för symmetriska nycklar (AES) är för närvarande i offentlig förhandsversion och är begränsat till Azure SQL Database. Du kan se denna funktion dyka upp över tid beroende på din region och tjänstens utplaceringsstatus. Mer information finns i Transparent Data Encryption with customer-managed keys (BYOK).
Förutsättningar för PowerShell
- Du måste ha en Azure-prenumeration och vara administratör för den prenumerationen.
- [Rekommenderat men valfritt] Ha en maskinvarusäkerhetsmodul (HSM) eller ett lokalt nyckelarkiv för att skapa en lokal kopia av nyckelmaterialet för TDE-skydd.
- Du måste ha Azure PowerShell installerat och igång.
- Skapa ett Azure Key Vault och en nyckel som ska användas för TDE.
-
Instruktioner för att använda en maskinvarusäkerhetsmodul (HSM) och Azure Key Vault
- Nyckelvalvet måste ha följande egenskap som ska användas för TDE:
- mjuk borttagning och skydd mot rensning
-
Instruktioner för att använda en maskinvarusäkerhetsmodul (HSM) och Azure Key Vault
- Nyckeln måste ha följande attribut som ska användas för TDE:
- Aktiveringsdatumet (om det anges) måste vara ett datum och en tid tidigare
- Förfallodatumet (om det anges) måste vara ett framtida datum och en framtida tid
- Nyckeln måste vara i tillståndet Aktiverad
- Du kan utföra hämta, omslagning av nyckel, avslagning av nyckel operationer
- Om du vill använda en Azure Key Vault hanterad HSM-nyckel följer du anvisningarna för att skapa och aktivera en hanterad HSM med hjälp av Azure CLI
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
Mer information om Azure Key Vault finns i PowerShell-instruktioner från Azure Key Vault och Så här använder du mjuk borttagning av Azure Key Vault med PowerShell.
Tilldela en Microsoft Entra-identitet till servern
Om du har en befintlig server, använd följande instruktioner för att lägga till en Microsoft Entra-identitet på din server:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Om du skapar en server, använd cmdleten New-AzSqlServer med taggen -Identity för att lägga till en Microsoft Entra-identitet under serverskapandet:
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
Bevilja Azure Key Vault-behörigheter till servern
Använd cmdleten Set-AzKeyVaultAccessPolicy för att ge servern åtkomst till nyckelvalvet innan du använder en nyckel från den för TDE.
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
För att lägga till behörigheter till din server på en hanterad HSM, lägg till den lokala RBAC-rollen Managed HSM Crypto Service Encryption User till servern. Denna roll gör det möjligt för servern att utföra get, wrap key, och unwrap key operationer på nycklarna i den hanterade HSM:en. Mer information finns i Hanterad HSM-rollhantering.
Lägg till Azure Key Vault-nyckeln på servern och ange TDE-skyddet
- Använd cmdleten Get-AzKeyVaultKey för att hämta nyckel-ID:t från nyckelvalvet.
- Använd cmdleten Add-AzSqlServerKeyVaultKey för att lägga till nyckeln från Azure Key Vault till servern.
- Använd cmdleten Set-AzSqlServerTransparentDataEncryptionProtector för att ange nyckeln som TDE-skydd för alla serverresurser.
- Använd cmdleten Get-AzSqlServerTransparentDataEncryptionProtector för att bekräfta att TDE-skyddet har konfigurerats som avsett.
Not
För Hanterade HSM-nycklar använder du Az.Sql 2.11.1-versionen av PowerShell eller senare.
Not
Den sammanlagda längden för nyckelvalvets namn och nyckelnamnet får inte överstiga 94 tecken.
Tips
Använda versionsbaserade och versionslösa Azure Key Vault-nycklar för TDE
När du sätter TDE-skyddet kan du referera till en Azure Key Vault-nyckel genom att använda antingen en specifik nyckelversion eller en versionslös nyckelidentifierare.
I båda fallen löser Azure SQL Database alltid och använder den senaste aktiverade versionen av nyckeln i Azure Key Vault eller Azure Key Vault Managed HSM. Använd versionslösa nyckelidentifierare för att undvika att bädda in en specifik nyckelversion i TDE-skyddskonfigurationen.
Versionslösa nyckelidentifierare stöds för närvarande endast för Azure SQL Database.
Exempel:
Nyckelidentifierare som innehåller en specifik version
https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>Versionslös nyckelidentifierare
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>
Aktivera TDE
Använd cmdleten Set-AzSqlDatabaseTransparentDataEncryption för att aktivera TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
Nu har databasen TDE aktiverat med en krypteringsnyckel i Azure Key Vault.
Kontrollera krypteringstillståndet och krypteringsaktiviteten
Använd Get-AzSqlDatabaseTransparentDataEncryption för att få krypteringstillståndet för en databas.
# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
Användbara PowerShell-cmdletar
Använd cmdleten Set-AzSqlDatabaseTransparentDataEncryption för att inaktivera TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> ` -DatabaseName <DatabaseName> -State "Disabled"Använd cmdleten Get-AzSqlServerKeyVaultKey för att returnera listan över Azure Key Vault-nycklar som har lagts till på servern.
# KeyId is an optional parameter, to return a specific key version Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>Använd Remove-AzSqlServerKeyVaultKey för att ta bort en Azure Key Vault-nyckel från servern.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Felsökning
Om nyckelvalvet inte kan hittas, se till att du är i rätt prenumeration.
Get-AzSubscription -SubscriptionId <SubscriptionId>
Om du inte kan lägga till den nya nyckeln på servern, eller om du inte kan uppdatera den nya nyckeln som TDE Protector, kontrollera följande villkor:
- Nyckeln ska inte ha något utgångsdatum.
- Nyckeln måste ha hämta nyckel, wrap-nyckel, och packa upp nyckel-operationer aktiverade.
TDE BYOK Azure Synapse Analytics
För TDE BYOK-dokumentation om Azure Synapse Analytics, se Azure Synapse Analytics SQL documentation. Dokumentation om transparent datakryptering för dedikerade SQL-pooler i Synapse-arbetsytor finns i Azure Synapse Analytics-kryptering.