Partager via


Configurer les clés managées par le client pour les disques managés Azure

Les charges de travail de calcul Azure Databricks dans le plan de calcul stockent des données temporaires sur des disques managés Azure. Par défaut, les données stockées sur les disques managés sont chiffrées au repos à l’aide du chiffrement côté serveur avec des clés gérées par Microsoft. Cet article explique comment configurer une clé gérée par le client à partir des coffres Azure Key Vault pour votre espace de travail Azure Databricks à utiliser pour le chiffrement de disque managé. Pour obtenir des instructions sur l’utilisation d’une clé des coffres Azure Key Vault, consultez Configurer les clés gérées par le client HSM pour les disques gérés Azure.

Important

  • Les clés gérées par le client pour un stockage sur disque managé s’appliquent à des disques de données, mais pas à des disques de système d’exploitation.
  • Les clés gérées par le client pour le stockage sur disque managé ne s’appliquent pas aux ressources de calcul serverless telles que les entrepôts SQL serverless et le service de modèle. Les disques utilisés pour les ressources de calcul serverless sont de courte durée et liés au cycle de vie de la charge de travail serverless. Lorsque les ressources de calcul sont arrêtées ou mises à l’échelle, les machines virtuelles et leur stockage sont détruits.

Spécifications

  • Votre espace de travail Azure Databricks doit être au plan Premium.

  • Votre espace de travail Azure Key Vault et Azure Databricks doivent se trouver dans la même région et dans le même locataire Microsoft Entra ID. Ils peuvent être liés à des abonnements différents.

  • Si vous souhaitez activer la rotation automatique, seuls les clés logicielles et RSA HSM de tailles 2048 bits, 3072 bits et 4096 bits sont prises en charge.

  • Cette fonctionnalité n’est pas prise en charge pour les espaces de travail conformes à FedRAMP . Contactez l’équipe de votre compte Azure Databricks pour plus d’informations.

  • Pour utiliser Azure CLI pour ces tâches, installez l’outil Azure CLI et installez l’extension Databricks :

    az extension add --name databricks
    
  • Pour utiliser PowerShell pour ces tâches, installez Azure PowerShell et installez le module PowerShell Databricks. Vous devez également vous connecter :

    Connect-AzAccount
    

    Pour vous connecter à votre compte Azure en tant qu’utilisateur, consultez Connexion PowerShell avec un compte utilisateur Azure Databricks. Pour vous connecter à votre compte Azure en tant que principal de service, consultez Connexion PowerShell avec un principal de service Microsoft Entra ID.

Étape 1 : créer un coffre de clés

Vous pouvez créer un coffre de clés de nombreuses façons, notamment via le Portail Azure, Azure CLI, PowerShell et éventuellement à l’aide de modèles ARM. Les sections suivantes fournissent des procédures pour l’utilisation d’Azure CLI et de PowerShell. Pour d’autres approches, reportez-vous à la documentation Microsoft.

Utiliser l’interface de ligne de commande Microsoft Azure

  1. Créer un coffre de clés :

    az keyvault create --name <keyVaultName> --resource-group <resourceGroupName> --location <location> --sku <sku> --enable-purge-protection
    
  2. Obtenir l’URI du coffre :

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

    Copiez la valeur vaultUri de la réponse.

Utiliser PowerShell

Créer un nouveau coffre :

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

Utiliser un coffre de clés existant :

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

Étape 2 : préparer une clé

Vous pouvez créer une clé ou récupérer une clé existante stockée dans Azure Key Vault à l’aide du Portail Azure, d’Azure CLI, de PowerShell et éventuellement à l’aide de modèles ARM. Cette section fournit des procédures pour Azure CLI et PowerShell. Pour d’autres méthodes, consultez la documentation sur les clés Azure.

Utiliser l’interface de ligne de commande Microsoft Azure

Vous pouvez créer une clé ou récupérer une clé existante.

Créer une clé :

  1. Exécutez la commande suivante :

    az keyvault key create \
    --name <key-name> \
    --vault-name <key-vault-name> \
    --protection software
    
  2. Prenez note des valeurs suivantes dans le résultat :

    • Nom du coffre de clés : nom de votre coffre de clés
    • Nom de clé : le nom de votre clé
    • Version de clé : la version de votre clé.
    • Groupe de ressources Key Vault : groupe de ressources de votre Key Vault
  3. Obtenir les informations de la clé :

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

    Copiez la valeur du champ kid, qui est votre ID de clé.

    L’ID complet de la clé se présente généralement sous la forme https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>. Les clés Azure Key Vault qui se trouvent dans un cloud non public ont une forme différente.

Récupérer une clé existante :

  1. Exécutez la commande suivante :

    az keyvault key show --name <key-name> --vault-name <key-vault-name>
    
  2. Notez les détails suivants pour votre clé existante :

    • Nom du coffre de clés : nom de votre coffre de clés.
    • Nom de clé : le nom de votre clé.
    • Version de clé : la version de votre clé.
    • Groupe de ressources du coffre de clés : groupe de ressources de votre coffre de clés.
  3. Obtenir les informations de la clé :

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

    Copiez la valeur du champ kid, qui est votre ID de clé.

    L’ID complet de la clé se présente généralement sous la forme https://<key-vault-name>.vault.azure.net/keys/<key-name>/<key-version>. Les clés Azure Key Vault qui se trouvent dans un cloud non public ont une forme différente.

  4. Vérifiez que votre clé existante est activée avant de continuer en exécutant az keyvault key show --name <key name> à nouveau. La sortie affiche "enabled": true.

Utiliser PowerShell

  1. Si vous envisagez de créer une clé, vous devrez peut-être définir la stratégie d’accès, en fonction de la façon et du moment où vous l’avez créée. Par exemple, si vous avez récemment créé le coffre de clés à l’aide de PowerShell, votre nouveau coffre de clés peut ne pas avoir la stratégie d’accès requise pour créer une clé. L’exemple suivant utilise le paramètre EmailAddress pour définir la stratégie. Pour plus d’informations, consultez l’article Microsoft sur Set-AzKeyVaultAccessPolicy.

    Définissez la stratégie d’accès sur un nouveau coffre de clés :

    Set-AzKeyVaultAccessPolicy \
    -VaultName $keyVault.VaultName \
    -PermissionsToKeys all \
    -EmailAddress <email-address>
    
  2. Vous pouvez créer une clé ou récupérer une clé existante :

    • Créer une clé :

      $key = Add-AzKeyVaultKey \
      -VaultName $keyVault.VaultName \
      -Name <key-name> \
      -Destination 'Software'
      
    • Récupérer une clé existante :

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

Étape 3 : Arrêter toutes les ressources de calcul

Terminez toutes les ressources de calcul (clusters, pools et entrepôts SQL) dans votre espace de travail.

Étape 4 : créer ou mettre à jour un espace de travail

Pour créer ou mettre à jour un espace de travail avec une clé gérée par le client pour les disques managés, choisissez l’une des stratégies de déploiement suivantes :

Utiliser le Portail Azure (aucun modèle)

Cette section explique comment utiliser le Portail Azure pour créer ou mettre à jour un espace de travail avec des clés gérées par le client pour les disques managés sans utiliser de modèle.

  1. Commencez à créer ou à mettre à jour un espace de travail :

    Créez un espace de travail avec une clé :

    1. Accédez à la page d’accueil du portail Azure et cliquez sur Créer une ressource dans le coin supérieur gauche de la page.
    2. Dans la barre de recherche, tapez Azure Databricks et cliquez sur Azure Databricks.
    3. Sélectionnez Créer dans le widget Azure Databricks.
    4. Entrez des valeurs dans les champs de formulaire sous les onglets Concepts de base et Mise en réseau.
    5. Sous l’onglet Chiffrement, cochez la case Utiliser votre propre clé dans la section Disques managés.

    Ajoutez initialement une clé à un espace de travail existant :

    1. Accédez à la page d’accueil du Portail Azure pour Azure Databricks.
    2. Accédez à votre espace de travail Azure Databricks existant.
    3. Ouvrez l’onglet Chiffrement dans le volet gauche.
    4. Dans la section Clés gérées par le client, activez Disques managés.
  2. Définissez les champs de chiffrement.

    • Dans le champ Identificateur de clé, collez l’identificateur de clé de votre clé Azure Key Vault.
    • Dans la liste déroulante Abonnement, entrez le nom de l’abonnement de votre clé Azure Key Vault.
    • Pour activer la rotation automatique de votre clé, activez Activer la rotation automatique de la clé.
  3. Complétez les onglets restants, puis cliquez sur Vérifier + créer (pour un nouvel espace de travail) ou sur Enregistrer (pour mettre à jour un espace de travail).

  4. Une fois votre espace de travail déployé, accédez à votre nouvel espace de travail Azure Databricks.

  5. Sous l’onglet Vue d’ensemble de votre espace de travail Azure Databricks, cliquez sur Groupe de ressources managés.

  6. Sous l’onglet Vue d’ensemble du groupe de ressources managé, recherchez l’objet de type Jeu de chiffrement de disque qui a été créé dans ce groupe de ressources. Copiez le nom du jeu de chiffrement de disque.

  7. Dans le portail Azure, accédez au Key Vault Azure qui a été utilisé pour configurer la clé que vous utilisez pour cette fonctionnalité.

  8. Ouvrez l’onglet Stratégies d’accès dans le volet de gauche. Une fois l’onglet ouvert, cliquez sur Créer en haut de la page.

  9. Sous l’onglet Autorisations, sous la section Autorisations de clé, activez Get, Unwrap Key et Wrap key.

  10. Cliquez sur Suivant.

  11. Sous l’onglet Principal, entrez le nom du jeu de chiffrement de disque dans le groupe de ressources managé de votre espace de travail Azure Databricks dans la barre de recherche. Sélectionnez le résultat, puis cliquez sur Suivant.

    Entrez le nom du jeu de chiffrement de disque et sélectionnez le résultat

  12. Cliquez sur l’onglet Vérifier + créer, puis cliquez sur Créer.

Utiliser Azure CLI (aucun modèle)

Pour les espaces de travail nouveaux et mis à jour, ajoutez ces paramètres à votre commande :

  • disk-key-name : nom de la clé
  • disk-key-vault : nom du coffre
  • disk-key-version: version de clé. Utilisez la version de clé spécifique et non latest.
  • disk-key-auto-rotation : activez la rotation automatique de la clé (true ou false). Ce champ est facultatif. Par défaut, il s’agit de false.

Dans les commandes suivantes, utilisez la valeur URI du coffre de la réponse à l’étape précédente à la place de <key-vault-uri>. En outre, les valeurs de nom de clé et de version de clé se trouvent dans la valeur kid de la réponse de l’étape précédente.

  1. Créer ou mettre à jour un espace de travail :

    • Exemple de création d’un espace de travail à l’aide de ces paramètres de disque managé :

      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>
      
    • Exemple de mise à jour d’un espace de travail à l’aide de ces paramètres de disque managé :

      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>
      

    Dans la sortie de l’une de ces commandes, il existe un objet managedDiskIdentity. Enregistrez la valeur de la propriété principalId dans cet objet. Il est utilisé dans une étape ultérieure comme ID principal.

  2. Ajoutez une politique d’accès avec autorisation de clé au coffre de clés. Utilisez le nom du coffre et l’ID principal des étapes précédentes :

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

Utiliser PowerShell (aucun modèle)

Pour les espaces de travail nouveaux et mis à jour, ajoutez ces paramètres à votre commande :

  • location : emplacement de l’espace de travail
  • ManagedDiskKeyVaultPropertiesKeyName : nom de la clé
  • ManagedDiskKeyVaultPropertiesKeyVaultUri : URI du coffre de clés
  • ManagedDiskKeyVaultPropertiesKeyVersion: version de clé. Utilisez la version de clé spécifique et non latest.
  • ManagedDiskRotationToLatestKeyVersionEnabled : activez la rotation automatique de la clé (true ou false). Ce champ est facultatif. La valeur par défaut est false.
  1. Créer ou mettre à jour un espace de travail :

    • Exemple de création d’un espace de travail à l’aide des paramètres de disque managé :

      $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
      
    • Exemple de mise à jour d’un espace de travail à l’aide de paramètres de disque managé :

      $workspace = Update-AzDatabricksworkspace -Name <workspace-name> \
      -ResourceGroupName <resource-group-name> \
      -ManagedDiskKeyVaultPropertiesKeyName $key.Name \
      -ManagedDiskKeyVaultPropertiesKeyVaultUri $keyVault.VaultUri \
      -ManagedDiskKeyVaultPropertiesKeyVersion $key.Version -ManagedDiskRotationToLatestKeyVersionEnabled
      
  2. Ajouter une politique d’accès avec autorisations de clé au coffre de clés :

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

Utiliser un modèle ARM (Portail Azure ou CLI)

Vous pouvez explorer les modèles de démarrage rapide Azure dans la documentation Azure. Pour obtenir la liste des options de déploiement de modèles ARM, consultez la documentation relative aux modèles ARM.

Lorsque vous créez un espace de travail, une ressource de jeu de chiffrement de disque est également créée dans le groupe de ressources managé de votre espace de travail. Il a une identité managée affectée par le système qui est utilisée pour accéder à votre Key Vault. Avant que le calcul Azure Databricks puisse utiliser cette clé pour chiffrer vos données, vous devez récupérer l’ID principal du jeu de chiffrement de disque, puis accorder à l’identité les autorisations de clé GET, WRAP et UNWRAP à votre Key Vault.

Databricks vous recommande de créer ou de mettre à jour l’espace de travail et d’accorder des autorisations de Key Vault dans le même déploiement de modèle. Vous devez créer ou mettre à jour l’espace de travail avant d’accorder des autorisations de Key Vault, à une exception près. Si vous mettez à jour un espace de travail de clé gérée par le client de disque managé existant pour utiliser une nouvelle clé dans un nouveau coffre de clés, vous devez accorder au jeu de chiffrement de disque existant l’autorisation d’accéder au nouveau Key Vault, puis mettre à jour l’espace de travail avec la nouvelle configuration de clé.

L’exemple de modèle de cette section effectue les deux opérations suivantes :

  • Crée ou met à jour un espace de travail pour ajouter des paramètres de clé gérés par le client de disque managé
  • Octroie au jeu de chiffrement de disque l’accès à votre Key Vault

Vous pouvez utiliser l’exemple de modèle ARM suivant, qui effectue deux opérations :

  • Créer ou mettre à jour un espace de travail avec une clé gérée par le client de disque managé.
  • Créer une stratégie d’accès à la clé.

Si vous utilisez déjà un modèle ARM, vous pouvez fusionner les paramètres, les ressources et les sorties de l’exemple de modèle dans votre modèle existant.

{
   "$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. Use the specific key version and not `latest`."
           }
       },
       "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')))]"
       }
   }
}

Utilisez le modèle avec tous les outils de votre choix, notamment le portail Azure, l’interface CLI ou d’autres outils. Les détails sont inclus pour les stratégies de déploiement de modèles suivants :

Appliquer un modèle ARM à l’aide du portail Azure

Pour créer ou mettre à jour un espace de travail à l’aide d’un modèle ARM dans le Portail Azure, procédez comme suit :

  1. Connectez-vous au portail Azure.

  2. Cliquez sur Créer une ressource, puis sur Template deployment (déployer à l’aide de modèles personnalisés).

  3. Dans la page Déploiement personnalisé, cliquez sur Créer votre propre modèle dans l’éditeur.

  4. Collez le contenu de l’exemple de modèle dans l’éditeur.

    Page Modifier le déploiement du portail de déploiement personnalisé Azure

  5. Cliquez sur Enregistrer.

  6. Entrez vos valeurs de paramètres.

    Pour mettre à jour un espace de travail existant, utilisez les mêmes paramètres que ceux que vous avez utilisés pour créer l’espace de travail. Pour ajouter une clé gérée par le client pour la première fois, ajoutez les paramètres liés à la clé sous resources.properties.encryption.entities.managedDisk, comme indiqué dans le modèle ci-dessus. Pour faire pivoter la clé, modifiez tout ou partie des paramètres associés à la clé.

    Important

    Si vous mettez à jour un espace de travail, le nom du groupe de ressources et le nom de l’espace de travail dans le modèle doivent être identiques au nom du groupe de ressources et au nom de l’espace de travail de votre espace de travail existant.

    Page Détails du projet du portail de déploiement personnalisé Azure

  7. Cliquez sur Revoir + créer.

  8. Résolvez les problèmes de validation, puis cliquez sur Créer.

Important

Si vous faites pivoter une clé, ne supprimez l’ancienne clé qu’une fois la mise à jour de l’espace de travail terminée.

Appliquer un modèle ARM à l’aide d’Azure CLI

Cette section explique comment créer ou mettre à jour un espace de travail avec votre clé à l’aide d’un modèle ARM avec Azure CLI.

  1. Vérifiez si votre modèle inclut la section pour resources.properties.encryption.entities.managedDisk et ses paramètres keyvaultName, keyName, keyVersion et keyVaultResourceGroupName associés. S’ils sont absents, consultez plus haut dans cette section pour obtenir un exemple de modèle, et fusionner cette section et les paramètres dans votre modèle.

  2. Exécutez la commande az deployment group create. Si le nom du groupe de ressources et le nom de l’espace de travail sont identiques au nom du groupe de ressources et au nom de l’espace de travail d’un espace de travail existant, cette commande met à jour l’espace de travail existant au lieu de créer un espace de travail. Si vous mettez à jour un déploiement existant, veillez à utiliser le même groupe de ressources et le même nom d’espace de travail que celui utilisé précédemment.

    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>
    

    Important

    Si vous changez une clé, vous pouvez supprimer l’ancienne clé uniquement quand la mise à jour de l’espace de travail est terminée.

Étape 5 : vérifier que vos ressources de calcul utilisent votre clé (facultatif)

Pour vérifier que la fonctionnalité de clé gérée par le client du disque managé est activée pour l’espace de travail :

  1. Récupérez les détails de votre espace de travail Azure Databricks en effectuant l’une des opérations suivantes :

    • Portail Azure

      1. Dans le Portail Azure, cliquez sur Espaces de travail, puis sur le nom de votre espace de travail.
      2. Dans la page de l’espace de travail, cliquez suraffichage JSON.
      3. Cliquez sur une version d’API égale ou supérieure à la version 2022-04-01-preview de l’API.
    • Azure CLI

      Exécutez la commande suivante :

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

      Les paramètres de chiffrement de disque managé se trouvent sous properties. Par exemple :

      "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
      

      Passez en revue les valeurs des propriétés retournées dans la sortie :

      ManagedDiskKeySource                           : Microsoft.Keyvault
      ManagedDiskKeyVaultPropertiesKeyVaultUri       : <key-vault-uri>
      ManagedServicesKeyVaultPropertiesKeyName       : <key-name>
      ManagedServicesKeyVaultPropertiesKeyVersion    : <key-version>
      ManagedDiskRotationToLatestKeyVersionEnabled   : <rotation-enabled>
      
  2. Créez une ressource de calcul pour votre espace de travail à utiliser pour le test :

    Si une ressource de calcul ne parvient pas à démarrer correctement, c’est généralement parce que vous devez accorder au jeu de chiffrement de disque les autorisations appropriées pour accéder à votre Key Vault.

  3. Dans le Portail Azure, cliquez sur Espaces de travail, puis sur le nom de votre espace de travail.

  4. Dans la page de l’espace de travail, cliquez sur le nom du groupe de ressources managé dans lequel se trouve votre espace de travail.

  5. Dans la page du groupe de ressources, sous Ressources, cliquez sur le nom d’une machine virtuelle.

  6. Sur le côté gauche de la page de la machine virtuelle, sous Paramètres, cliquez sur Disques.

    Sur la page Disques, sous Disques de données, vérifiez que le champ Chiffrement de votre disque a la valeur SSE with CMK.

Étape 6 : démarrer toutes les ressources de calcul précédemment arrêtées

  1. Vérifiez que la mise à jour de l’espace de travail est terminée. Si la clé était la seule modification apportée au modèle, cela se termine généralement en moins de cinq minutes, sinon cela peut prendre plus de temps.
  2. Démarrez manuellement toutes les ressources de calcul que vous avez arrêtées précédemment.

Si des ressources de calcul ne parviennent pas à démarrer correctement, c’est généralement parce que vous devez accorder au jeu de chiffrement de disque l’autorisation d’accéder à votre Key Vault.

Faire pivoter la clé ultérieurement

Il existe deux types de rotations de clés sur un espace de travail existant qui dispose déjà d’une clé :

  • Rotation automatique : si rotationToLatestKeyVersionEnabled est true pour votre espace de travail, le jeu de chiffrement de disque détecte le changement de version de clé et pointe vers la dernière version de clé.
  • Rotation manuelle : vous pouvez mettre à jour un espace de travail de clé gérée par le client de disque managé existant avec une nouvelle clé. Suivez les instructions ci-dessus comme si vous ajoutiez initialement une clé à un espace de travail existant.

Résolution des problèmes

Le cluster échoue avec KeyVaultAccessForbidden

Problème : votre cluster ne parvient pas à démarrer avec l’erreur suivante :

Cloud Provider Launch Failure: KeyVaultAccessForbidden

Accordez au jeu de chiffrement de disque créé dans le groupe de ressources managé de votre espace de travail l’autorisation d’accéder à votre coffre de clés. Autorisations nécessaires : GET, WRAPKEY, UNWRAPKEY.

Relisez la sous-section de l’étape 4 : créer ou mettre à jour un espace de travail pour votre type de déploiement et prêtez une attention particulière à la mise à jour de la stratégie d’accès du coffre de clés avec des autorisations spécifiques.

Les paramètres de clé sont manquants

Problème : les paramètres de clé gérés par le client du disque managé sont manquants.

Vérifiez que votre modèle ARM utilise la version d’API appropriée pour la ressource Microsoft.Databricks/workspaces. La fonctionnalité de clé gérée par le client du disque managé n’est disponible qu’avec la version de l’API égale ou supérieure à 2022-04-01-preview. Si vous utilisez d’autres versions d’API, l’espace de travail est créé ou mis à jour, mais les paramètres de disque managé sont ignorés.

Échec de la mise à jour de l’espace de travail avec ApplicationUpdateFail

Problème : l’opération de mise à jour ou de correctif de l’espace de travail échoue pour un espace de travail avec disque managé avec l’erreur suivante :

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

Accordez au jeu de chiffrement de disque l’accès à votre coffre de clés, puis effectuez des opérations de mise à jour de l’espace de travail telles que l’ajout de balises.

Stratégie d’accès manquante

Le problème est l’erreur suivante :

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

La stratégie d’accès avec l’ID d’objet ci-dessus n’est pas valide dans votre coffre de clés. Vous devez la supprimer pour ajouter de nouvelles stratégies d’accès à votre coffre de clés.

Les clés perdues sont irrécupérables

Les clés perdues ne peuvent pas être récupérées. Si vous perdez ou révoquez votre clé et que vous ne pouvez pas la récupérer, les ressources de calcul Azure Databricks ne fonctionnent plus. Les autres fonctions de l’espace de travail ne sont pas affectées.

Ressources