PowerShell och Azure CLI: Aktivera transparent datakryptering med kundhanterad nyckel från Azure Key Vault
gäller för:Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Den här artikeln beskriver hur du använder en nyckel från Azure Key Vault för transparent datakryptering (TDE) i Azure SQL Database eller Azure Synapse Analytics. 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 letar efter instruktioner för Azure-portalen om hur du aktiverar TDE med en kundstyrd nyckel från Azure Key Vault, kan du läsa Skapa server som konfigurerats med användartilldelad hanterad identitet och kundstyrd TDE.
Den här artikeln gäller för dedikerade SQL-pooler i Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics. Dokumentation om transparent datakryptering för dedikerade SQL-pooler i Synapse-arbetsytor finns i Azure Synapse Analytics-kryptering.
Not
Azure SQL stöder nu användning av en RSA-nyckel som lagras i en hanterad HSM som TDE-skydd. Azure Key Vault Managed HSM är en fullständigt hanterad, högtillgänglig molntjänst med en enda klient, standardkompatibel molntjänst som gör att du kan skydda kryptografiska nycklar för dina molnprogram med fips 140-2 nivå 3-verifierade HSM:er. Läs mer om hanterade HSM:er.
Not
Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).
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 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 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 Hanterad HSM-nyckel följer du anvisningarna för att skapa och aktivera en hanterad HSM med Azure CLI-
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
För mer information om Key Vault, se PowerShell-instruktioner från Key Vault och hur du använder Key Vaults mjuka borttagning med PowerShell.
Tilldela en Microsoft Entra-identitet till servern
Om du har en befintlig serveranvänder du följande för att lägga till en Microsoft Entra-identitet på servern:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
Om du skapar en server använder du cmdleten New-AzSqlServer med taggen -Identity för att lägga till en Microsoft Entra-identitet när servern skapas:
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
Bevilja 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
Om du vill lägga till behörigheter till servern på en hanterad HSM lägger du till den lokala RBAC-rollen "Managed HSM Crypto Service Encryption User" på servern. Detta gör det möjligt för servern att utföra hämta, kryptera och dekryptera operationer på nycklarna i den hanterade HSM:en. Mer information finns i hanterad HSM-rollhantering
Lägg till 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 Nyckelvalvet 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.
Not
Den kombinerade längden för nyckelvalvets namn och nyckelnamn får inte överstiga 94 tecken.
Tips
Ett exempel på KeyId från Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/<key-id>
Ett exempel på KeyId från Managed 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>
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 eller informationslagret TDE aktiverat med en krypteringsnyckel i Key Vault.
Kontrollera krypteringstillståndet och krypteringsaktiviteten
Använd Get-AzSqlDatabaseTransparentDataEncryption för att hämta krypteringstillståndet för en databas eller ett informationslager.
# 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 Key Vault-nycklar som 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 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, kontrollera att du är i rätt prenumeration.
Get-AzSubscription -SubscriptionId <SubscriptionId>
Om den nya nyckeln inte kan läggas till på servern eller om den nya nyckeln inte kan uppdateras som TDE-skydd kontrollerar du följande:
- Nyckeln bör inte ha ett förfallodatum.
- Nyckeln måste ha hämta nyckel, wrap-nyckel, och packa upp nyckel-operationer aktiverade.
Relaterat innehåll
- Lär dig hur du roterar TDE-skyddet för en server för att uppfylla säkerhetskrav: Rotera skyddet för transparent datakryptering med PowerShell-.
- Lär dig hur du tar bort ett potentiellt komprometterat TDE-skydd: Ta bort en potentiellt komprometterad nyckel.