Activer le contrôle d’accès à une table du metastore Hive sur un cluster (hérité)

Cet article explique comment activer un contrôle d’accès aux tables pour le metastore Hive intégré sur un cluster.

Si vous souhaitez obtenir plus d’informations sur la définition de privilèges sur des objets sécurisables du metastore Hive une fois qu’un contrôle d’accès à la table a été activé sur un cluster, consultez Privilèges sur les objets de données.

Notes

Le contrôle d’accès aux tables du metastore Hive est un modèle de gouvernance des données hérité. Databricks vous recommande d’utiliser plutôt Unity Catalog pour sa simplicité et son modèle de gouvernance centré sur les comptes. Vous pouvez mettre à niveau les tables managées par le metastore Hive vers le metastore Unity Catalog.

Activer un contrôle d’accès aux tables pour un cluster

Le contrôle d’accès aux tables est disponible en deux versions :

Le contrôle d’accès aux tables n’est pas pris en charge avec le Runtime Machine Learning.

Important

Même si le contrôle d’accès aux tables est activé pour un cluster, les administrateurs d’espaces de travail Azure Databricks ont accès aux données au niveau du fichier.

Contrôle d’accès aux tables SQL uniquement

Cette version du contrôle d’accès aux tables restreint les utilisateurs aux commandes SQL uniquement.

Pour activer le contrôle d’accès aux tables SQL uniquement sur un cluster et pour restreindre ce cluster à utiliser uniquement les commandes SQL, définissez l’indicateur suivant dans la configuration Sparkdu cluster :

spark.databricks.acl.sqlOnly true

Notes

L’accès au contrôle d’accès aux tables SQL uniquement n’est pas affecté par le paramètre Activer le contrôle d’accès aux tables dans la page des paramètres d’administration. Ce paramètre contrôle uniquement l’activation à l’ensemble de l’espace de travail de Python et du contrôle d'accès aux tables SQL.

Contrôle d’accès aux tables SQL et Python

Cette version du contrôle d’accès aux tables permet aux utilisateurs d’exécuter des commandes Python qui utilisent l’API DataFrame et SQL. Lorsqu’elle est activée sur un cluster, les utilisateurs de ce cluster :

  • Peuvent accéder à Spark uniquement à l’aide de l’API SQL Spark SQL de l’API DataFrame. Dans les deux cas, l’accès aux tables et aux vues est restreint par les administrateurs en fonction des Privilèges Azure Databricks que vous pouvez accorder sur des objets du metastore Hive.
  • Doivent exécuter leurs commandes sur des nœuds de cluster en tant qu’utilisateur à faibles privilèges, et ne peuvent pas accéder aux parties sensibles du système de fichiers ou créer des connexions réseau à des ports autres que 80 et 443.
    • Seules les fonctions Spark intégrées peuvent créer des connexions réseau sur des ports autres que 80 et 443.
    • Seuls les utilisateurs administrateurs ou utilisateurs d’espaces de travail avec un privilège TOUT FICHIER peuvent lire les données à partir de bases de données externes via le connecteur JDBC PySpark.
    • Si vous souhaitez que les processus Python puissent accéder à des ports de sortie supplémentaires, vous pouvez définir la configuration Sparkspark.databricks.pyspark.iptable.outbound.whitelisted.ports sur les ports pour lesquels vous souhaitez autoriser l’accès. Le format pris en charge pour la valeur de configuration est [port[:port][,port[:port]]...], par exemple : 21,22,9000:9999. Le port doit être compris dans la plage valide, c.-à-d. 0-65535.

Les tentatives visant à contourner ces restrictions échouent avec une exception. Ces restrictions sont en place afin que les utilisateurs ne puissent jamais accéder aux données non privilégiées via le cluster.

Activer le contrôle d’accès aux tables pour votre espace de travail

Avant que les utilisateurs puissent configurer le contrôle d’accès aux tables Python et SQL, un espace de travail Azure Databricks doit activer le contrôle d’accès aux tables pour l’espace de travail Azure Databricks et refuser l’accès par des utilisateurs à des clusters qui ne sont pas activés pour le contrôle d’accès aux tables.

  1. Accédez à la page des paramètres.
  2. Cliquez sur l’onglet Security .
  3. Activez l’option Contrôle d’accès aux tables.

Appliquer le contrôle d’accès aux tables

Pour vous assurer que les utilisateurs accèdent uniquement aux données auxquelles vous voulez qu’ils accèdent, vous devez limiter vos utilisateurs aux clusters avec le contrôle d’accès aux tables activé. En particulier, vous devez vérifier que :

  • Les utilisateurs n’ont pas l’autorisation de créer des clusters. S’ils créent un cluster sans contrôle d’accès aux tables, ils peuvent accéder à toutes les données de ce cluster.
  • Les utilisateurs ne disposent pas d’autorisation PEUT JOINDRE À pour un cluster qui n’est pas activé pour le contrôle d’accès aux tables.

Pour plus d’informations, consultez Autorisations d’ordinateur.

Créer un cluster activé pour le contrôle d’accès aux tables

Le contrôle d’accès aux tables est activé par défaut dans les clusters avec le mode d’accès partagé.

Pour créer un cluster au moyen de l’API REST, consultez Créer un nouveau cluster.

Définir des privilèges sur un objet de données

Consultez Privilèges et objets sécurisables dans le metastore Hive (hérité).