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:

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

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

  1. 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.
  2. De object-id van de AzureDatabricks-toepassing ophalen:
    1. Ga in de Azure-portal naar Microsoft Entra-ID.
    2. Selecteer Ondernemingstoepassingen in het deelvenster.
    3. AzureDatabricks Zoek en klik op de ondernemingstoepassing in de resultaten.
    4. Kopieer vanuit Eigenschappen de object-id.
  3. Een toegangsbeleid toevoegen aan Key Vault met behulp van Azure Portal:
    1. Navigeer naar de Azure Key Vault die u gaat gebruiken om door de klant beheerde sleutels voor beheerde services voor uw werkruimte te configureren.

    2. Klik op het tabblad Toegangsbeleid in het linkerdeelvenster.

    3. Selecteer de knop Maken boven aan de pagina.

    4. Schakel onder de sectie Sleutelmachtigingen in het tabblad Machtigingen de optie Ophalen, Sleutel uitpakken en Sleutel verpakken in.

    5. Klik op Volgende.

    6. Typ AzureDatabricks en schuif op het tabblad Principal naar het eerste resultaat van de ondernemingstoepassing met een toepassings-id van 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d en selecteer deze.

      Selecteer de AzureDatabricks-toepassing met id 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d

    7. 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.

  1. 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.

  2. 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
    
  3. 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

  1. 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>
    
  2. 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>
      
  3. 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

  1. Ga naar de startpagina van Azure Portal.

  2. Klik op Een resource maken in de linkerbovenhoek van de pagina.

  3. Typ Azure Databricks en klik in de zoekbalk op de optie Azure Databricks .

  4. Klik op Maken in de Azure Databricks-widget.

  5. Voer waarden in voor de invoervelden op de tabbladen Basis en Netwerken .

  6. 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.
  7. Stel de versleutelingsvelden in.

    Velden weergeven in de sectie Managed Disks van de blade Azure Databricks

    • 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.
  8. 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

  1. 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 de AzureDatabricks toepassing.

    az keyvault set-policy -n <key-vault-name> \
                           --key-permissions get wrapKey unwrapKey  \
                           --object-id <object-id>
    
  2. Een werkruimte maken of bijwerken:

    Voeg voor zowel het maken als bijwerken deze velden toe aan de opdracht:

    • managed-services-key-name: Sleutelnaam
    • managed-services-key-vault: Sleutelkluis-URI
    • managed-services-key-version: sleutelversie

    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: Sleutelnaam
  • ManagedServicesKeyVaultPropertiesKeyVaultUri: Sleutel-URI
  • ManagedServicesKeyVaultPropertiesKeyVersion: sleutelversie

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"
      }
    }
  },
  "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>

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:

  1. 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.

    1. Voeg de resources.properties.encryption sectie toe vanuit de sjabloon.
    2. Voeg in de parameters sectie drie nieuwe parameters keyvaultUritoe, keyNameen keyVersion vanuit de sjabloon.
  2. 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:

  1. Ga naar de pagina Aangepaste implementatie .

  2. Klik op Uw eigen sjabloon maken in de editor.

  3. Plak de JSON.

  4. Klik op Opslaan.

  5. 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.

  6. Klik op Controleren + maken.

  7. 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.

  1. 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.

  2. Controleer of uw sjabloon de juiste API-versie heeft. Het moet gelijk zijn aan of hoger dan 2021-04-01-preview.

  3. 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.

  4. 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 getde vereiste machtigingen , wrapKeyen 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.