Remarque
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.
Cet article explique comment utiliser des informations d’identification de service dans le catalogue Unity pour se connecter aux services cloud externes. Dans Unity Catalog, un objet d’identification de service encapsule un identifiant cloud de longue durée qui permet d’accéder à un service cloud externe auquel les utilisateurs doivent se connecter depuis Azure Databricks.
Voir aussi :
Avant de commencer
Avant de pouvoir utiliser des informations d’identification de service pour vous connecter à un service cloud externe, vous devez disposer des conditions suivantes :
Un espace de travail Azure Databricks activé pour Unity Catalog.
Ressource de calcul qui se trouve sur Databricks Runtime 16.2 ou version ultérieure.
Les entrepôts SQL ne sont pas pris en charge.
La version préliminaire publique des informations d’identification du service est disponible sur Databricks Runtime 15.4 LTS et versions ultérieures, avec prise en charge de Python, mais aucune prise en charge Scala.
Informations d’identification de service créées dans votre metastore Unity Catalog qui donne accès au service cloud.
Le privilège
ACCESSsur les informations d’identification de service ou la propriété des informations d’identification de service.
Utiliser un identifiant de service dans votre code
Cette section fournit des exemples d’utilisation des identifiants de service dans un notebook. Remplacez les valeurs fictives. Ces exemples ne montrent pas nécessairement l’installation des bibliothèques requises, qui dépendent du service client auquel vous souhaitez accéder.
Seul Python est pris en charge.
Remarque
API spécifique à la fonction UDF pour les informations d’identification du service :
Dans les FDUs, utilisez databricks.service_credentials.getServiceCredentialsProvider() pour accéder aux identifiants de service.
Cela diffère de la dbutils.credentials.getServiceCredentialsProvider() fonction utilisée dans les notebooks, qui n’est pas disponible dans les contextes d’exécution UDF.
- Informations d’identification du service dans les UDF Python Scalaire pour les UDF Python Scalaire
- Identifiants de service dans les UDF Python du Batch Unity Catalog pour les UDF Python Batch
Exemple Python : configurer un client du Kit de développement logiciel (SDK) Azure pour utiliser des informations d’identification de service spécifiques
from azure.keyvault.secrets import SecretClient # example Azure SDK client
credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)
Spécifier des informations d’identification de service par défaut pour une ressource de calcul
Vous pouvez, si vous le souhaitez, spécifier un identifiant de service par défaut pour un cluster de calcul polyvalent ou un cluster de calcul pour les tâches en définissant une variable d’environnement. Par défaut, le Kit de développement logiciel (SDK) utilise ces informations d’identification de service si aucune authentification n’est fournie. Les utilisateurs ont toujours besoin ACCESS sur les informations d’identification de ce service pour se connecter au service cloud externe. Databricks ne recommande pas cette approche, car elle rend votre code moins portable que de nommer l’identifiant de service dans votre code.
Remarque
Les entrepôts de calcul serverless et SQL ne prennent pas en charge les variables d’environnement. Par conséquent, ils ne prennent pas en charge les informations d’identification de service par défaut.
Ouvrez la page de modification du cluster.
Consultez Gérer le calcul classique.
Cliquez sur Avancé en bas de la page et accédez à l’onglet Spark .
Ajoutez l’entrée suivante dans les variables d’environnement, en
<your-service-credential>remplaçant :DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME=<your-service-credential>
Les exemples de code suivants ne spécifient pas d’informations d’identification de service. Au lieu de cela, ils utilisent les informations d’identification du service spécifiées dans la variable d’environnement DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME :
Python
Si vous utilisez des informations d’identification de service par défaut, vous n’avez pas besoin de spécifier les informations d’identification en tant qu’argument :
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
credential = DefaultAzureCredential()
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)
Comparez cela à l’exemple dans Python : configurez un client Kit de développement logiciel (SDK) Azure pour utiliser une information d’identification de service spécifique, qui ne nécessite pas d’importation DefaultAzureCredential et ajoute la spécification de l’information d’identification :
credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')