Delen via


PowerShell en Azure CLI: Transparent Data Encryption inschakelen met door de klant beheerde sleutel vanuit Azure Key Vault

van toepassing op:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics-

In dit artikel wordt uitgelegd hoe u een sleutel uit Azure Key Vault gebruikt voor TDE (Transparent Data Encryption) in Azure SQL Database of Azure Synapse Analytics. Ga naar TDE met door de klant beheerde sleutels in Azure Key Vaultvoor meer informatie over de TDE met Azure Key Vault-integratie - ByOk -ondersteuning (Bring Your Own Key). Als u op zoek bent naar instructies voor de Azure Portal over het inschakelen van TDE met een door de klant beheerde sleutel uit Azure Key Vault, zie dan Server maken die is geconfigureerd met door de gebruiker toegewezen beheerde identiteit en door de klant beheerde TDE.

Dit artikel is van toepassing op toegewezen SQL-pools van Azure SQL Database, Azure SQL Managed Instance en Toegewezen SQL-pools van Azure Synapse Analytics. Zie Azure Synapse Analytics-versleutelingvoor documentatie over Transparent Data Encryption voor toegewezen SQL-pools in Synapse-werkruimten.

Notitie

Azure SQL biedt nu ondersteuning voor het gebruik van een RSA-sleutel die is opgeslagen in een beheerde HSM als TDE-beveiliging. Beheerde HSM van Azure Key Vault is een volledig beheerde, maximaal beschikbare cloudservice die voldoet aan standaarden en waarmee u cryptografische sleutels voor uw cloudtoepassingen kunt beveiligen met behulp van met FIPS 140-2 Level 3 gevalideerde HSM's. Krijg meer informatie over beheerde HSM's.

Notitie

Microsoft Entra ID voorheen Azure Active Directory (Azure AD) werd genoemd.

Vereisten voor PowerShell

  • U moet een Azure-abonnement hebben en een beheerder van dat abonnement zijn.
  • [Aanbevolen maar optioneel] Zorg voor een hardwarebeveiligingsmodule (HSM) of een lokaal sleutelarchief voor het maken van een lokale kopie van het TDE Protector-sleutelmateriaal.
  • U moet Azure PowerShell hebben geïnstalleerd en uitgevoerd.
  • Maak een Azure Key Vault en Sleutel die u voor TDE wilt gebruiken.
  • De sleutel moet de volgende kenmerken hebben die moeten worden gebruikt voor TDE:
    • De activeringsdatum (indien ingesteld) moet een datum en tijd in het verleden zijn
    • De vervaldatum (indien ingesteld) moet een toekomstige datum en tijd zijn
    • De sleutel moet de status Ingeschakeld hebben
    • In staat om op te halen, sleutel in te pakken, sleutel uit te pakken bewerkingen uit te voeren.
  • Als u een beheerde HSM-sleutel wilt gebruiken, volgt u de instructies voor het maken en activeren van een beheerde HSM met behulp van Azure CLI

Zie Azure PowerShell-installeren voor installatie-instructies voor Az PowerShell-module.

Zie PowerShell-instructies van Key Vault en hoe Key Vault zachte delete te gebruiken met PowerShellvoor meer informatie over Key Vault.

Een Microsoft Entra-identiteit toewijzen aan uw server

Als u een bestaande -server hebt, gebruikt u het volgende om een Microsoft Entra-identiteit toe te voegen aan uw server:

$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity

Als u een server maakt, gebruikt u de cmdlet New-AzSqlServer met de tag -Identity om een Microsoft Entra-identiteit toe te voegen tijdens het maken van de server:

$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
    -ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity

Key Vault-machtigingen verlenen aan uw server

Gebruik de cmdlet Set-AzKeyVaultAccessPolicy om uw server toegang te verlenen tot de sleutelkluis voordat u een sleutel uit de sleutelkluis voor TDE gebruikt.

Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
    -ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey

Om machtigingen toe te voegen aan uw server op een beheerde HSM, voegt u de lokale RBAC-rol 'Managed HSM Crypto Service Encryption User' toe aan de server. Hierdoor kan de server get-, wrap key- en uitpaksleutelbewerkingen uitvoeren op de sleutels in de beheerde HSM. Zie Beheerde HSM-rolbeheer voor meer informatie

De Key Vault-sleutel toevoegen aan de server en de TDE-beveiliging instellen

Notitie

Gebruik Az.Sql 2.11.1-versie van PowerShell voor beheerde HSM-sleutels.

Notitie

De gecombineerde lengte voor de sleutelkluisnaam en sleutelnaam mag niet langer zijn dan 94 tekens.

Advies

Een voorbeeld van KeyId uit Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/<key-id>

Een voorbeeld van KeyId van beheerde 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>

TDE inschakelen

Gebruik de cmdlet Set-AzSqlDatabaseTransparentDataEncryption om TDE in te schakelen.

Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
   -ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"

De database of het datawarehouse heeft nu TDE ingeschakeld met een versleutelingssleutel in Key Vault.

De versleutelingsstatus en versleutelingsactiviteit controleren

Gebruik de Get-AzSqlDatabaseTransparentDataEncryption om de versleutelingsstatus voor een database of datawarehouse op te halen.

# get the encryption state of the database
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
   -ServerName <LogicalServerName> -DatabaseName <DatabaseName> `

Nuttige PowerShell-cmdlets

  • Gebruik de cmdlet Set-AzSqlDatabaseTransparentDataEncryption om TDE uit te schakelen.

    Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -DatabaseName <DatabaseName> -State "Disabled"
    
  • Gebruik de cmdlet Get-AzSqlServerKeyVaultKey om de lijst met Key Vault-sleutels te retourneren die aan de server zijn toegevoegd.

    # KeyId is an optional parameter, to return a specific key version
    Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  • Gebruik de Remove-AzSqlServerKeyVaultKey om een Key Vault-sleutel van de server te verwijderen.

    # the key set as the TDE Protector cannot be removed
    Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    

Probleemoplossing

  • Als de sleutelkluis niet kan worden gevonden, controleert u of u zich in het juiste abonnement bevindt.

    Get-AzSubscription -SubscriptionId <SubscriptionId>
    

  • Als de nieuwe sleutel niet kan worden toegevoegd aan de server of de nieuwe sleutel niet kan worden bijgewerkt als de TDE-beveiliging, controleert u het volgende:

    • De sleutel mag geen vervaldatum hebben.
    • De sleutel moet de ophalen, de sleutelverpakken, en de sleutel uitpakken.