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, si veda Configurare le chiavi gestite dal cliente del modulo di protezione hardware per i dischi gestiti in 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, come 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 VM e le relative risorse di archiviazione vengono eliminate definitivamente.

Requisiti

Passaggio 1: Creare un insieme di credenziali delle chiavi

È possibile creare un insieme di credenziali delle chiavi in molti modi, tra cui utilizzando portale di Azure, l’interfaccia della riga di comando di Azure, PowerShell e opzionalmente usando i modelli di ARM. Le seguenti sezioni forniscono istruzioni per l’utilizzo dell’interfaccia della riga di comando di Azure o Powershell. Per altri approcci, si veda 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 valore vaultUri della 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

Accedere a 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 opzionalmente usando i modelli di ARM. Questa sezione illustra le procedure per l'interfaccia della riga di comando di Azure e PowerShell. Per altri modi, si veda la documentazione sulle chiavi di Azure.

Utilizzare l'interfaccia della riga di comando di Azure

È possibile creare una nuova chiave o recuperarne una 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 seguenti valori dell'output:

    • Nome dell'insieme di credenziali delle chiavi: il nome dell'insieme di credenziali delle chiavi.
    • Nome chiave: il 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 sulla chiave:

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

    Copiare il valore del campo kid, ovvero l'ID 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 seguenti dettagli per la chiave esistente:

    • Nome dell'insieme di credenziali delle chiavi: il nome dell'insieme di credenziali delle chiavi.
    • Nome chiave: il 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 sulla chiave:

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

    Copiare il valore del campo kid, ovvero l'ID 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 eseguendo az keyvault key show --name <key name> di nuovo. L'output visualizza "enabled": true.

Usare PowerShell

  1. Se si intende creare una chiave, potrebbe essere necessario impostare criteri di accesso, a seconda di come e quando è stata creata. 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 parametro EmailAddress per impostare i criteri. Per informazioni dettagliate, si veda l'articolo di Microsoft su Set-AzKeyVaultAccessPolicy.

    Impostare un criterio di accesso per un nuovo insieme di credenziali delle chiavi.

    Set-AzKeyVaultAccessPolicy \
    -VaultName $keyVault.VaultName \
    -PermissionsToKeys all \
    -EmailAddress <email-address>
    
  2. È possibile creare una nuova chiave o recuperarne una 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

Terminare tutte le risorse di calcolo (cluster, pool e warehouse SQL) dell'area di lavoro.

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 seguenti strategie di distribuzione:

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

  1. Iniziare creando o aggiornando un'area di lavoro:

    Creare una nuova area di lavoro con una chiave:

    1. Andare alla home page del portale di Azure and fare clic sull'opzione Crea una risorsa in alto a sinistra.
    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 delle schede Informazioni di base e Rete.
    5. Nella scheda Crittografia selezionare la casella di controllo Usa chiave propria nella sezione Dischi gestiti.

    Aggiungere una chiave a un'area di lavoro esistente:

    1. Passare alla home page del portale di Azure per Azure Databricks.
    2. Passare all'area di lavoro esistente di Azure Databricks.
    3. Aprire la scheda Crittografia nel riquadro a sinistra.
    4. Nella sezione Chiavi gestite dal cliente abilitare Dischi gestiti.
  2. Impostare i campi di crittografia.

    Visualizzare i campi nella sezione Dischi gestiti del pannello Azure Databricks

    • Nel campo Identificatore chiave incollare l'identificatore 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, attivare l’opzione Abilita rotazione automatica della chiave.
  3. Compilare le schede rimanenti e fare clic su Rivedi + crea (per una nuova area di lavoro) oppure su Salva (per aggiornare un'area di lavoro esistente).

  4. Una volta implementata l'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. Nel portale di Azure passare ad Azure Key Vault usato per configurare la chiave in uso per questa funzionalità.

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

  9. Nella scheda Autorizzazioni della sezione Autorizzazioni chiave abilitare Recupera, Annulla il wrapping della chiave ed Esegui il wrapping della chiave.

  10. Fare clic su Avanti.

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

    Immettere il nome del set di crittografia del disco e selezionare il risultato

  12. Fare clic su Rivedi + crea e poi 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 della 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 di cui al 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 valore kid 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 oggetto managedDiskIdentity. Salvare il valore della proprietà principalId dell'oggetto. Viene utilizzato in un passaggio successivo come ID entità.

  2. Aggiungere un criterio di accesso con autorizzazione chiavi per un 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 nell'area di lavoro
  • ManagedDiskKeyVaultPropertiesKeyName: Nome chiave
  • ManagedDiskKeyVaultPropertiesKeyVaultUri: URI dell’insieme di credenziali delle chiavi
  • ManagedDiskKeyVaultPropertiesKeyVersion: Versione della 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 utilizzando 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 utilizzando 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 autorizzazione chiavi per un 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 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 ARM, si veda la documentazione dei modelli ARM.

Quando si crea un'area di lavoro, viene creata anche una risorsa del set di crittografia dischi all'interno del gruppo di risorse gestite dell'area di lavoro. Ha un'identità gestita assegnata dal sistema utilizzata 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, poi concedere all'identità le autorizzazioni GET, WRAP e UNWRAP per l'insieme di credenziali delle chiavi.

Databricks raccomanda di creare o aggiornare l'area di lavoro e concedere le autorizzazioni per l'insieme di credenziali delle chiavi nella stessa distribuzione del modello. È necessario creare o aggiornare l'area di lavoro prima di concedere le autorizzazioni per l'insieme di credenziali delle chiavi, con un'unica eccezione. Se si aggiorna un'area di lavoro esistente con chiavi gestite dal cliente per utilizzare una nuova chiave in un nuovo insieme di credenziali delle chiavi, è necessario concedere al set di crittografia del disco esistente l'autorizzazione ad accedere al nuovo insieme di credenziali delle chiavi e poi aggiornare l'area di lavoro con la configurazione della nuova chiave.

Il modello di esempio presentato in questa sezione esegue entrambe le operazioni descritte di seguito:

  • 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 dischi

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

  • Crea o aggiorna un'area di lavoro con una chiave gestita dal cliente del disco gestito.
  • Creare criteri di accesso alle chiavi

Se si usa già un modello di ARM, è 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 il portale di Azure, l’interfaccia della riga di comando o altri strumenti. Sono inclusi dettagli per le seguenti strategie di implementazione dei modelli:

Applicare un modello di ARM usando il portale di Azure

Per creare o aggiornare un'area di lavoro usando un modello di ARM nel portale di Azure, eseguire le seguenti operazioni:

  1. Accedere al portale di Azure.

  2. Fare clic su Crea una risorsa, e poi su Distribuzione modello (distribuire usando modelli personalizzati).

  3. Nel pannello Distribuzione personalizzata fare clic su Crea un modello personalizzato nell'editor.

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

    Pagina Modifica distribuzione del portale di distribuzione personalizzata di Azure

  5. Fare clic su Salva.

  6. Immettere i valori dei parametri.

    Per aggiornare un'area di lavoro esistente, utilizzare gli stessi parametri usati per creare l'area di lavoro. Per aggiungere per la prima volta una chiave gestita dal cliente, aggiungere i parametri correlati alla chiave in resources.properties.encryption.entities.managedDisk come illustrato nel modello qui sopra. 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 del modello devono essere identici al nome del gruppo di risorse e al nome dell'area di lavoro esistente.

    Pagina Dettagli progetto del portale di distribuzione personalizzata di Azure

  7. Fare clic su Rivedi e crea.

  8. Risolvere eventuali problemi di convalida e poi fare clic su Crea.

Importante

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

Applicare un modello di ARM usando l’interfaccia della riga di comando di Azure

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

  1. Controllare se il modello comprende la sezione per resources.properties.encryption.entities.managedDisk e i parametri correlati keyvaultName, keyName, keyVersion e keyVaultResourceGroupName. Se non sono presenti, si veda la parte precedente di questa sezione per un modello di esempio e unire quella sezione e i parametri nel modello.

  2. 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 di 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 per l'area di lavoro utilizzati 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, non è possibile eliminare la chiave precedente fino al completo 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 seguenti operazioni:

    • Portale di Azure

      1. Nel portale di Azure fare clic su Aree di lavoro e poi sul nome dell'area di lavoro.
      2. Nella pagina dell'area di lavoro fare clic su Visualizza 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:

    Se l'avvio di una risorsa di calcolo non riesce, in genere è necessario concedere al set di crittografia del disco le autorizzazioni appropriate per accedere all'insieme di credenziali delle chiavi.

  3. Nel portale di Azure fare clic su Aree di lavoro e poi 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. Sulla sinistra della pagina della macchina virtuale, in Impostazioni, fare clic su Dischi.

    Nella pagina Dischi, alla voce 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

  1. Verificare che l'aggiornamento dell'area di lavoro sia completato. 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 l'avvio di una risorsa di calcolo non riesce, in genere è necessario concedere al set di crittografia del disco le autorizzazioni appropriate 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 in cui c’è già 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 esistente di chiavi gestite dal cliente con una nuova chiave. Seguire le istruzioni riportate in precedenza come per l’aggiunta iniziale di una chiave all'area di lavoro esistente.

Risoluzione dei problemi

Il cluster ha esito negativo con KeyVaultAccessForbidden

Il problema è che un cluster non riesce ad avviarsi, generando il seguente errore:

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 per il 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 è che un'operazione di aggiornamento o patch dell'area di lavoro non riesce per un'area di lavoro abilitata al disco gestito, generando il seguente errore:

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, poi eseguire le operazioni di aggiornamento dell'area di lavoro come l'aggiunta di tag.

Criteri di accesso mancanti

Il problema è il seguente errore:

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