PowerShell en Azure CLI: Transparent Data Encryption inschakelen met door de klant beheerde sleutel vanuit Azure Key Vault
van toepassing op:Azure SQL Database
Azure SQL Managed Instance
Azure 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.
-
Instructies voor het gebruik van een HSM (Hardware Security Module) en Key Vault
- De sleutelkluis moet de volgende eigenschap hebben om te worden gebruikt voor TDE:
- voorlopig verwijderen en beveiliging tegen opschonen
-
Instructies voor het gebruik van een HSM (Hardware Security Module) en Key Vault
- 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
- Gebruik de cmdlet Get-AzKeyVaultKey om de sleutel-id op te halen uit de sleutelkluis
- Gebruik de cmdlet Add-AzSqlServerKeyVaultKey om de sleutel uit key vault toe te voegen aan de server.
- Gebruik de Set-AzSqlServerTransparentDataEncryptionProtector cmdlet om de sleutel in te stellen als de TDE-protector voor alle serverbronnen.
- Gebruik de cmdlet Get-AzSqlServerTransparentDataEncryptionProtector om te controleren of de TDE-protector is geconfigureerd zoals bedoeld.
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.
Verwante inhoud
- Meer informatie over het roteren van de TDE-protector van een server om te voldoen aan de beveiligingsvereisten: De Transparent Data Encryption-beveiliging roteren met behulp van PowerShell.
- Meer informatie over het verwijderen van een mogelijk aangetaste TDE-protector: Een mogelijk aangetaste sleutel verwijderen.