Utiliser les informations d’identification du service catalogue Unity pour se connecter aux services cloud externes
Important
Cette fonctionnalité est disponible en préversion publique.
Cet article explique comment utiliser des informations d’identification de service dans le catalogue Unity pour se connecter aux services cloud externes. Un objet d’informations d’identification de service dans Le catalogue Unity encapsule des informations d’identification cloud à long terme qui fournit l’accès à un service cloud externe auquel les utilisateurs doivent se connecter à partir d’Azure Databricks.
Voir aussi :
- Gérez l’accès aux services cloud externes à l’aide des informations d’identification du service.
- Gérer les informations d’identification du service
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 15.4 LTS ou version ultérieure. Les entrepôts SQL ne sont pas pris en charge.
- Informations d’identification de service créées dans votre metastore Unity Catalog qui donne accès au service cloud.
- Privilège
ACCESS
sur les informations d’identification du service ou la propriété des informations d’identification du service.
Utiliser des informations d’identification de service dans votre code
Cette section fournit un exemple d’utilisation d’informations d’identification de service dans un notebook. Seul Python est pris en charge pendant la préversion publique. Remplacez les valeurs d’espace réservé.
Exemple : 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 éventuellement spécifier des informations d’identification de service par défaut pour un cluster de calcul à usage unique ou 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
des 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 le nom des informations d’identification du 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.
Cliquez sur Options avancées 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>
L’exemple de code suivant ne spécifie pas d’informations d’identification de service. Au lieu de cela, il utilise les informations d’identification du service spécifiées dans la variable d’environnement DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME
:
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)
Comparez à l’exemple dans l’exemple : configurez un client du Kit de développement logiciel (SDK) Azure pour utiliser des informations d’identification spécifiques, qui n’importe DefaultAzureCredential
pas et ajoute la spécification des informations d’identification :
credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')