Door de klant beheerde sleutels inschakelen voor beheerde services
Belangrijk
Deze functie is beschikbaar als openbare preview.
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 twee door de klant beheerde belangrijke functies voor verschillende typen gegevens en locaties. Zie Door de klant beheerde sleutels voor versleuteling om deze te vergelijken.
Gegevens van beheerde services in het Azure Databricks-besturingsvlak worden at-rest versleuteld. U kunt een door de klant beheerde sleutel toevoegen voor beheerde services 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 om alle resultaten van interactieve notebooks op te slaan in uw cloudaccount.
- Geheimen die zijn opgeslagen door de API's van geheimbeheer.
- Databricks SQL-query's en querygeschiedenis.
- Persoonlijke toegangstokens (PAT) of andere referenties die worden gebruikt voor het instellen van Git-integratie met Databricks-opslagplaatsen.
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 naar de gegevens van de beheerde services van uw werkruimte worden versleuteld. Bestaande gegevens worden niet opnieuw versleuteld. De gegevensversleutelingssleutel wordt in het geheugen opgeslagen voor verschillende lees- en schrijfbewerkingen en regelmatig uit het geheugen verwijderd. Nieuwe aanvragen voor die gegevens vereisen een andere aanvraag naar 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 roteren (bijwerken). Zie De sleutel draaien.
Belangrijk
Nadat u de opdracht sleutelrotatie hebt uitgevoerd, moet u uw oude KMS-sleutel 24 uur beschikbaar houden voor Azure Databricks.
Notitie
Met deze functie worden gegevens die buiten het besturingsvlak zijn opgeslagen, niet versleuteld. Zie Door de klant beheerde sleutels configureren voor DBFS-hoofdmap als u gegevens wilt versleutelen in de blobopslag van uw werkruimte.
Stap 1: een sleutelkluis maken of een bestaande sleutelkluis gebruiken
U moet een Azure Key Vault-exemplaar maken en de machtigingen instellen. U kunt dit doen via de Azure Portal, maar in de volgende instructies wordt de Azure CLI gebruikt.
Een sleutelkluis maken of een bestaande sleutelkluis selecteren
Als u een sleutelkluis wilt maken, vervangt u de items tussen vierkante haken door uw regio, de naam van de sleutelkluis en de naam van de resourcegroep:
az keyvault create --location <region> \ --name <key-vault-name> \ --resource-group <resource-group-name>
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 :
az ad sp show --id "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d" \ --query "objectId" \ --output tsv
In plaats van de Azure CLI te gebruiken, kunt u de object-id ophalen vanuit de Azure Portal:
- Selecteer in Azure Active Directory bedrijfstoepassingen in het zijbalkmenu.
- Zoek naar AzureDatabricks en klik op de Enterprise-toepassing in de resultaten.
- Kopieer vanuit Eigenschappen de object-id.
Stel de vereiste machtigingen in voor uw sleutelkluis. Vervang door
<key-vault-name>
de kluisnaam die u in de vorige stap hebt gebruikt en vervang door<object-id>
de object-id van de AzureDatabricks-toepassing.az keyvault set-policy -n <key-vault-name> \ --key-permissions get wrapKey unwrapKey \ --object-id <object-id>
Stap 2: een nieuwe sleutel maken of een bestaande sleutel gebruiken
Maak een sleutel onder de sleutelkluis. Het KeyType moet RSA zijn, maar RSA-sleutelgrootte en HSM maken niet uit. De KeyVault moet zich in dezelfde Azure-tenant bevinden als uw Azure Databricks-werkruimte. Gebruik de hulpprogramma's die u liever gebruikt: Azure Portal, Azure CLI of andere hulpprogramma's.
Voer deze opdracht uit om de sleutel in CLI te maken:
az keyvault key create --name <key name> \
--vault-name <key vault name>
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 die de naam van de sleutelkluis bevat. Het heeft de vorm
https://<key-vault-name>.vault.azure.net
. - Sleutelnaam: de naam van uw sleutel.
- Sleutelversie: versie van de sleutel.
De volledige sleutel-id heeft de notatie <key-vault-URL>/keys/<key-name>/<key-version>
.
Als u in plaats daarvan een bestaande sleutel gebruikt, haalt en kopieert u deze waarden voor uw sleutel, zodat u ze in de volgende stappen kunt gebruiken. Controleer of uw bestaande sleutel is ingeschakeld voordat u doorgaat.
Stap 3: Een werkruimte maken of bijwerken met uw sleutel
U kunt een nieuwe werkruimte implementeren met een door de klant beheerde sleutel voor beheerde services of door de klant beheerde sleutel toevoegen aan een bestaande werkruimte. U kunt beide doen met ARM-sjablonen. Gebruik de hulpprogramma's die u liever gebruikt: Azure Portal, Azure CLI of andere hulpprogramma's.
Met de volgende ARM-sjabloon maakt u een nieuwe werkruimte met een door de klant beheerde sleutel, met behulp van de preview-API-versie voor de resource Microsoft.Databricks/workspaces
. Sla deze tekst lokaal op in een bestand met de naam databricks-cmk-template.json
.
Notitie
Deze voorbeeldsjabloon bevat niet alle mogelijke functies, zoals het leveren van uw eigen VNet. Als u al een sjabloon gebruikt, voegt u de 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": "2021-04-01-preview",
"allowedValues":[
"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"
}
}
},
"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, hebt u verschillende opties, afhankelijk van uw hulpprogramma's.
Werkruimte maken met 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>
Werkruimte bijwerken met Azure CLI
Een bestaande werkruimte bijwerken om een door de klant beheerde sleutelwerkruimte te gebruiken (of om de bestaande sleutel te roteren) met behulp van Azure CLI:
Als uw ARM-sjabloon waarmee de werkruimte is geïmplementeerd, nooit door de klant beheerde sleutels heeft toegevoegd, voegt u de sectie en de
resources.properties.encryption
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
,keyName
enkeyVersion
toe vanuit 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.
Belangrijk
Gebruik, afgezien van wijzigingen in de sleutelgerelateerde parameters, dezelfde parameters die zijn gebruikt voor het maken van de werkruimte.
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>
Belangrijk
Nadat u de opdracht sleutelrotatie hebt uitgevoerd, moet u uw oude KMS-sleutel 24 uur beschikbaar houden voor Azure Databricks.
Werkruimte maken of bijwerken met Azure Portal
De sjabloon in de 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 het eerst 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.
Belangrijk
Gebruik, afgezien van 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
Nadat u de opdracht sleutelrotatie hebt uitgevoerd, moet u uw oude KMS-sleutel 24 uur beschikbaar houden voor Azure Databricks.
Zie het Azure-artikel Quickstart: ARM-sjablonen maken en implementeren met behulp van de Azure Portal voor meer informatie.
Stap 4: optioneel bestaande notebooks exporteren en 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 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 draaien
Als u al een door de klant beheerde sleutel voor beheerde services gebruikt, 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 Key Vault. Zie Stap 1: een sleutelkluis maken of een bestaande sleutelkluis gebruiken.
Belangrijk
Zorg ervoor dat de nieuwe sleutel de juiste machtiging heeft.
Controleer of uw sjabloon de juiste API-versie
2021-04-01-preview
heeft.De werkruimte bijwerken:
Belangrijk
Nadat u de opdracht sleutelrotatie hebt uitgevoerd, moet u uw oude KMS-sleutel 24 uur beschikbaar houden voor Azure Databricks.
Als u de Azure Portal wilt gebruiken, past u de sjabloon toe met behulp van het aangepaste implementatieprogramma. Zie Werkruimte maken of bijwerken met Azure Portal. 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.
Voer de volgende opdracht uit om de Azure CLI te gebruiken. 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.
Belangrijk
Gebruik, afgezien van wijzigingen in de sleutelgerelateerde parameters, dezelfde parameters die zijn gebruikt voor het maken van de werkruimte.
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>
U kunt eventueel bestaande notitieblokken exporteren en opnieuw importeren om ervoor te zorgen dat alle bestaande notitieblokken uw nieuwe sleutel gebruiken.
Probleemoplossing en best practices
Onbedoeld verwijderen van een sleutel
Als u uw sleutel verwijdert in de Azure Key Vault, mislukt de aanmelding van 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.
Verloren sleutels kunnen niet worden hersteld
Als u uw sleutel kwijtraakt en niet kunt herstellen, kunnen alle notebookgegevens die door de sleutel zijn versleuteld, niet worden hersteld.
Fout bijwerken van sleutel vanwege sleutelkluismachtigingen
Als u problemen ondervindt bij het maken van uw werkruimte, controleert u of uw sleutelkluis de juiste machtigingen heeft. De fout die wordt geretourneerd vanuit Azure, geeft dit mogelijk niet correct aan als de hoofdoorzaak. De vereiste machtigingen zijn get
ook , wrapKey
en unwrapKey
. Zie Stap 1: een sleutelkluis maken of een bestaande sleutelkluis gebruiken.