Door de klant beheerde sleutels inschakelen voor beheerde services
Notitie
Voor deze functie is het Premium-abonnement vereist.
Voor extra controle over uw gegevens kunt u uw eigen sleutel toevoegen om de toegang tot bepaalde typen gegevens te beveiligen en te beheren. Azure Databricks heeft meerdere door de klant beheerde belangrijke functies. Zie Door de klant beheerde sleutels voor versleuteling om de gerelateerde functies te vergelijken.
Tip
In dit artikel wordt beschreven hoe u uw eigen sleutel configureert vanuit Azure Key Vault-kluizen voor beheerde services. Zie HSM door de klant beheerde HSM inschakelen voor beheerde services voor instructies over het gebruik van een sleutel uit Azure Key Vault Managed HSM.
Gegevens van beheerde services in het Azure Databricks-besturingsvlak worden in rust versleuteld. U kunt een door de klant beheerde sleutel voor beheerde services toevoegen om de toegang tot de volgende typen versleutelde gegevens te beveiligen en te beheren:
- Notebookbron in het Azure Databricks-besturingsvlak.
- Notebookresultaten voor notebooks worden interactief uitgevoerd (niet als taken) die zijn opgeslagen in het besturingsvlak. Standaard worden grotere resultaten ook opgeslagen in de hoofdbucket van uw werkruimte. U kunt Azure Databricks configureren voor het opslaan van alle interactieve notebookresultaten in uw cloudaccount.
- Geheimen die zijn opgeslagen door de secret manager-API's.
- Databricks SQL-query's en querygeschiedenis.
- Persoonlijke toegangstokens (PAT) of andere referenties die worden gebruikt voor het instellen van Git-integratie met Databricks Git-mappen.
Nadat u een door de klant beheerde sleutelversleuteling voor een werkruimte hebt toegevoegd, gebruikt Azure Databricks uw sleutel om de toegang tot de sleutel te beheren waarmee toekomstige schrijfbewerkingen worden versleuteld naar de gegevens van de beheerde services van uw werkruimte. Bestaande gegevens worden niet opnieuw versleuteld. De gegevensversleutelingssleutel wordt in het geheugen opgeslagen voor verschillende lees- en schrijfbewerkingen en wordt regelmatig uit het geheugen verwijderd. Voor nieuwe aanvragen voor die gegevens is een andere aanvraag vereist voor het sleutelbeheersysteem van uw cloudservice. Als u uw sleutel verwijdert of intrekt, mislukt het lezen of schrijven naar de beveiligde gegevens aan het einde van het cachetijdsinterval.
U kunt de door de klant beheerde sleutel op een later tijdstip draaien (bijwerken). Zie De sleutel op een later tijdstip draaien.
Deze functie versleutelt geen gegevens die buiten het besturingsvlak zijn opgeslagen. Zie Door de klant beheerde sleutels voor versleuteling voor andere door de klant beheerde sleutelfuncties
Vereisten
Als u de Azure CLI voor deze taken wilt gebruiken, installeert u het Azure CLI-hulpprogramma en installeert u de Databricks-extensie:
az extension add --name databricks
Als u PowerShell voor deze taken wilt gebruiken, installeert u Azure PowerShell en installeert u de Databricks Powershell-module. U moet zich ook aanmelden:
Connect-AzAccount
Als u zich als gebruiker wilt aanmelden bij uw Azure-account, raadpleegt u PowerShell-aanmelding met een Azure Databricks-gebruikersaccount. Als u zich als een service-principal wilt aanmelden bij uw Azure-account, raadpleegt u de PowerShell-aanmelding met een Service-principal van Microsoft Entra ID.
Stap 1: Een sleutelkluis instellen
U moet een Azure Key Vault-exemplaar maken en de bijbehorende machtigingen instellen. U kunt dit doen via Azure Portal, CLI of API's.
Belangrijk
De Key Vault moet zich in dezelfde Azure-tenant bevinden als uw Azure Databricks-werkruimte.
Deze instructies bieden details over meerdere implementatieopties:
Azure Portal gebruiken
- Een sleutelkluis maken of selecteren:
- Als u een sleutelkluis wilt maken, gaat u naar de azure-portalpagina voor het maken van een sleutelkluis. Klik op + Maken. Voer de naam van de resourcegroep, sleutelkluisnaam, regio en prijscategorie in. Klik op Controleren + maken en klik vervolgens op Maken.
- Als u een bestaande Sleutelkluis wilt gebruiken, kopieert u de naam van de Sleutelkluis voor de volgende stap.
- De object-id van de AzureDatabricks-toepassing ophalen:
- Ga in de Azure-portal naar Microsoft Entra-ID.
- Selecteer Ondernemingstoepassingen in het deelvenster.
AzureDatabricks
Zoek en klik op de ondernemingstoepassing in de resultaten.- Kopieer vanuit Eigenschappen de object-id.
- Een toegangsbeleid toevoegen aan Key Vault met behulp van Azure Portal:
Navigeer naar de Azure Key Vault die u gaat gebruiken om door de klant beheerde sleutels voor beheerde services voor uw werkruimte te configureren.
Klik op het tabblad Toegangsbeleid in het linkerdeelvenster.
Selecteer de knop Maken boven aan de pagina.
Schakel onder de sectie Sleutelmachtigingen in het tabblad Machtigingen de optie Ophalen, Sleutel uitpakken en Sleutel verpakken in.
Klik op Volgende.
Typ
AzureDatabricks
en schuif op het tabblad Principal naar het eerste resultaat van de ondernemingstoepassing met een toepassings-id van2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
en selecteer deze.Ga door naar het tabblad Controleren en maken en klik op b.
De Azure CLI gebruiken
Gebruik de Azure CLI om de volgende instructies te voltooien.
Maak een sleutelkluis of selecteer een bestaande sleutelkluis:
Als u een Sleutelkluis wilt maken, gebruikt u de volgende Azure CLI-opdracht en vervangt u de items tussen vierkante haken door uw regio, Key Vault-naam, resourcegroepnaam en locatie:
az keyvault create --location <region> \ --name <key-vault-name> \ --resource-group <resource-group-name> \ --location <location> \ --enable-purge-protection
Als u een bestaande sleutelkluis wilt gebruiken, kopieert u de naam van de Sleutelkluis voor de volgende stap.
Haal de object-id van de AzureDatabricks-toepassing op met de Azure CLI.
az ad sp show --id "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d" \ --query "id" \ --output tsv
Controleer of u het juiste Azure-abonnement gebruikt:
az account set --subscription {subscription_id}
Azure PowerShell gebruiken
U kunt een nieuwe Sleutelkluis maken of een bestaande sleutelkluis gebruiken.
Een sleutelkluis maken:
$keyVault = New-AzKeyVault -Name <key-vault-name> \
-ResourceGroupName <resource-group-name> \
-Location <location> \
-sku <sku> \
-EnablePurgeProtection
Een bestaande sleutelkluis gebruiken:
$keyVault = Get-AzKeyVault -VaultName <key-vault-name>
Stap 2: Een sleutel voorbereiden
U kunt een sleutel maken of een bestaande sleutel gebruiken. Gebruik de hulpprogramma's die u liever gebruikt: Azure Portal, Azure CLI of andere hulpprogramma's.
Azure CLI gebruiken
Maak een sleutel onder de Sleutelkluis. Het KeyType moet RSA zijn.
Voer deze opdracht uit om de sleutel te maken in CLI:
az keyvault key create --name <key-name> \
--vault-name <key-vault-name> \
--protection software
Noteer de volgende waarden, die u kunt ophalen uit de sleutel-id in de kid
eigenschap in het antwoord. U gebruikt deze in de volgende stappen:
- Sleutelkluis-URL: het begingedeelte van de sleutel-id met de naam van de sleutelkluis. Het heeft het formulier
https://<key-vault-name>.vault.azure.net
. - Sleutelnaam: naam van uw sleutel.
- Sleutelversie: versie van de sleutel.
De volledige sleutel-id heeft meestal het formulier https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>
. Azure Key Vault-sleutels die zich in een niet-openbare cloud bevinden, hebben een andere vorm.
Als u een bestaande sleutel wilt gebruiken in plaats van er een te maken, haalt en kopieert u deze waarden voor uw sleutel, zodat u deze in de volgende stappen kunt gebruiken. Controleer of uw bestaande sleutel is ingeschakeld voordat u doorgaat.
Azure PowerShell gebruiken
Als u van plan bent een sleutel te maken, moet u mogelijk het toegangsbeleid instellen, afhankelijk van hoe en wanneer u deze hebt gemaakt. Als u bijvoorbeeld onlangs de Sleutelkluis hebt gemaakt met behulp van PowerShell, heeft uw nieuwe Sleutelkluis mogelijk geen toegangsbeleid nodig om een sleutel te maken. In het volgende voorbeeld wordt de
EmailAddress
parameter gebruikt om het beleid in te stellen. Zie het Microsoft-artikel over Set-AzKeyVaultAccessPolicy voor verwante informatie.Stel het toegangsbeleid in voor een nieuwe Sleutelkluis:
Set-AzKeyVaultAccessPolicy \ -VaultName $keyVault.VaultName \ -PermissionsToKeys all \ -EmailAddress <email-address>
U kunt een sleutel maken of een bestaande sleutel ophalen:
Een sleutel maken:
$key = Add-AzKeyVaultKey \ -VaultName $keyVault.VaultName \ -Name <key-name> \ -Destination 'Software'
Een bestaande sleutel ophalen:
$key = Get-AzKeyVaultKey \ -VaultName $keyVault.VaultName \ -Name <key-name>
Een toegangsbeleid met machtigingen toevoegen aan de Key Vault:
$managedService = Get-AzureADServicePrincipal \ -Filter "appId eq '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d'" Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \ -ObjectId $managedService.ObjectId \ -PermissionsToKeys wrapkey,unwrapkey,get
Stap 3: Een sleutel toevoegen aan een werkruimte
U kunt een nieuwe werkruimte implementeren met een door de klant beheerde sleutel voor beheerde services of een sleutel toevoegen aan een bestaande werkruimte. U kunt beide doen met Azure CLI, Powershell, ARM-sjablonen, Azure Portal of andere hulpprogramma's. Deze sectie bevat details voor meerdere implementatieopties:
- Azure Portal zonder sjabloon gebruiken
- De Azure CLI zonder sjabloon gebruiken
- PowerShell zonder sjabloon gebruiken
- Wijzigingen toepassen met een ARM-sjabloon
Azure Portal zonder sjabloon gebruiken
Ga naar de startpagina van Azure Portal.
Klik op Een resource maken in de linkerbovenhoek van de pagina.
Typ
Azure Databricks
en klik in de zoekbalk op de optie Azure Databricks .Klik op Maken in de Azure Databricks-widget.
Voer waarden in voor de invoervelden op de tabbladen Basis en Netwerken .
Nadat u het tabblad Versleuteling hebt bereikt:
- Als u een werkruimte wilt maken, schakelt u Uw eigen sleutel gebruiken in de sectie Managed Services in.
- Schakel Managed Services in voor het bijwerken van een werkruimte.
Stel de versleutelingsvelden in.
- Plak in het veld Sleutel-id de sleutel-id van uw Azure Key Vault-sleutel.
- Voer in de vervolgkeuzelijst Abonnement de naam van uw Azure Key Vault-sleutel in.
Voltooi de resterende tabbladen en klik op Controleren en maken (voor nieuwe werkruimte) of Opslaan (voor het bijwerken van een werkruimte).
Belangrijk
Als u de sleutel roteert, moet u de oude sleutel gedurende 24 uur beschikbaar houden.
De Azure CLI zonder sjabloon gebruiken
Voeg een toegangsbeleid toe aan Key Vault met de volgende opdracht. Vervang door
<key-vault-name>
de kluisnaam die u in de vorige stap hebt gebruikt en vervang deze door<object-id>
de object-id van deAzureDatabricks
toepassing.az keyvault set-policy -n <key-vault-name> \ --key-permissions get wrapKey unwrapKey \ --object-id <object-id>
Een werkruimte maken of bijwerken:
Voeg voor zowel het maken als bijwerken deze velden toe aan de opdracht:
managed-services-key-name
: Sleutelnaammanaged-services-key-vault
: Sleutelkluis-URImanaged-services-key-version
: sleutelversie. Gebruik de specifieke sleutelversie en nietlatest
.
Voorbeeld van het maken van een werkruimte met behulp van deze velden:
az databricks workspace create --name <workspace-name> \ --resource-group <resource-group-name> \ --location <location> \ --sku premium \ --managed-services-key-name <key-name> \ --managed-services-key-vault <key-vault-uri> \ --managed-services-key-version <key-version>
Voorbeeld van een update van een werkruimte met behulp van deze velden:
az databricks workspace update --name <workspace-name> \ --resource-group <resource-group-name> \ --managed-services-key-name <key-name> \ --managed-services-key-vault <key-vault-uri> \ --managed-services-key-version <key-version>
Belangrijk
Als u de sleutel roteert, moet u de oude sleutel gedurende 24 uur beschikbaar houden.
PowerShell zonder sjabloon gebruiken
Als u een werkruimte wilt maken of bijwerken, voegt u de volgende parameters toe aan de opdracht voor uw nieuwe sleutel:
ManagedServicesKeyVaultPropertiesKeyName
: SleutelnaamManagedServicesKeyVaultPropertiesKeyVaultUri
: Sleutel-URIManagedServicesKeyVaultPropertiesKeyVersion
: sleutelversie. Gebruik de specifieke sleutelversie en nietlatest
.
Voorbeeld van het maken van een werkruimte met deze velden:
New-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-location $keyVault.Location \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version
Voorbeeld van een werkruimte-update met deze velden:
Update-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $key.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $key.Version
Belangrijk
Als u de sleutel roteert, moet u de oude sleutel gedurende 24 uur beschikbaar houden.
Wijzigingen toepassen met een ARM-sjabloon
Met de volgende ARM-sjabloon maakt u een nieuwe werkruimte met een door de klant beheerde sleutel met behulp van de API-versie 2023-02-01
voor de resource Microsoft.Databricks/workspaces
. Sla deze tekst lokaal op in een bestand met de naam databricks-cmk-template.json
.
Deze voorbeeldsjabloon bevat niet alle mogelijke Azure Databricks-functies, zoals het leveren van uw eigen VNet waarin de werkruimte moet worden geïmplementeerd.
Belangrijk
Als u al een sjabloon gebruikt, voegt u de extra parameters, resources en uitvoer van deze sjabloon samen in uw bestaande sjabloon.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"metadata": {
"description": "The name of the Azure Databricks workspace to create."
}
},
"pricingTier": {
"type": "string",
"defaultValue": "premium",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "The pricing tier of workspace."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"apiVersion": {
"type": "string",
"defaultValue": "2023-02-01",
"allowedValues":[
"2023-02-01",
"2021-04-01-preview"
],
"metadata": {
"description": "The api version to create the workspace resources"
}
},
"keyvaultUri": {
"type": "string",
"metadata": {
"description": "The Key Vault URI for customer-managed key for managed services"
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The key name used for customer-managed key for managed services"
}
},
"keyVersion": {
"type": "string",
"metadata": {
"description": "The key version used for customer-managed key for managed services. Use the specific key version and not `latest`."
}
}
},
"variables": {
"managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Databricks/workspaces",
"name": "[parameters('workspaceName')]",
"location": "[parameters('location')]",
"apiVersion": "[parameters('apiVersion')]",
"sku": {
"name": "[parameters('pricingTier')]"
},
"properties": {
"ManagedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
"encryption": {
"entities": {
"managedServices": {
"keySource": "Microsoft.Keyvault",
"keyVaultProperties": {
"keyVaultUri": "[parameters('keyvaultUri')]",
"keyName": "[parameters('keyName')]",
"keyVersion": "[parameters('keyVersion')]"
}
}
}
}
}
}
],
"outputs": {
"workspace": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
}
}
}
Als u al een andere sjabloon gebruikt, kunt u de parameters, resources en uitvoer van deze sjabloon samenvoegen in uw bestaande sjabloon.
Als u deze sjabloon wilt gebruiken om een werkruimte te maken of bij te werken, kiest u een van deze implementatieopties:
Een sjabloon toepassen met de Azure CLI
Voer de volgende opdracht uit om een nieuwe werkruimte te maken met Azure CLI:
az deployment group create --resource-group <resource-group-name> \
--template-file <file-name>.json \
--parameters workspaceName=<new-workspace-name> \
keyvaultUri=<keyvaultUrl> \
keyName=<keyName> keyVersion=<keyVersion>
Notitie
Gebruik de specifieke sleutelversie en niet latest
.
Een bestaande werkruimte bijwerken om een door de klant beheerde sleutelwerkruimte te gebruiken (of om de bestaande sleutel te draaien) met behulp van Azure CLI:
Als uw ARM-sjabloon die de werkruimte heeft geïmplementeerd, nooit door de klant beheerde sleutels heeft toegevoegd, voegt u de
resources.properties.encryption
sectie en de bijbehorende parameters toe. Zie de sjabloon eerder in dit artikel.- Voeg de
resources.properties.encryption
sectie toe vanuit de sjabloon. - Voeg in de
parameters
sectie drie nieuwe parameterskeyvaultUri
toe,keyName
enkeyVersion
vanuit de sjabloon. - Verwijder
"type": "string",
in deparameters
sectie uit de sjabloon.
- Voeg de
Voer dezelfde opdracht uit als voor het maken van een nieuwe werkruimte. Zolang de naam van de resourcegroep en de naam van de werkruimte identiek zijn aan uw bestaande werkruimte, werkt deze opdracht de bestaande werkruimte bij in plaats van een nieuwe werkruimte te maken.
az deployment group create --resource-group <existing-resource-group-name> \ --template-file <file-name>.json \ --parameters workspaceName=<existing-workspace-name> \ keyvaultUri=<keyvaultUrl> \ keyName=<keyName> keyVersion=<keyVersion>
Gebruik, behalve wijzigingen in de sleutelgerelateerde parameters, dezelfde parameters die zijn gebruikt voor het maken van de werkruimte.
Belangrijk
Als u de sleutel roteert, moet u de oude sleutel gedurende 24 uur beschikbaar houden.
Een sjabloon toepassen met Azure Portal
De sjabloon in Azure Portal gebruiken om een werkruimte te maken of bij te werken:
Ga naar de pagina Aangepaste implementatie .
Klik op Uw eigen sjabloon maken in de editor.
Plak de JSON.
Klik op Opslaan.
Vul de parameters in.
Als u een bestaande werkruimte wilt bijwerken, gebruikt u dezelfde parameters die u hebt gebruikt om de werkruimte te maken. Als u een sleutel voor de eerste keer wilt toevoegen, voegt u de drie sleutelgerelateerde parameters toe. Als u de sleutel wilt draaien, wijzigt u enkele of alle sleutelgerelateerde parameters. Zorg ervoor dat de naam van de resourcegroep en de naam van de werkruimte identiek zijn aan uw bestaande werkruimte. Als ze hetzelfde zijn, wordt met deze opdracht de bestaande werkruimte bijgewerkt in plaats van een nieuwe werkruimte te maken.
Gebruik, behalve wijzigingen in de sleutelgerelateerde parameters, dezelfde parameters die zijn gebruikt voor het maken van de werkruimte.
Klik op Controleren + maken.
Als er geen validatieproblemen zijn, klikt u op Maken.
Belangrijk
Als u de sleutel roteert, moet u de oude sleutel gedurende 24 uur beschikbaar houden.
Zie de Quickstart voor Azure-artikelen : ARM-sjablonen maken en implementeren met behulp van Azure Portal voor meer informatie.
Stap 4 (optioneel): Notebooks opnieuw importeren
Nadat u in eerste instantie een sleutel voor beheerde services voor een bestaande werkruimte hebt toegevoegd, gebruiken alleen toekomstige schrijfbewerkingen uw sleutel. Bestaande gegevens worden niet opnieuw versleuteld.
U kunt alle notebooks exporteren en ze vervolgens opnieuw importeren, zodat de sleutel waarmee de gegevens worden versleuteld, wordt beveiligd en beheerd door uw sleutel. U kunt de WERKRUIMTE-API's exporteren en importeren gebruiken.
De sleutel op een later tijdstip draaien
Als u al een door de klant beheerde sleutel gebruikt voor beheerde services, kunt u de werkruimte bijwerken met een nieuwe sleutelversie of een geheel nieuwe sleutel. Dit wordt sleutelrotatie genoemd.
Maak een nieuwe sleutel of draai uw bestaande sleutel in de sleutelkluis. Bekijk Stap 1: Een Azure Key Vault instellen.
Zorg ervoor dat de nieuwe sleutel over de juiste machtigingen beschikt.
Controleer of uw sjabloon de juiste API-versie heeft. Het moet gelijk zijn aan of hoger dan
2021-04-01-preview
.Werk de werkruimte bij met uw nieuwe sleutel met behulp van de portal, CLI of PowerShell. Zie stap 3: Voeg een sleutel toe aan een werkruimte en volg de instructies voor het bijwerken van de werkruimte. Zorg ervoor dat u dezelfde waarden gebruikt voor de naam van de resourcegroep en de naam van de werkruimte, zodat de bestaande werkruimte wordt bijgewerkt in plaats van een nieuwe werkruimte te maken. Gebruik, behalve wijzigingen in de sleutelgerelateerde parameters, dezelfde parameters die zijn gebruikt voor het maken van de werkruimte.
Belangrijk
Als u de sleutel roteert, moet u de oude sleutel gedurende 24 uur beschikbaar houden.
U kunt eventueel bestaande notitieblokken exporteren en opnieuw importeren om ervoor te zorgen dat al uw bestaande notitieblokken uw nieuwe sleutel gebruiken.
Probleemoplossing
Onbedoeld verwijderen van een sleutel
Als u uw sleutel in Azure Key Vault verwijdert, mislukt de aanmelding bij de werkruimte en kunnen er geen notebooks worden gelezen door Azure Databricks. Om dit te voorkomen, raden we u aan om voorlopig verwijderen in te schakelen. Deze optie zorgt ervoor dat als een sleutel wordt verwijderd, deze binnen een periode van 30 dagen kan worden hersteld. Als voorlopig verwijderen is ingeschakeld, kunt u de sleutel gewoon opnieuw inschakelen om het probleem op te lossen.
Fout bij bijwerken vanwege Key Vault-machtigingen
Als u problemen ondervindt bij het maken van uw werkruimte, controleert u of uw Key Vault de juiste machtigingen heeft. De fout die wordt geretourneerd vanuit Azure geeft dit mogelijk niet correct als de hoofdoorzaak aan. Daarnaast zijn get
de vereiste machtigingen , wrapKey
en unwrapKey
. Bekijk Stap 1: Een Azure Key Vault instellen.
Verloren sleutels zijn onherstelbaar
Als u uw sleutel kwijtraakt en niet kunt herstellen, kunnen alle notebookgegevens die door de sleutel zijn versleuteld, niet worden hersteld.