Share via


Configurare chiavi gestite dal cliente per dischi gestiti di Azure

I carichi di lavoro di calcolo di Azure Databricks nel piano di calcolo archiviano i dati temporanei nei dischi gestiti di Azure. Per impostazione predefinita, i dati archiviati nei dischi gestiti vengono crittografati inattivi usando la crittografia lato server con chiavi gestite da Microsoft. Questo articolo descrive come configurare una chiave gestita dal cliente dagli insiemi di credenziali di Azure Key Vault per l'area di lavoro di Azure Databricks da usare per la crittografia del disco gestito. Per istruzioni sull'uso di una chiave dal modulo di protezione hardware di Azure Key Vault, vedere Configurare le chiavi gestite dal cliente del modulo di protezione hardware per i dischi gestiti da Azure.

Importante

  • Le chiavi gestite dal cliente per l'archiviazione su disco gestito si applicano ai dischi dati, ma non si applicano ai dischi del sistema operativo.
  • Le chiavi gestite dal cliente per l'archiviazione su disco gestito non si applicano alle risorse di calcolo serverless, ad esempio i warehouse SQL serverless e la gestione dei modelli. I dischi usati per le risorse di calcolo serverless sono di breve durata e legati al ciclo di vita del carico di lavoro serverless. Quando le risorse di calcolo vengono arrestate o ridimensionate, le macchine virtuali e le relative risorse di archiviazione vengono eliminate definitivamente.

Requisiti

  • L'area di lavoro di Azure Databricks deve essere nel piano Premium.

  • L'insieme di credenziali delle chiavi di Azure e l'area di lavoro di Azure Databricks devono trovarsi nella stessa area e nello stesso tenant di Microsoft Entra ID (in precedenza Azure Active Directory). Possono trovarsi in sottoscrizioni diverse.

  • Se si vuole abilitare la rotazione automatica, sono supportate solo chiavi software e RSA HSM di dimensioni a 2048 bit, 3072 bit e 4096 bit.

  • Questa funzionalità non è supportata per le aree di lavoro con conformità FedRAMP. Per altre informazioni, contattare il team dell'account di Azure Databricks.

  • Per usare l'interfaccia della riga di comando di Azure per queste attività, installare lo strumento dell'interfaccia della riga di comando di Azure e installare l'estensione Databricks:

    az extension add --name databricks
    
  • Per usare PowerShell per queste attività, installare Azure PowerShell e installare il modulo Databricks PowerShell. È anche necessario eseguire l'accesso:

    Connect-AzAccount
    

    Per accedere all'account Azure come utente, vedere Accesso di PowerShell con un account utente di Azure Databricks. Per accedere all'account Azure come entità servizio, vedere Accesso di PowerShell con un'entità servizio Microsoft Entra ID.

Passaggio 1: Creare un insieme di credenziali delle chiavi

È possibile creare un insieme di credenziali delle chiavi in molti modi, tra cui portale di Azure, interfaccia della riga di comando di Azure, PowerShell e facoltativamente usando i modelli di Resource Manager. Le sezioni seguenti illustrano le procedure per l'uso dell'interfaccia della riga di comando di Azure e di PowerShell. Per altri approcci, vedere la documentazione Microsoft.

Utilizzare l'interfaccia della riga di comando di Azure

  1. Creare un insieme di credenziali delle chiavi:

    az keyvault create --name <keyVaultName> --resource-group <resourceGroupName> --location <location> --sku <sku> --enable-purge-protection
    
  2. Ottenere l'URI dell'insieme di credenziali:

    az keyvault show --name <key-vault-name>
    

    Copiare il vaultUri valore dalla risposta.

Usare PowerShell

Creare un nuovo insieme di credenziali:

$keyVault = New-AzKeyVault -Name <key-vault-name> -ResourceGroupName <resource-group-name> -Location <location> -Sku <sku> -EnablePurgeProtection

Ottenere un insieme di credenziali delle chiavi esistente:

$keyVault = Get-AzKeyVault -VaultName <key-vault-name>

Passaggio 2: Preparare una chiave

È possibile creare una chiave o recuperare una chiave esistente archiviata in Azure Key Vault usando portale di Azure, l'interfaccia della riga di comando di Azure, PowerShell e facoltativamente usando i modelli di Resource Manager. Questa sezione illustra le procedure per l'interfaccia della riga di comando di Azure e PowerShell. Per altri modi, vedere la documentazione sulle chiavi di Azure.

Utilizzare l'interfaccia della riga di comando di Azure

È possibile creare una chiave o recuperare una chiave esistente.

Creare una chiave:

  1. Esegui questo comando:

    az keyvault key create \
    --name <key-name> \
    --vault-name <key-vault-name> \
    --protection software
    
  2. Prendere nota dei valori seguenti dall'output:

    • Nome dell'insieme di credenziali delle chiavi: nome dell'insieme di credenziali delle chiavi
    • Nome chiave: nome della chiave
    • Versione chiave: versione della chiave
    • Gruppo di risorse dell'insieme di credenziali delle chiavi: gruppo di risorse dell'insieme di credenziali delle chiavi
  3. Ottenere informazioni chiave:

    az keyvault key show --vault-name <keyVaultName> --name <keyName>
    

    Copiare il valore del campo, ovvero l'ID kid chiave.

    L'ID chiave completo ha in genere il formato https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>. Le chiavi di Azure Key Vault che si trovano in un cloud non pubblico hanno un formato diverso.

Recuperare una chiave esistente:

  1. Esegui questo comando:

    az keyvault key show --name <key-name> --vault-name <key-vault-name>
    
  2. Prendere nota dei dettagli seguenti per la chiave esistente:

    • Nome dell'insieme di credenziali delle chiavi: nome dell'insieme di credenziali delle chiavi.
    • Nome chiave: nome della chiave.
    • Versione chiave: versione della chiave.
    • Gruppo di risorse dell'insieme di credenziali delle chiavi: gruppo di risorse dell'insieme di credenziali delle chiavi.
  3. Ottenere informazioni chiave:

    az keyvault key show --vault-name <keyVaultName> --name <keyName>
    

    Copiare il valore del campo, ovvero l'ID kid chiave.

    L'ID chiave completo ha in genere il formato https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>. Le chiavi di Azure Key Vault che si trovano in un cloud non pubblico hanno un formato diverso.

  4. Verificare che la chiave esistente sia abilitata prima di procedere di nuovo eseguendo az keyvault key show --name <key name> di nuovo. L'output visualizza "enabled": true.

Usare PowerShell

  1. Se si prevede di creare una chiave, potrebbe essere necessario impostare i criteri di accesso, a seconda di come e quando è stato creato. Ad esempio, se di recente è stato creato l'insieme di credenziali delle chiavi con PowerShell, il nuovo insieme di credenziali delle chiavi potrebbe non avere i criteri di accesso necessari per creare una chiave. Nell'esempio seguente viene usato il EmailAddress parametro per impostare i criteri. Per informazioni dettagliate, vedere l'articolo Microsoft su Set-AzKeyVaultAccessPolicy.

    Impostare i criteri di accesso in un nuovo insieme di credenziali delle chiavi:

    Set-AzKeyVaultAccessPolicy \
    -VaultName $keyVault.VaultName \
    -PermissionsToKeys all \
    -EmailAddress <email-address>
    
  2. È possibile creare una chiave o recuperare una chiave esistente:

    • Creare una chiave:

      $key = Add-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name> \
      -Destination 'Software'
      
    • Recuperare una chiave esistente:

      $key = Get-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name>
      

Passaggio 3: Arrestare tutte le risorse di calcolo se si aggiorna un'area di lavoro per aggiungere inizialmente una chiave

Se si aggiunge una chiave gestita dal cliente per i dischi gestiti inizialmente in un'area di lavoro esistente, arrestare tutte le risorse di calcolo (cluster, pool, database classici o pro sql warehouse) prima dell'aggiornamento.

Al termine dell'aggiornamento, è possibile avviare le risorse di calcolo arrestate. Per un'area di lavoro che dispone già di una chiave gestita dal cliente per i dischi gestiti, è possibile ruotare la chiave senza terminare le risorse di calcolo.

Passaggio 4: Creare o aggiornare un'area di lavoro

Per creare o aggiornare un'area di lavoro con una chiave gestita dal cliente per i dischi gestiti, scegliere una delle strategie di distribuzione seguenti:

Usare il portale di Azure (nessun modello)

Questa sezione descrive come usare il portale di Azure per creare o aggiornare un'area di lavoro con chiavi gestite dal cliente per i dischi gestiti senza usare un modello.

  1. Iniziare a creare o aggiornare un'area di lavoro:

    Creare una nuova area di lavoro con una chiave:

    1. Passare alla home page del portale di Azure e fare clic su Crea una risorsa nell'angolo superiore sinistro della pagina.
    2. Nella barra di ricerca digitare Azure Databricks e fare clic su Azure Databricks.
    3. Selezionare Crea dall'interno del widget Azure Databricks.
    4. Immettere i valori nei campi modulo nelle schede Informazioni di base e Rete.
    5. Nella scheda Crittografia selezionare la casella di controllo Usa la propria chiave nella sezione Managed Disks.

    Aggiungere inizialmente una chiave a un'area di lavoro esistente:

    1. Terminare tutte le risorse di calcolo (cluster, pool).
    2. Passare alla home page del portale di Azure per Azure Databricks.
    3. Passare all'area di lavoro di Azure Databricks esistente.
    4. Aprire la scheda Crittografia nel pannello a sinistra.
    5. Nella sezione Chiavi gestite dal cliente abilitare Managed Disks.
  2. Impostare i campi di crittografia.

    Show fields in the Managed Disks section of the Azure Databricks blade

    • Nel campo Identificatore chiave incollare l'identificatore di chiave della chiave di Azure Key Vault.
    • Nell'elenco a discesa Sottoscrizione immettere il nome della sottoscrizione della chiave di Azure Key Vault.
    • Per abilitare la rotazione automatica della chiave, abilitare Abilita rotazione automatica della chiave.
  3. Completare le schede rimanenti e fare clic su Rivedi e crea (per una nuova area di lavoro) o su Salva (per aggiornare un'area di lavoro).

  4. Dopo la distribuzione dell'area di lavoro, passare alla nuova area di lavoro di Azure Databricks.

  5. Nella scheda Panoramica dell'area di lavoro di Azure Databricks fare clic su Gruppo di risorse gestite.

  6. Nella scheda Panoramica del gruppo di risorse gestite cercare l'oggetto di tipo Set di crittografia dischi creato nel gruppo di risorse. Copiare il nome del set di crittografia dischi.

  7. In portale di Azure passare ad Azure Key Vault usato per configurare la chiave usata per questa funzionalità.

  8. Aprire la scheda Criteri di accesso dal pannello a sinistra. Dopo aver aperto la scheda, fare clic su Crea nella parte superiore della pagina.

  9. Nella scheda Autorizzazioni nella sezione Autorizzazioni chiave abilitare Get, Unwrap Key e Wrap key.

  10. Fare clic su Avanti.

  11. Nella scheda Entità immettere il nome del set di crittografia dischi all'interno del gruppo di risorse gestite dell'area di lavoro di Azure Databricks nella barra di ricerca. Selezionare il risultato e fare clic su Avanti.

    Enter the name of disk encryption set and select the result

  12. Fare clic sulla scheda Rivedi e crea e fare clic su Crea.

Usare l'interfaccia della riga di comando di Azure (nessun modello)

Per le aree di lavoro nuove e aggiornate, aggiungere questi parametri al comando:

  • disk-key-name: nome della chiave
  • disk-key-vault: nome dell'insieme di credenziali
  • disk-key-version: versione chiave
  • disk-key-auto-rotation: abilita la rotazione automatica della chiave (true o false). Questo campo è facoltativo. Il valore predefinito è false.

Nei comandi seguenti usare il valore dell'URI dell'insieme di credenziali della risposta nel passaggio precedente al posto di <key-vault-uri>. Inoltre, il nome della chiave e i valori della versione della chiave sono disponibili all'interno del kid valore nella risposta del passaggio precedente.

  1. Creare o aggiornare un'area di lavoro:

    • Esempio di creazione di un'area di lavoro usando questi parametri del disco gestito:

      az databricks workspace create --name <workspace-name> \
      --resource-group <resource-group-name> \
      --location <location> \
      --sku premium --disk-key-name <key-name> \
      --disk-key-vault <key-vault-uri> \
      --disk-key-version <key-version> \
      --disk-key-auto-rotation <true-or-false>
      
    • Esempio di aggiornamento di un'area di lavoro usando questi parametri del disco gestito:

      az databricks workspace update \
      --name <workspace-name> \
      --resource-group <resource-group-name> \
      --disk-key-name <key-name> \
      --disk-key-vault <key-vault-uri> \
      --disk-key-version <key-version> \
      --disk-key-auto-rotation <true-or-false>
      

    Nell'output di uno di questi comandi è presente un managedDiskIdentity oggetto . Salvare il valore della proprietà all'interno di principalId questo oggetto. Usato in un passaggio successivo come ID entità.

  2. Aggiungere un criterio di accesso con l'autorizzazione della chiave all'insieme di credenziali delle chiavi. Usare il nome dell'insieme di credenziali e l'ID entità dei passaggi precedenti:

    az keyvault set-policy \
    --name <key-vault-name> \
    --object-id <principal-id> \
    --key-permissions get wrapKey unwrapKey
    

Usare PowerShell (nessun modello)

Per le aree di lavoro nuove e aggiornate, aggiungere questi parametri al comando:

  • location: posizione dell'area di lavoro
  • ManagedDiskKeyVaultPropertiesKeyName: Nome chiave
  • ManagedDiskKeyVaultPropertiesKeyVaultUri: URI dell'insieme di credenziali delle chiavi
  • ManagedDiskKeyVaultPropertiesKeyVersion: versione chiave
  • ManagedDiskRotationToLatestKeyVersionEnabled: abilita la rotazione automatica della chiave (true o false). Questo campo è facoltativo. L’impostazione predefinita è false.
  1. Creare o aggiornare un'area di lavoro:

    • Esempio di creazione di un'area di lavoro usando i parametri del disco gestito:

      $workspace = New-AzDatabricksWorkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -location $keyVault.Location \
      -Sku premium \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
    • Esempio di aggiornamento di un'area di lavoro usando i parametri del disco gestito:

      $workspace = Update-AzDatabricksworkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
  2. Aggiungere un criterio di accesso con autorizzazioni di chiave all'insieme di credenziali delle chiavi:

    Set-AzKeyVaultAccessPolicy -VaultName $keyVault.VaultName \
    -ObjectId $workspace.ManagedDiskIdentityPrincipalId \
    -PermissionsToKeys wrapkey,unwrapkey,get
    

Usare un modello arm (portale di Azure o l'interfaccia della riga di comando)

È possibile esplorare i modelli di avvio rapido di Azure nella documentazione di Azure. Per un elenco delle opzioni di distribuzione dei modelli di Resource Manager, vedere la documentazione del modello di Resource Manager.

Quando si crea un'area di lavoro, viene creata anche una risorsa del set di crittografia del disco all'interno del gruppo di risorse gestite dell'area di lavoro. Ha un'identità gestita assegnata dal sistema usata per accedere all'insieme di credenziali delle chiavi. Prima che l'ambiente di calcolo di Azure Databricks possa usare questa chiave per crittografare i dati, è necessario recuperare l'ID entità del set di crittografia del disco, quindi concedere all'identità le GETautorizzazioni per la chiave , WRAPe UNWRAP all'insieme di credenziali delle chiavi.

Databricks consiglia di creare o aggiornare l'area di lavoro e concedere le autorizzazioni di Key Vault nella stessa distribuzione del modello. È necessario creare o aggiornare l'area di lavoro prima di concedere le autorizzazioni di Key Vault, con un'unica eccezione. Se si aggiorna un'area di lavoro chiave gestita dal cliente del disco gestito esistente per usare una nuova chiave in un nuovo insieme di credenziali delle chiavi, è necessario concedere all'insieme di credenziali delle chiavi l'autorizzazione esistente per accedere al nuovo insieme di credenziali delle chiavi e quindi aggiornare l'area di lavoro con la nuova configurazione della chiave.

Il modello di esempio in questa sezione esegue entrambe le operazioni seguenti:

  • Crea o aggiorna un'area di lavoro per aggiungere le impostazioni della chiave gestita dal cliente del disco gestito
  • Concede all'insieme di credenziali delle chiavi l'accesso al set di crittografia del disco

È possibile usare il modello di Resource Manager di esempio seguente, che esegue due operazioni:

  • Creare o aggiornare un'area di lavoro con una chiave gestita dal cliente su disco gestito.
  • Creare un criterio di accesso alle chiavi.

Se si usa già un modello di Resource Manager, è possibile unire i parametri, le risorse e gli output del modello di esempio nel modello esistente.

{
   "$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": [
               "premium"
           ],
           "metadata": {
               "description": "The pricing tier of workspace"
           }
       },
       "apiVersion": {
           "type": "string",
           "defaultValue": "2023-02-01",
           "allowedValues": [
               "2023-02-01",
               "2022-04-01-preview"
           ],
           "metadata": {
               "description": "The API version to use to create the workspace resources"
           }
       },
       "keyVaultName": {
           "type": "string",
           "metadata": {
               "description": "The Key Vault name used for CMK"
           }
       },
       "keyName": {
           "type": "string",
           "metadata": {
               "description": "The key name used for CMK"
           }
       },
       "keyVersion": {
           "type": "string",
           "metadata": {
               "description": "The key version used for CMK"
           }
       },
       "keyVaultResourceGroupName": {
           "type": "string",
           "metadata": {
               "description": "The resource group name of the Key Vault used for CMK"
           }
       },
       "enableAutoRotation": {
           "type": "bool",
           "defaultValue": false,
           "allowedValues": [
               true,
               false
           ],
           "metadata": {
               "description": "Whether managed disk picks up new key versions automatically"
           }
       }
   },
   "variables": {
       "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]"
   },
   "resources": [
       {
           "type": "Microsoft.Databricks/workspaces",
           "name": "[parameters('workspaceName')]",
           "location": "[resourceGroup().location]",
           "apiVersion": "[parameters('apiVersion')]",
           "sku": {
               "name": "[parameters('pricingTier')]"
           },
           "properties": {
               "managedResourceGroupId": "[concat(subscription().id, '/resourceGroups/', variables('managedResourceGroupName'))]",
               "encryption": {
                   "entities": {
                       "managedDisk": {
                           "keySource": "Microsoft.Keyvault",
                           "keyVaultProperties": {
                               "keyVaultUri": "[concat('https://', parameters('keyVaultName'), environment().suffixes.keyvaultDns)]",
                               "keyName": "[parameters('keyName')]",
                               "keyVersion": "[parameters('keyVersion')]"
                           },
                           "rotationToLatestKeyVersionEnabled": "[parameters('enableAutoRotation')]"
                       }
                   }
               }
           }
       },
       {
           "type": "Microsoft.Resources/deployments",
           "apiVersion": "2020-06-01",
           "name": "addAccessPolicy",
           "resourceGroup": "[parameters('keyVaultResourceGroupName')]",
           "dependsOn": [
               "[resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName'))]"
           ],
           "properties": {
               "mode": "Incremental",
               "template": {
                   "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
                   "contentVersion": "0.9.0.0",
                   "resources": [
                       {
                           "type": "Microsoft.KeyVault/vaults/accessPolicies",
                           "apiVersion": "2019-09-01",
                           "name": "[concat(parameters('keyVaultName'), '/add')]",
                           "properties": {
                               "accessPolicies": [
                                   {
                                       "objectId": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')), '2023-02-01').managedDiskIdentity.principalId]",
                                       "tenantId": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')), '2023-02-01').managedDiskIdentity.tenantId]",
                                       "permissions": {
                                           "keys": [
                                               "get",
                                               "wrapKey",
                                               "unwrapKey"
                                           ]
                                       }
                                   }
                               ]
                           }
                       }
                   ]
               }
           }
       }
   ],
   "outputs": {
       "workspace": {
           "type": "object",
           "value": "[reference(resourceId('Microsoft.Databricks/workspaces', parameters('workspaceName')))]"
       }
   }
}

Usare il modello con qualsiasi strumento desiderato, tra cui portale di Azure, interfaccia della riga di comando o altri strumenti. I dettagli sono inclusi per le strategie di distribuzione dei modelli seguenti:

Applicare un modello di Resource Manager usando il portale di Azure

Per creare o aggiornare un'area di lavoro usando un modello di Resource Manager nella portale di Azure, eseguire le operazioni seguenti:

  1. Solo se si aggiunge inizialmente una chiave a un'area di lavoro esistente, terminare tutte le risorse di calcolo (cluster, pool). Se non si riesce a eseguire questo passaggio, le risorse vengono terminate automaticamente durante l'aggiornamento, causando problemi per alcuni tipi di carichi di lavoro. Pianificare il tempo di inattività per terminare tutte le risorse di calcolo prima di aggiungere la chiave. Al termine dell'aggiornamento, si avvieranno le risorse di calcolo arrestate. Per un'area di lavoro che dispone già di una chiave gestita dal cliente per i dischi gestiti, è possibile ruotare la chiave senza terminare le risorse di calcolo.

  2. Accedere al portale di Azure.

  3. Fare clic su Crea una risorsa e quindi su Distribuzione modello (distribuzione con modelli personalizzati).

  4. Nella pagina Distribuzione personalizzata fare clic su Compila un modello personalizzato nell'editor.

  5. Incollare il contenuto del modello di esempio nell'editor.

    Edit deployment page of the Azure custom deployment portal

  6. Fare clic su Salva.

  7. Immettere i valori dei parametri.

    Per aggiornare un'area di lavoro esistente, usare gli stessi parametri usati per creare l'area di lavoro. Per aggiungere una chiave gestita dal cliente per la prima volta, aggiungere i resources.properties.encryption.entities.managedDisk parametri correlati alla chiave in come illustrato nel modello precedente. Per ruotare la chiave, modificare alcuni o tutti i parametri correlati alla chiave.

    Importante

    Se si aggiorna un'area di lavoro, il nome del gruppo di risorse e il nome dell'area di lavoro nel modello devono essere identici al nome del gruppo di risorse e al nome dell'area di lavoro esistente.

    Project details page of the Azure custom deployment portal

  8. Fare clic su Rivedi e crea.

  9. Risolvere eventuali problemi di convalida e quindi fare clic su Crea.

Importante

Se si ruota una chiave, non eliminare la chiave precedente fino al completamento dell'aggiornamento dell'area di lavoro.

Applicare un modello di Resource Manager usando l'interfaccia della riga di comando di Azure

Questa sezione descrive come creare o aggiornare un'area di lavoro con la chiave usando un modello di Resource Manager con l'interfaccia della riga di comando di Azure.

  1. Solo se si aggiunge inizialmente una chiave a un'area di lavoro esistente, terminare tutte le risorse di calcolo (cluster, pool). Se non si riesce a eseguire questo passaggio, le risorse vengono terminate automaticamente durante l'aggiornamento, causando problemi per alcuni tipi di carichi di lavoro. È possibile pianificare questo aggiornamento e pianificare i tempi di inattività. Questo passaggio non è necessario se si sta semplicemente ruotando la chiave.

  2. Controllare se il modello include la sezione per resources.properties.encryption.entities.managedDisk e i keyvaultNamerelativi parametri correlati , keyName, keyVersione keyVaultResourceGroupName. Se non sono presenti, vedere in precedenza in questa sezione per un modello di esempio e unire in tale sezione e i parametri nel modello.

  3. Eseguire il comando az deployment group create. Se il nome del gruppo di risorse e il nome dell'area di lavoro sono identici al nome del gruppo di risorse e al nome dell'area di lavoro per un'area di lavoro esistente, questo comando aggiorna l'area di lavoro esistente anziché creare una nuova area di lavoro. Se si aggiorna una distribuzione esistente, assicurarsi di usare lo stesso gruppo di risorse e lo stesso nome dell'area di lavoro usato in precedenza.

    az deployment group create --resource-group <existing-resource-group-name>  \
                               --template-file <file-name>.json \
                               --parameters workspaceName=<workspace-name> \
                                            keyvaultName=<key-vault-name> \
                                            keyName=<key-name> keyVersion=<key-version> \
                                            keyVaultResourceGroupName=<key-vault-resource-group>
    

    Importante

    Se si ruota una chiave, è possibile eliminare solo la chiave precedente al termine dell'aggiornamento dell'area di lavoro.

Passaggio 5: Verificare che le risorse di calcolo usino la chiave (facoltativo)

Per verificare che la funzionalità chiave gestita dal cliente del disco gestito sia abilitata per l'area di lavoro:

  1. Recuperare i dettagli dell'area di lavoro di Azure Databricks eseguendo una delle operazioni seguenti:

    • Portale di Azure

      1. Nel portale di Azure fare clic su Aree di lavoro e quindi sul nome dell'area di lavoro.
      2. Nella pagina dell'area di lavoro fare clic su Visualizzazione JSON.
      3. Fare clic su una versione dell'API uguale o successiva a quella dell'API 2022-04-01-preview .
    • Interfaccia della riga di comando di Azure

      Esegui questo comando:

      az databricks workspace show --resource-group <resource group name> --name <workspace name>
      

      I parametri di crittografia del disco gestito sono inclusi in properties. Ad esempio:

      "properties": {
           "encryption": {
               "entities": {
                   "managedDisk": {
                     "keySource": "Microsoft.Keyvault",
                     "keyVaultProperties": {
                         "keyVaultUri": "<key-vault-uri>",
                         "keyName": "<key-name>",
                         "keyVersion": "<key-version>"
                     },
                     "rotationToLatestKeyVersionEnabled": "<rotation-enabled>"
                 }
            }
        }
      
    • PowerShell

      Get-AzDatabricksWorkspace -Name <workspace-name> -ResourceGroupName <resource-group-name> |
        Select-Object -Property ManagedDiskKeySource,
         ManagedDiskKeyVaultPropertiesKeyVaultUri,
         ManagedServicesKeyVaultPropertiesKeyName,
         ManagedServicesKeyVaultPropertiesKeyVersion,
         ManagedDiskRotationToLatestKeyVersionEnabled
      

      Esaminare i valori per le proprietà restituite nell'output:

      ManagedDiskKeySource                           : Microsoft.Keyvault
      ManagedDiskKeyVaultPropertiesKeyVaultUri       : <key-vault-uri>
      ManagedServicesKeyVaultPropertiesKeyName       : <key-name>
      ManagedServicesKeyVaultPropertiesKeyVersion    : <key-version>
      ManagedDiskRotationToLatestKeyVersionEnabled   : <rotation-enabled>
      
  2. Creare qualsiasi risorsa di calcolo per l'area di lavoro da usare per i test:

  3. Nel portale di Azure fare clic su Aree di lavoro e quindi sul nome dell'area di lavoro.

  4. Nella pagina dell'area di lavoro fare clic sul nome del gruppo di risorse gestito in cui si trova l'area di lavoro.

  5. Nella pagina del gruppo di risorse, in Risorse fare clic sul nome di una macchina virtuale.

  6. Sul lato sinistro della pagina della macchina virtuale, in Impostazioni fare clic su Dischi.

    Nella pagina Dischi dati della pagina Dischi dati verificare che il campo Crittografia per il disco abbia il valore SSE with CMK.

Passaggio 6: Avviare le risorse di calcolo terminate in precedenza

Questo passaggio è necessario solo se è stata aggiornata un'area di lavoro per aggiungere una chiave per la prima volta, nel qual caso sono state terminate le risorse di calcolo in esecuzione in un passaggio precedente. Se è stata creata una nuova area di lavoro o si sta semplicemente ruotando la chiave, le risorse di calcolo non sono state terminate nei passaggi precedenti, nel qual caso è possibile ignorare questo passaggio.

  1. Verificare che l'aggiornamento dell'area di lavoro sia completo. Se la chiave è stata l'unica modifica al modello, questa operazione viene in genere completata in meno di cinque minuti, altrimenti potrebbe richiedere più tempo.
  2. Avviare manualmente tutte le risorse di calcolo terminate in precedenza.

Se le risorse di calcolo non vengono avviate correttamente, in genere è necessario concedere al set di crittografia del disco l'autorizzazione per accedere all'insieme di credenziali delle chiavi.

Ruotare la chiave in un secondo momento

Esistono due tipi di rotazioni delle chiavi in un'area di lavoro esistente che dispone già di una chiave:

  • Rotazione automatica: se rotationToLatestKeyVersionEnabled è true per l'area di lavoro, il set di crittografia del disco rileva la modifica della versione della chiave e punta alla versione della chiave più recente.
  • Rotazione manuale: è possibile aggiornare un'area di lavoro chiave gestita dal cliente con un disco gestito esistente con una nuova chiave. Seguire le istruzioni riportate sopra come se si aggiungesse inizialmente una chiave all'area di lavoro esistente, con la differenza importante è che non è necessario terminare le risorse di calcolo in esecuzione.

Per entrambi i tipi di rotazione, il servizio di archiviazione di macchine virtuali di Azure preleva automaticamente la nuova chiave e la usa per crittografare la chiave di crittografia dei dati. Le risorse di calcolo di Azure Databricks non sono interessate. Per altre informazioni, vedere Chiavi gestite dal cliente nella documentazione di Azure.

Non è necessario terminare le risorse di calcolo prima di ruotare la chiave.

Risoluzione dei problemi

Il cluster ha esito negativo con KeyVaultAccessForbidden

Il problema è che un cluster non inizia con l'errore seguente:

Cloud Provider Launch Failure: KeyVaultAccessForbidden

Concedere il set di crittografia del disco creato nel gruppo di risorse gestite dell'area di lavoro per accedere all'insieme di credenziali delle chiavi. Autorizzazioni necessarie: GET, WRAPKEY, UNWRAPKEY.

Rileggere la sottosezione del Passaggio 4: Creare o aggiornare un'area di lavoro per il tipo di distribuzione e prestare particolare attenzione all'aggiornamento dei criteri di accesso di Key Vault con autorizzazioni specifiche.

Parametri chiave mancanti

Il problema è che mancano i parametri della chiave gestita dal cliente su disco gestito.

Verificare che il modello ARM usi la versione API corretta per la risorsa Microsoft.Databricks/workspaces. La funzionalità chiave gestita dal cliente del disco gestito è disponibile solo con la versione di API uguale o successiva a 2022-04-01-preview. Se si usano altre versioni di API, l'area di lavoro viene creata o aggiornata, ma i parametri del disco gestito vengono ignorati.

L'aggiornamento dell'area di lavoro non riesce con ApplicationUpdateFail

Il problema è un'operazione di aggiornamento o patch dell'area di lavoro non riesce per un'area di lavoro abilitata per il disco gestito con l'errore seguente:

Failed to update application: `<workspace name>`, because patch resource group failure. (Code: ApplicationUpdateFail)

Concedere all'insieme di credenziali delle chiavi l'accesso al set di crittografia del disco, quindi eseguire operazioni di aggiornamento dell'area di lavoro come l'aggiunta di tag.

Criteri di accesso mancanti

Il problema è l'errore seguente:

ERROR CODE: BadRequest MESSAGE: Invalid value found at accessPolicies[14].ObjectId: <objectId>

I criteri di accesso con l'ID oggetto precedente non sono validi nell'insieme di credenziali delle chiavi. È necessario rimuoverlo per aggiungere nuovi criteri di accesso all'insieme di credenziali delle chiavi.

Le chiavi perse non sono recuperabili

Le chiavi perse non sono recuperabili. Se si perde o revoca la chiave e non è possibile recuperarla, le risorse di calcolo di Azure Databricks non funzionano più. Le altre funzioni dell'area di lavoro non sono interessate.

Risorse