Activer la configuration de l’accès aux données

Cet article décrit les configurations de l’accès aux données effectuées par les administrateurs Azure Databricks pour tous les entrepôts SQL à l’aide de l’interface utilisateur.

Notes

Si votre espace de travail est activé pour Unity Catalog, vous n’avez pas besoin d’effectuer les étapes décrites dans cet article. Unity Catalog prend en charge les entrepôts SQL par défaut.

Databricks recommande d'utiliser des volumes Unity Catalog ou des emplacements externes pour se connecter au stockage d'objets cloud au lieu d’utiliser des profils d'instance. Unity Catalog facilite la sécurité et la gouvernance de vos données en fournissant un emplacement centralisé pour gérer et auditer l’accès aux données dans plusieurs espaces de travail de votre compte. Référez-vous à la section Qu'est-ce qu'Unity Catalog ? et Recommandations pour l'utilisation d'emplacements externes.

Pour configurer tous les entrepôts SQL avec API REST, consultez API Entrepôts SQL.

Important

La modification de ces paramètres a pour effet de redémarrer tous les entrepôts SQL en cours d’exécution.

Pour un aperçu général de la manière de permettre l’accès aux données, consultez Liste de contrôle d’accès.

Spécifications

  • Vous devez être administrateur de l’espace de travail Azure Databricks pour configurer des paramètres de tous les entrepôts SQL.

Configurer un principal du service

Pour configurer l’accès de vos entrepôts SQL à un compte de stockage Azure Data Lake Storage Gen2 à l’aide de principaux de service, procédez comme suit :

  1. Inscrivez une application Microsoft Entra ID (anciennement Azure Active Directory) et enregistrez les propriétés suivantes :

    • ID d’application (client) : ID qui identifie de manière unique l’application Microsoft Entra ID (anciennement Azure Active Directory).
    • ID d’annuaire (locataire) : ID qui identifie de manière unique l’instance Microsoft Entra ID (appelé ID d’annuaire (locataire) dans Azure Databricks).
    • Clé secrète client : valeur d’une clé secrète client créée pour cette inscription d’application. L’application utilisera cette chaîne secrète pour prouver son identité.
  2. Sur votre compte de stockage, ajoutez une attribution de rôle pour l’application inscrite à l’étape précédente pour lui donner accès au compte de stockage.

  3. Créez une étendue secrète Azure Key Vault ou une étendue de secret d’étendue Databricks, puis enregistrez la valeur de la propriété de nom d’étendue :

    • Nom de l’étendue : nom de l’étendue du secret créé.
  4. Si vous utilisez Azure Key Vault, accédez à la section Secrets et consultez Créer un secret dans une étendue Azure Key Vault. Utilisez ensuite la « clé secrète client » obtenue à l’étape 1 pour renseigner le champ « valeur » de ce secret. Conservez un enregistrement du nom du secret que vous venez de choisir.

    • Nom du secret : nom du secret Azure Key Vault créé.
  5. Si vous utilisez une étendue associée à Databricks, créez un secret à l’aide de la CLI Databricks et utilisez-le pour stocker la clé secrète client obtenue à l’étape 1. Conservez un enregistrement de la clé secrète que vous avez entrée à cette étape.

    • Clé secrète : clé du secret associé à Databricks créé.

    Remarque

    Vous pouvez également créer un secret supplémentaire pour stocker l’ID client obtenu à l’étape 1.

  6. Cliquez sur votre nom d’utilisateur dans la barre supérieure de l’espace de travail, puis sélectionnez Paramètres d’administrateur dans la liste déroulante.

  7. Cliquez sur l'onglet Calculer.

  8. Cliquez sur Manager en regard d'entrepôts SQL.

  9. Dans le champ Configuration de l’accès aux données, cliquez sur le bouton Ajouter un principal de service.

  10. Configurez les propriétés de votre compte de stockage Azure Data Lake Storage Gen2.

  11. Cliquez sur Add.

    Compte de stockage ADLS2

    Vous verrez que de nouvelles entrées ont été ajoutées à la zone de texte Configuration de l’accès aux données.

  12. Cliquez sur Enregistrer.

Vous pouvez également modifier directement les entrées de la zone de texte Configuration de l’accès aux données.

Configurer les propriétés d’accès aux données pour les entrepôts SQL

Pour configurer tous les entrepôts avec des propriétés d’accès aux données :

  1. Cliquez sur votre nom d’utilisateur dans la barre supérieure de l’espace de travail, puis sélectionnez Paramètres d’administrateur dans la liste déroulante.

  2. Cliquez sur l'onglet Calculer.

  3. Cliquez sur Manager en regard d'entrepôts SQL.

  4. Dans la zone de texte Configuration de l’accès aux données, spécifiez des paires clé-valeur contenant les propriétés du metastore.

    Important

    Pour définir une propriété de configuration Spark sur la valeur d’un secret sans exposer la valeur du secret à Spark, affectez la valeur à {{secrets/<secret-scope>/<secret-name>}}. Remplacez <secret-scope> par l’étendue du secret et <secret-name> par le nom du secret. La valeur doit commencer par {{secrets/ et se terminer par }}. Pour plus d’informations sur cette syntaxe, consultez Syntaxe pour référencer des secrets dans une variable d’environnement ou une propriété de configuration Spark.

  5. Cliquez sur Enregistrer.

Vous pouvez également configurer des propriétés d’accès aux données à l’aide du fournisseur Databricks Terraform et databricks_sql_global_config.

Propriétés prises en charge

  • Pour une entrée qui se termine par *, toutes les propriétés de ce préfixe sont prises en charge.

    Par exemple, spark.sql.hive.metastore.* indique que spark.sql.hive.metastore.jars et spark.sql.hive.metastore.version sont pris en charge, ainsi que toutes les autres propriétés commençant par spark.sql.hive.metastore.

  • Pour les propriétés dont les valeurs contiennent des informations sensibles, vous pouvez stocker les informations sensibles dans un secret et définir la valeur de la propriété sur le nom du secret à l’aide de la syntaxe suivante : secrets/<secret-scope>/<secret-name>.

Les propriétés suivantes sont prises en charge pour les entrepôts SQL :

  • spark.sql.hive.metastore.*
  • spark.sql.warehouse.dir
  • spark.hadoop.datanucleus.*
  • spark.hadoop.fs.*
  • spark.hadoop.hive.*
  • spark.hadoop.javax.jdo.option.*
  • spark.hive.*

Pour plus d’informations sur la façon de définir ces propriétés, consultez Metastore Hive externe.