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.
Important
Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.
Cette page montre comment connecter un schéma du catalogue Unity à un gestionnaire de secrets externe afin que ses valeurs de secret restent dans Azure Key Vault.
Pour comprendre comment fonctionnent les secrets externes et leurs limites, voir Secrets externes dans le catalogue Unity.
Avant de commencer
- Respectez les exigences relatives aux secrets dans Unity Catalog.
- La bêta des secrets externes doit être activée pour votre espace de travail.
- Le schéma que vous souhaitez sauvegarder externement ne doit contenir aucun secret géré par Azure Databricks. Supprime les secrets existants avant de changer de backend.
- Vous devez avoir une connexion Unity Catalog à votre gestionnaire de secrets externe et un identifiant de service Unity Catalog que la connexion utilise pour authentifier. Pour les créer, vous devez avoir
USE CONNECTIONsur une connexion existante ouCREATE CONNECTIONsur le métastore pour en créer une, et accéder à une identifiante de service, ouCREATE CREDENTIALsur le métastore pour en créer une.
- Le support Azure Key Vault n’est disponible que sur Azure Databricks on Azure, via une
AZURE_KEY_VAULTconnexion.
Mettre en place des secrets externes
Créez une certification de service
La connexion s’authentifie auprès de votre gestionnaire de secrets externe avec une certification de service Unity Catalog.
Créez un identifiant de service basé sur une identité managée ou un principal de service, et accordez-lui l’autorisation de répertorier et de lire les secrets du Key Vault cible. Par exemple, attribuer au Key Vault Secrets un rôle d’utilisateur, ou une politique d’accès équivalente avec obtenir et lister les permissions secretes. Pour les instructions, voir Créer des identifiants de service.
Créer une connexion
Créez une connexion Unity Catalog qui fait référence à l’identifiant de service de l’étape précédente et pointe vers votre gestionnaire de secrets externe.
Explorateur de catalogues
- Dans Azure Databricks, ouvrez l’Explorateur de catalogue, cliquez sur le + menu, puis sélectionnez Créer une connexion.
- Saisissez un nom de connexion et sélectionnez le type de connexion Azure Key Vault.
- Sélectionnez l’identifiant de service avec lequel vous souhaitez vous authentifier, puis définissez le nom du coffre-fort de votre Key Vault.
- Cliquez sur Créer.
Interface CLI de Databricks
Transmettez le corps de la connexion avec --json, à l’aide du type de connexion AZURE_KEY_VAULT. Définissez vault_name le nom de votre Key Vault et credential le nom de la certification de service :
databricks connections create --json '{
"name": "my_key_vault_connection",
"connection_type": "AZURE_KEY_VAULT",
"options": {
"vault_name": "my-vault",
"credential": "my_key_vault_credential"
}
}'
API REST
Utilisez le point de terminaison /api/2.1/unity-catalog/connections avec le type de connexion AZURE_KEY_VAULT. Azure Databricks résout vault_name en https://<vault_name>.vault.azure.net :
curl -X POST \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "my_key_vault_connection",
"connection_type": "AZURE_KEY_VAULT",
"options": {
"vault_name": "my-vault",
"credential": "my_key_vault_credential"
}
}' \
"$DATABRICKS_HOST/api/2.1/unity-catalog/connections"
Retour à un schéma avec la connexion
Configurez le backend secret du schéma dans l’Explorateur de catalogue.
Dans Azure Databricks, ouvrez Catalog Explorer et allez dans le schéma.
Dans les détails du schéma, localisez le paramètre du gestionnaire de secrets externe et cliquez sur Activer.
Le schéma ne doit contenir aucun secret géré par Azure Databricks. Si c’est le cas, enlève-les d’abord. Activer reste désactivé jusqu’à ce que le schéma ne contienne plus aucun secret.
Sélectionnez la connexion que vous avez créée à l’étape précédente, puis confirmez.
Le schéma est désormais soutenu par votre gestionnaire de secrets externe, et ses secrets apparaissent dans le catalogue Unity.
Pour orienter le schéma vers une autre connexion, utilisez Edit. Pour renvoyer le schéma dans un stockage géré par Azure Databricks, modifiez le schéma et désactivez les secrets externes.
La définition ou la modification du backend de secrets d’un schéma nécessite USE CATALOG sur le catalogue parent, d’être propriétaire du schéma ou de disposer de MANAGE sur celui-ci, ainsi que de USE CONNECTION sur la connexion.
Lire les secrets externes
Après que le schéma est sauvegardé à l’externe, ses secrets apparaissent dans le catalogue Unity et vous les lisez comme n’importe quel autre secret du catalogue Unity. Lister un schéma déclenche une importation, donc un secret nouvellement ajouté n’apparaît qu’après la liste suivante. Les commandes de lecture sont les mêmes sur les deux clouds.
Dbutils
dbutils effectue le masquage des secrets et constitue la méthode recommandée pour lire une valeur. Nécessite Databricks Runtime 17.3 LTS ou supérieur, ou un environnement serverless version 4 ou supérieure.
# List the secrets in the schema
all_secrets = dbutils.secrets.list(catalog="main", schema="default")
# Read a specific secret value from the external secret manager
my_secret = dbutils.secrets.get(catalog="main", schema="default", key="example_secret")
API REST
Définissez include_value=true et lisez le effective_value champ pour retourner la valeur. L’API REST ne supprime pas les valeurs retournées, bien qu’elle audite toujours l’accès ; Azure Databricks recommande dbutils à la place.
curl -G \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
--data-urlencode "include_value=true" \
"$DATABRICKS_HOST/api/2.1/unity-catalog/secrets/main.default.example_secret"
Vous pouvez également parcourir et lister des secrets externes dans Catalog Explorer, de la même manière que les secrets gérés par Azure Databricks. Voir Lire un secret.
Si un secret n’apparaît pas encore dans le catalogue Unity, vous pouvez toujours le lire par son nom. Indiquez le nom tel qu’il apparaît dans le gestionnaire de secrets externe, avec les substitutions de caractères dues aux restrictions de nommage appliquées.
Ressources additionnelles
| Fonctionnalité | Description |
|---|---|
| Secrets externes dans Unity Catalog | Apprenez comment Unity Catalog importe, gouverne et lit les secrets sauvegardés en externe, et examinez les limitations. |
| Secrets dans Unity Catalog | Créez, gouvernez et gérez les secrets que Azure Databricks stocke dans Unity Catalog. |
| Créer des identifiants de service | Créez l’identifiant du service Unity Catalog que la connexion utilise pour authentifier. |