Gérer les identités, les autorisations et les privilèges pour les pipelines
Les identités, les permissions et les privilèges contrôlent qui peut exécuter, gérer et interroger les pipelines et les données qu'ils produisent.
Databricks recommande d’utiliser Unity Catalog pour tous les nouveaux pipelines. Par default, les vues matérialisées et les tables de streaming créées par des pipelines configurés avec Unity Catalog ne peuvent être interrogées que par le propriétaire du pipeline. Voir Utiliser Unity Catalog avec des pipelines.
Si vos pipelines publient des datasets dans le Hive metastore hérité, consultez Utiliser des LakeFlow Pipelines avec le Hive metastore hérité.
Pour les bonnes pratiques générales sur les configurations d'identité, consultez les Bonnes pratiques d'identité.
Quelle identité est utilisée pour les mises à jour de pipeline ?
Les pipelines traitent les mises à jour en utilisant l'identité de l'utilisateur d' exécution . By default, l'utilisateur d'exécution est le créateur du pipeline, mais vous pouvez le modifier pour un autre utilisateur ou un Service Principal. Consultez Définir l'utilisateur d'exécution.
Databricks recommande de définir l'utilisateur d'exécution sur un Service Principal, afin que les mises à jour des pipelines ne soient pas liées au compte d'un utilisateur individuel. See Service Principal.
N’accordez à ce Service Principal que les privilèges Unity Catalog dont le pipeline a besoin, plutôt qu’un accès étendu au niveau du compte. Par exemple, accordez USE CATALOG sur le catalogue cible, USE SCHEMA et le privilège CREATE approprié (CREATE MATERIALIZED VIEW ou CREATE TABLE) sur le schéma de sortie, et SELECT sur ses sources. Pour obtenir la liste complète des privilèges requis pour publier dans Unity Catalog, consultez Requirements.
Qui peut exécuter une mise à jour du pipeline ?
Les mises à jour de pipeline peuvent être exécutées par tout utilisateur ou service principal disposant des autorisations CAN RUN, CAN MANAGE ou IS OWNER.
Qui peut voir un pipeline et sa sortie ?
Pour ouvrir un pipeline et afficher ses détails, un utilisateur a besoin d'au moins l'autorisation CAN VIEW sur le pipeline. Pour la liste complète des niveaux d'autorisation des pipelines et les capacités que chacun accorde, voir ACL des Lakeflow Pipelines.
Pour afficher le pipeline qui prend en charge une table de streaming ou une vue matérialisée, un utilisateur non administrateur a également besoin du privilège REFRESH sur cette table de streaming ou cette vue matérialisée, en plus de ses autorisations sur le pipeline. Sans le privilège REFRESH, l'URL du pipeline affiche Pipeline non disponible .
Configurez les autorisations de pipeline
Vous devez disposer de l'autorisation CAN MANAGE ou IS OWNER sur le pipeline pour gérer les autorisations. Les pipelines utilisent des listes de contrôle d'accès (ACL) pour contrôler les autorisations. Pour une liste complète des autorisations et de leurs capacités, consultez les ACL de Lakeflow Pipelines.
- Dans la barre latérale, cliquez sur Jobs & Pipelines .
- Sélectionnez le Nom d’un pipeline.
- Cliquez sur Partager . La boîte de dialogue Paramètres d'autorisation s’affiche.
- Cliquez sur Sélectionner un utilisateur, un groupe ou un Service Principal… et sélectionnez un utilisateur, un groupe ou un Service Principal.
- Sélectionnez une autorisation dans le menu déroulant d'autorisations.
- Cliquez sur **Ajouter**.
- Cliquez sur Enregistrer .
Modifier le propriétaire du pipeline
Par default, le propriétaire du pipeline est également l'utilisateur d'exécution en tant que lequel les mises à jour du pipeline s'exécutent. La modification du propriétaire modifie l'identité utilisée pour les futures mises à jour.
Si vous souhaitez modifier l'identité sous laquelle les mises à jour du pipeline s'exécutent sans modifier le propriétaire, définissez plutôt l'utilisateur d'exécution. Consultez Définir l'utilisateur d'exécution.
Pour modifier le propriétaire d'un pipeline, vous devez être à la fois un administrateur de métastore et un administrateur de Workspace. Modifiez le propriétaire en utilisant l'interface utilisateur ou l'API REST.
Utilisez l’interface utilisateur
- Dans la barre latérale, cliquez sur Jobs & Pipelines .
- Sélectionnez le Nom du pipeline.
- Cliquez sur Partager . La boîte de dialogue Paramètres d'autorisation s’affiche.
- Effacez le propriétaire actuel, puis sélectionnez le nouveau propriétaire. Le propriétaire peut être un utilisateur ou un Service Principal. Databricks recommande un Service Principal. See Service Principal.
- Cliquez sur Enregistrer .
Utilisez l'API REST
Si le contrôle du propriétaire n'est pas disponible dans l'interface utilisateur, comme pour certains pipelines gérés en interne, modifiez le propriétaire avec l'opération Définir les permissions du pipeline de l'API REST. Spécifiez le user_name du nouveau propriétaire (ou service_principal_name pour un Service Principal) avec le niveau d'autorisation IS_OWNER :
{
"access_control_list": [
{
"user_name": "new.owner@example.com",
"permission_level": "IS_OWNER"
}
]
}
Si aucun utilisateur n'est à la fois administrateur de metastore et administrateur de workspace
Si personne dans votre organisation n'est à la fois administrateur de metastore et administrateur de workspace, contactez votre représentant Databricks pour modifier le propriétaire du pipeline.
Autoriser les utilisateurs non administrateurs à consulter les Logs du Driver d’un pipeline compatible avec Unity Catalog
By default, seuls le propriétaire du pipeline et les administrateurs de Workspace peuvent afficher les logs du driver à partir du cluster qui exécute un pipeline activé pour Unity Catalog. Vous pouvez activer l'accès aux logs du Driver pour tout utilisateur disposant des autorisations CAN MANAGE, CAN VIEW ou CAN RUN en ajoutant le paramètre de configuration Spark suivant à l'objet configuration dans les paramètres du pipeline :
{
"configuration": {
"spark.databricks.acl.needAdminPermissionToViewLogs": "false"
}
}
Référencer les identifiants à partir d'un Secret Scope
Ne codez jamais en dur des clés API, des mots de passe de base de données ou des jetons dans le code source de votre pipeline. Stockez-les dans un Secret Scope et référencez-les au moment de l’exécution :
api_token = dbutils.secrets.get(scope="orders-pipeline-secrets", key="external_api_token")
Databricks masque automatiquement les valeurs secrètes ([REDACTED]) partout où elles seraient autrement imprimées dans la sortie d’un Notebook ou d’un Log, et vous pouvez restreindre les personnes autorisées à lire un périmètre avec un ACL de secret. Voir Gestion des secrets.
Protéger les données sensibles dans la sortie du pipeline
Pour les colonnes contenant des informations personnellement identifiables (PII), appliquez la gouvernance Unity Catalog aux tables produites par votre pipeline plutôt que d'écrire une logique de masquage personnalisée dans le code de votre pipeline :
- Les masques de colonne permettent de masquer ou de hacher la valeur d’une colonne en fonction de l’appartenance au groupe de l’utilisateur effectuant la requête.
- Les filtres de ligne restreignent les lignes qu’un utilisateur peut voir.
L'application de ces contrôles sur la table Unity Catalog protège les informations personnelles identifiables de manière cohérente pour chaque consommateur de la table, y compris les tableaux de bord, les queries ad hoc et les jobs en aval, et pas seulement au sein du pipeline. Voir Filtres de lignes et masques de colonne. En guise d'étape supplémentaire, isolez les informations personnelles identifiables dans des colonnes ou des tables spécifiques au sein d'un schéma clairement nommé afin de simplifier la gestion des accès et les audits.