Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Cet article décrit les modèles hérités de configuration de l’accès à Azure Data Lake Storage. Databricks recommande d’utiliser Unity Catalog. Consultez Créer un metastore de catalogue Unity et se connecter au stockage d’objets cloud à l’aide du catalogue Unity.
Ce tutoriel vous guide tout au long des étapes nécessaires à la connexion d’Azure Databricks à Azure Data Lake Storage à l’aide d’OAuth 2.0 avec un principal de service Microsoft Entra ID.
Spécifications
Avant de commencer ce tutoriel, effectuez les tâches suivantes :
- Créer un espace de travail Azure Databricks. Consultez Démarrage rapide : Créer un espace de travail Azure Databricks
- Créez un compte de stockage Azure Data Lake Storage. Consultez démarrage rapide : Créer un compte de stockage Azure Data Lake Storage.
- Créez un coffre de clés Azure. Consultez Démarrage rapide : créer un coffre Azure Key Vault
Étape 1 : Créer un principal de service Microsoft Entra ID
Pour utiliser les "service principals" pour se connecter à Azure Data Lake Storage, un utilisateur administrateur doit créer une nouvelle application Microsoft Entra ID. Si vous disposez déjà d’un principal de service Microsoft Entra ID, passez à l’Étape 2 : créer une clé secrète client pour votre principal de service.
Pour créer un principal de service Microsoft Entra ID, suivez ces instructions :
Connectez-vous au portail Azure.
Remarque
Le portail à utiliser est différent selon que votre application Microsoft Entra ID s’exécute dans le cloud public Azure ou dans un cloud national ou souverain. Pour plus d’informations, voir Clouds nationaux
Si vous avez accès à plusieurs locataires, abonnements ou répertoires, cliquez sur l’icône Répertoires + abonnements (répertoire avec filtre) dans le menu supérieur pour basculer vers le répertoire dans lequel vous souhaitez approvisionner le principal de service.
Recherchez et sélectionnez <Microsoft Entra ID.
Dans Gérer, cliquez sur Inscriptions d’applications > Nouvelle inscription.
Dans Nom, entrez le nom de l’application.
Dans la section Types de comptes pris en charge, sélectionnez Comptes de cet annuaire organisationnel uniquement (Locataire unique).
Cliquez sur S'inscrire.
Étape 2 : Créer une clé secrète client pour votre principal de service
Dans Gérer, cliquez sur Certificats et secrets.
Sous l’onglet Clés secrètes client, cliquez sur Nouvelle clé secrète client.
Dans le volet Ajouter une clé secrète client, pour Description, entrez une description pour la clé secrète client.
Pour Expirer, sélectionnez une période d’expiration pour la clé secrète client, puis cliquez sur Ajouter.
Copiez et stockez la valeur de la clé secrète client dans un emplacement sécurisé, car ce secret client est le mot de passe de votre application.
Dans la page Vue d’ensemble de la page d’application, dans la section Essentials , copiez les valeurs suivantes :
- ID d’application (client)
- ID de l’annuaire (locataire)
Étape 3 : Accorder au principal de service l’accès à Azure Data Lake Storage
Vous accordez l’accès aux ressources de stockage en attribuant des rôles à votre principal de service. Dans ce tutoriel, vous attribuez le rôle de contributeur de données Blob de stockage au principal de service sur votre compte Azure Data Lake Storage. Vous devrez peut-être attribuer d’autres rôles en fonction d’exigences spécifiques.
- Dans le portail Azure, accédez au service Comptes de stockage.
- Sélectionnez le compte de stockage Azure à utiliser.
- Cliquez sur Contrôle d’accès (IAM).
- Cliquez sur + Ajouter et sélectionnez Ajouter une attribution de rôle dans le menu déroulant.
- Définissez le champ Sélectionner sur le nom de l’application Microsoft Entra ID que vous avez créé à l’étape 1 et définissez Rôle sur Contributeur aux données Blob de stockage.
- Cliquez sur Enregistrer.
Étape 4 : Ajouter la clé secrète client à Azure Key Vault
Vous pouvez stocker la clé secrète client de l’étape 1 dans Azure Key Vault.
- Dans le portail Microsoft Azure, accédez au service Key vault.
- Sélectionnez un coffre de clés Azure à utiliser.
- Dans les pages des paramètres de coffre de clés, sélectionnez Secrets.
- Cliquez sur + Générer/Importer.
- Dans les options de chargement, sélectionnez Manuel.
- Dans le champ Nom, attribuez un nom au secret. Le nom du secret doit être unique dans le coffre de clés.
- Pour Valeur, collez la clé secrète client que vous avez stockée à l’étape 1.
- Cliquez sur Créer.
Étape 5 : Configurer votre instance de coffre de clés Azure pour Azure Databricks
Dans le portail Azure, accédez à l’instance du coffre de clés Azure.
Sous Paramètres, sélectionnez l’onglet Configuration d’Access .
Définissez Modèle d’autorisation sur Stratégie d’accès au coffre.
Remarque
La création d’un rôle d’étendue de secrets reposant sur Azure Key Vault accorde les autorisations Get et List à l’ID de l’application du service Azure Databricks à l’aide de stratégies d’accès au coffre de clés. Le modèle d’autorisation de contrôle d’accès en fonction du rôle Azure n’est pas pris en charge avec Azure Databricks.
Sous Paramètres, sélectionnez Mise en réseau.
Dans Pare-feu et réseaux virtuels, définissez Autoriser l’accès à partir de : à Autoriser l’accès public à partir de réseaux virtuels spécifiques et des adresses IP.
Sous Exception, cochez la case Autoriser les services Microsoft approuvés pour contourner ce pare-feu.
Remarque
Vous pouvez également définir Autoriser l’accès à partir de : sur Autoriser l’accès public à partir de tous les réseaux.
Étape 6 : Créer une étendue secrète sauvegardée par Azure Key Vault dans votre espace de travail Azure Databricks
Pour référencer des clés secrètes clients stockées dans Azure Key Vault, vous pouvez créer une étendue de secrets sauvegardée par Azure Key Vault dans Azure Databricks.
Atteindre
https://<databricks-instance>#secrets/createScope
. Cette URL respecte la casse ; l’étendue danscreateScope
doit être en majuscules.Entrez le nom de l’étendue de secrets. Les noms d’étendues de secrets ne respectent pas la casse.
Utilisez la liste déroulante Gérer le principal pour spécifier si Tous les utilisateurs disposent de l’autorisation
MANAGE
pour cette étendue de secrets ou uniquement le Créateur de l’étendue de secrets (autrement dit, vous).Entrez le nom DNS (par exemple,
https://databrickskv.vault.azure.net/
) et l'ID de ressource, par exemple :/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
Ces propriétés sont disponibles sous l’onglet *Propriétés des paramètres > d’un coffre de clés Azure dans votre portail Azure.
Cliquez sur le bouton Créer.
Étape 7 : Se connecter à Azure Data Lake Storage à l’aide de Python
Vous pouvez désormais accéder de manière sécurisée aux données du compte de stockage Azure à l’aide d’OAuth 2.0 avec votre principal de service d’application Microsoft Entra ID pour l’authentification à partir d’un notebook Azure Databricks.
Accédez à votre espace de travail Azure Databricks et créez une bibliothèque python.
Exécutez le code Python suivant, avec les remplacements ci-dessous, pour vous connecter à Azure Data Lake Storage.
service_credential = dbutils.secrets.get(scope="<scope>",key="<service-credential-key>") spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth") spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider") spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>") spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential) spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
Remplacer
-
<scope>
avec le nom de l’étendue du secret à l’étape 5. -
<service-credential-key>
par le nom de la clé contenant la clé secrète client. -
<storage-account>
par le nom du compte de stockage Azure. -
<application-id>
avec l’ID d’application (client) pour l’application Microsoft Entra ID. -
<directory-id>
avec l’ID d’annuaire (locataire) pour l’application Microsoft Entra ID.
Vous avez maintenant connecté votre espace de travail Azure Databricks à votre compte Azure Data Lake Storage.
-
Accorder à votre espace de travail Azure Databricks l’accès à Azure Data Lake Storage
Si vous configurez un pare-feu sur Azure Data Lake Storage, vous devez configurer les paramètres réseau pour permettre à votre espace de travail Azure Databricks de se connecter à Azure Data Lake Storage. Assurez-vous tout d’abord que votre espace de travail Azure Databricks est déployé dans votre propre réseau virtuel conformément aux instructions Déployer Azure Databricks dans votre réseau virtuel Azure (injection dans le réseau virtuel). Vous pouvez ensuite configurer des points de terminaison privés ou un accès à partir de votre réseau virtuel pour autoriser les connexions de vos sous-réseaux à votre compte Azure Data Lake Storage.
Si vous utilisez un calcul sans serveur comme des entrepôts SQL sans serveur, vous devez accorder l’accès à partir du plan de calcul sans serveur à Azure Data Lake Storage. Consultez Mise en réseau du plan de calcul serverless.
Accorder l'accès via des points de terminaison privés
Vous pouvez utiliser des points de terminaison privés pour votre compte Azure Data Lake Storage pour permettre à votre espace de travail Azure Databricks d’accéder en toute sécurité aux données via une liaison privée.
Pour créer un point de terminaison privé à l’aide du Portail Azure, consultez Tutoriel : Se connecter à un compte de stockage en utilisant un point de terminaison privé Azure. Assurez-vous de créer le point de terminaison privé dans le réseau virtuel dans lequel votre espace de travail Azure Databricks est déployé.
Accorder l’accès à partir de votre réseau virtuel
Les Points de terminaison de service de réseau virtuel vous permettent de sécuriser vos ressources de service Azure critiques uniquement sur vos réseaux virtuels. Vous pouvez activer un point de terminaison de service pour stockage Azure dans le réseau virtuel utilisé pour votre espace de travail Azure Databricks.
Pour plus d’informations, notamment les instructions Azure CLI et PowerShell, consultez Accorder l’accès à partir d’un réseau virtuel.
- Connectez-vous au portail Azure, en tant qu’utilisateur avec le rôle Contributeur de compte de stockage sur votre compte Azure Data Lake Storage.
- Accédez à votre compte de Stockage Azure, puis à l’onglet Mise en réseau.
- Vérifiez que vous avez sélectionné pour autoriser l’accès à partir de réseaux virtuels sélectionnés et d’adresses IP.
- Sous Réseaux virtuels, sélectionnez Ajouter un réseau virtuel existant.
- Dans le volet latéral, sous Abonnement, sélectionnez l’abonnement dans lequel se trouve votre réseau virtuel.
- Sous Réseaux virtuels, sélectionnez le réseau virtuel dans lequel votre espace de travail Azure Databricks est déployé.
- Sous Sous-réseaux, sélectionnez Tout sélectionner.
- Cliquez sur Activer.
- Sélectionnez Enregistrer pour appliquer vos modifications.
Dépannage
Erreur : IllegalArgumentException : Le secret n’existe pas avec l’étendue : KeyVaultScope et clé
Cette erreur signifie probablement :
- L’étendue Databricks qui est référencée dans le code n’est pas valide.
Revoyez le nom de votre secret de l’étape 4 de cet article.
Erreur : com.databricks.common.client.DatabricksServiceHttpClientException : INVALID_STATE : Databricks n’a pas pu accéder au coffre de clés
Cette erreur signifie probablement :
- L’étendue Databricks qui est référencée dans le code n’est pas valide. ou le secret stocké dans le coffre Key Vault a expiré.
Revoyez l’étape 3 pour vous assurer de la validité du secret de votre coffre Azure Key Vault. Revoyez le nom de votre secret de l’étape 4 de cet article.
Erreur : ADAuthenticator$HttpException : Erreur HTTP 401 : échec du jeton pour l’obtention du jeton à partir de la réponse AzureAD
Cette erreur signifie probablement :
- La clé secrète client du principal de service a expiré.
Créez une clé secrète client à l’étape 2 de cet article et mettez à jour le secret dans votre coffre de clés Azure.