Aller au contenu principal

Se connecter à un compartiment Google Cloud Storage

remarque

Seuls les comptes SAP Databricks déployés sur GCP peuvent se connecter à Google Cloud Storage.

Cette page décrit comment connecter un compartiment Google Cloud Storage (GCS) à votre compte SAP Databricks.

Pour vous connecter au stockage cloud externe dans SAP Databricks, vous avez besoin de :

  • Identifiant de stockage : représente un mécanisme d'authentification et d'autorisation pour accéder aux données stockées sur votre tenant cloud, par exemple, un compte de service pour les buckets GCS. Les administrateurs peuvent attribuer des privilèges pour contrôler les utilisateurs et les groupes qui peuvent utiliser l'identifiant pour définir des emplacements externes. Cela ne devrait être accordé qu'aux utilisateurs qui ont besoin de créer des objets d'emplacement externe.

  • Emplacement externe : cette combinaison d'un chemin de stockage cloud et d'un identifiant de stockage autorise l'accès au chemin de stockage cloud. Les privilèges accordés sur l'emplacement externe régissent qui peut accéder au chemin de stockage cloud défini par l'emplacement externe.

attention

Pour éviter la perte de données, SAP Databricks exige que les emplacements externes soient en lecture seule.

Avant de commencer

Prérequis :

  • Le compartiment Google Cloud Storage auquel vous faites référence dans l'emplacement externe doit exister avant que vous ne créiez l'objet d'emplacement externe dans SAP Databricks. Pour éviter les frais de sortie, le compartiment doit se trouver dans la même région que le Workspace à partir duquel vous souhaitez accéder aux données.
  • Vous devez disposer des autorisations nécessaires pour modifier la politique d'accès de ce compartiment.

Databricks : autorisations requises :

  • CREATE STORAGE CREDENTIAL privilège sur le métastore associé au workspace. Les administrateurs de compte et les administrateurs de métastore disposent de ce privilège par default.
  • CREATE EXTERNAL LOCATION privilège sur le métastore et les identifiants de stockage référencés dans l'emplacement externe. Les administrateurs du metastore disposent de CREATE EXTERNAL LOCATION sur le metastore par default.

Créer un identifiant de stockage

Pour créer un identifiant de stockage, vous générerez un compte de service Google Cloud à l'aide de l'Explorateur de catalogues SAP Databricks :

  1. Connectez-vous à votre workspace SAP Databricks prenant en charge Unity Catalog en tant qu'utilisateur disposant du privilège CREATE STORAGE CREDENTIAL sur le metastore.

  2. Dans la barre latérale, cliquez sur Icône de données. Catalogue .

  3. Cliquez sur le bouton **Données externes >**, accédez à l'onglet **tab**, puis sélectionnez **Créer un identifiant**.

  4. Sélectionnez un **type d'identifiant** de **compte de service GCP**.

  5. Saisissez un Nom de l'identifiant de stockage et un commentaire facultatif.

  6. Sélectionnez Lecture seule afin que les emplacements externes utilisant cet identifiant de stockage soient en lecture seule.

  7. Cliquez sur Créer .

    SAP Databricks crée l'identifiant de stockage et génère un compte de service Google Cloud.

  8. Dans la boîte de dialogue **Identifiant de stockage créé**, notez l'ID du compte de service, qui se présente sous la forme d'une adresse e-mail, puis cliquez sur **Terminé**.

  9. (Facultatif) Liez les informations d'identification de stockage à des Workspace spécifiques.

    Par default, tout utilisateur privilégié peut utiliser les informations d'identification de stockage sur tout workspace attaché au métastore. Si vous souhaitez autoriser l'accès uniquement depuis des workspaces spécifiques, rendez-vous à l'onglet **tab** et attribuez des workspaces. Consulter (Facultatif) Attribuer un emplacement externe à des Workspace spécifiques.

Configurer les autorisations du compte de service

  1. Accédez à la console Google Cloud et ouvrez le compartiment GCS auquel vous souhaitez accéder depuis votre workspace SAP Databricks.

    Pour éviter les frais de sortie, le compartiment doit être dans la même région que le Workspace à partir duquel vous souhaitez accéder aux données.

  2. Dans la tab Autorisations, cliquez sur + Accorder l'accès et attribuez les rôles suivants au compte de service nouvellement créé :

    • Lecteur de compartiment de stockage ancienne génération
    • Administrateur d'objet de stockage

    Utilisez l'adresse e-mail du compte de service comme identifiant principal.

(Recommandé) Configurer les autorisations pour les événements de fichier

remarque

Si vous n'accordez pas à SAP Databricks l'accès pour configurer les événements de fichiers en votre nom, vous devez configurer manuellement les événements de fichiers pour chaque emplacement. Le fait d'ignorer cette configuration manuelle limite votre accès à plusieurs fonctionnalités Databricks.

Les étapes ci-dessous permettent à Databricks de configurer un pipeline de notifications complet pour publier des messages de notification d'événements de vos buckets GCS vers Google Cloud Pub/Sub. Ils supposent que vous avez un projet GCP avec un bucket GCS et que vous avez activé l'API Pub/Sub.

  1. Créez un rôle IAM personnalisé pour les événements de fichiers.

    1. Dans la console Google Cloud du projet contenant votre compartiment GCS, accédez à IAM & Administration > Rôles .

    2. Si vous avez déjà un rôle IAM personnalisé, sélectionnez-le et cliquez sur Modifier le rôle . Sinon, créez un nouveau rôle en cliquant sur + Créer un rôle depuis la page Rôles .

    3. Sur l'écran Créer un rôle ou Modifier un rôle , ajoutez les autorisations suivantes à votre rôle IAM personnalisé et enregistrez les modifications. Pour des instructions détaillées, consultez la documentation GCP.

      pubsub.subscriptions.consume
      pubsub.subscriptions.create
      pubsub.subscriptions.delete
      pubsub.subscriptions.get
      pubsub.subscriptions.list
      pubsub.subscriptions.update
      pubsub.topics.attachSubscription
      pubsub.topics.detachSubscription
      pubsub.topics.create
      pubsub.topics.delete
      pubsub.topics.get
      pubsub.topics.list
      pubsub.topics.update
      storage.buckets.update
  2. Accorder l'accès au rôle.

    1. Accédez à IAM & Admin > IAM .
    2. Cliquez sur Accorder l'accès .
    3. Saisissez votre compte de service en tant que principal.
    4. Sélectionnez votre rôle IAM personnalisé.
    5. Cliquez sur Enregistrer .
  3. Accorder des autorisations à l'Agent de service de stockage cloud

    1. Trouvez l'e-mail du compte d'agent de service en suivant ces étapes dans la documentation Google Cloud.
    2. Dans la console Google Cloud, accédez à IAM & Admin > IAM > Grant Access .
    3. Saisissez l’e-mail du compte de l’agent de service et attribuez le rôle **Pub/Sub Publisher***.

Vous pouvez maintenant créer un emplacement externe qui référence cet identifiant de stockage.

Créer un emplacement externe

Pour créer l'emplacement externe :

  1. Connectez-vous à un Workspace qui est associé au métastore.

  2. Dans la barre latérale, cliquez sur Icône de données. Catalogue .

  3. Cliquez sur Connecter > Emplacements externes .

  4. Cliquez sur Créer un emplacement externe .

  5. Saisissez un **nom d'emplacement externe**.

  6. Sous **URL**, saisissez ou sélectionnez le chemin d'accès à l'emplacement externe. Par exemple, gs://mybucket/<path>.

  7. Sélectionnez l'identifiant de stockage qui donne accès à l'emplacement externe.

    Si vous n'avez pas d'identifiant de stockage, vous pouvez en créer un :

    1. Dans la liste déroulante Identifiant de stockage , sélectionnez + Créer un nouvel identifiant de stockage .
    2. Dans la liste déroulante Type d'identifiant , sélectionnez Compte de service GCP.
    3. Un compte de service GCP est créé automatiquement pour vous lorsque vous enregistrez l'emplacement externe.
  8. Assurez-vous que l'emplacement externe dispose d'un accès en lecture seule. Cliquez sur **Options avancées** et assurez-vous que l'option **Lecture seule** est sélectionnée.

  9. (Facultatif) Pour activer la possibilité de s'abonner aux notifications de modifications sur l'emplacement externe, cliquez sur Options avancées et sélectionnez Activer les événements de fichier .

  10. Cliquez sur Créer .

  11. (Facultatif) Liez l'emplacement externe à des Workspaces spécifiques.

    Par default, tout utilisateur privilégié peut utiliser l’emplacement externe sur n’importe quel workspace attaché au métastore. Si vous souhaitez autoriser l’accès uniquement à partir de workspaces spécifiques, accédez à l’onglet tab et attribuez des workspaces. Consultez Lier un emplacement externe à un ou plusieurs workspaces.

  12. Accédez à la **tab** Permissions pour accorder l'autorisation d'utiliser l'emplacement externe.

    Pour que quiconque puisse utiliser l'emplacement externe, vous devez accorder les autorisations :

    • Pour utiliser l'emplacement externe afin d'ajouter un emplacement de stockage géré à un métastore, un catalogue ou un schéma, accordez le privilège CREATE MANAGED LOCATION.
    • Pour créer des tables ou des volumes externes, accordez CREATE EXTERNAL TABLE ou CREATE EXTERNAL VOLUME.
    1. Cliquez sur Accorder .
    2. Dans la boîte de dialogue Accorder sur <external location> , sélectionnez des utilisateurs, des groupes ou des Service Principals dans le champ Principaux , et sélectionnez le privilège que vous souhaitez accorder.
    3. Cliquez sur Accorder .

(Facultatif) Attribuer un emplacement externe à des workspaces spécifiques

Par default, un emplacement externe est accessible depuis tous les Workspaces du métastore. Cela signifie que si un utilisateur a obtenu un privilège (tel que READ FILES) sur cet emplacement externe, il peut exercer ce privilège depuis n'importe quel Workspace attaché au métastore. Si vous utilisez des Workspaces pour isoler l'accès aux données des utilisateurs, vous pourriez vouloir autoriser l'accès à un emplacement externe uniquement à partir de Workspaces spécifiques. Cette fonctionnalité est connue sous le nom de liaison de Workspace ou d'isolation d'emplacement externe.

Les cas d'utilisation typiques pour lier un emplacement externe à des Workspace spécifiques sont les suivants :

  • S'assurer que les data engineers qui ont le privilège CREATE EXTERNAL TABLE sur un emplacement externe contenant des données de production peuvent créer des tables externes sur cet emplacement uniquement dans un workspace de production.
  • S'assurer que les data engineers qui disposent du privilège READ FILES sur un emplacement externe contenant des données sensibles ne peuvent utiliser que des workspaces spécifiques pour accéder à ces données.
important

Les liaisons de workspace sont référencées au moment où les privilèges relatifs à l'emplacement externe sont exercés. Par exemple, si un utilisateur crée une table externe en émettant l'instruction CREATE TABLE myCat.mySch.myTable LOCATION 'gs://mybucket/<path>' depuis le workspace myWorkspace, les vérifications de liaison de workspace suivantes sont effectuées en plus des vérifications de privilèges utilisateur habituelles :

  • L’emplacement externe couvrant 'gs://mybucket/<path>' est-il lié à myWorkspace?
  • Le catalogue myCat est-il lié à myWorkspace avec le niveau d'accès Read & Write?

Si l’emplacement externe est par la suite dissocié de myWorkspace, la table externe continue alors de fonctionner.

Cette fonctionnalité vous permet également de remplir un catalogue à partir d'un Workspace central et de le rendre disponible pour d'autres Workspaces à l'aide de liaisons de catalogue sans rendre l'emplacement externe disponible dans ces autres Workspaces.

Associer un emplacement externe à un ou plusieurs workspaces

Pour attribuer un emplacement externe à des workspaces spécifiques, vous pouvez utiliser l'Explorateur de catalogues.

Autorisations requises : Administrateur de métastore, propriétaire de l'emplacement externe ou MANAGE sur l'emplacement externe.

Les administrateurs du metastore peuvent voir tous les emplacements externes dans un metastore à l'aide de l'Explorateur de catalogues, et les propriétaires d'emplacements externes peuvent voir tous les emplacements externes qu'ils possèdent dans un metastore — indépendamment du fait que l'emplacement externe soit attribué au workspace actuel. Les emplacements externes qui ne sont pas attribués au workspace apparaissent grisés.

  1. Connectez-vous à un workspace lié au métastore.

  2. Dans la barre latérale, cliquez sur Icône de données. Catalogue .

  3. Cliquez sur le bouton Données externes > pour accéder à la tab External Locations .

  4. Sélectionnez l'emplacement externe et accédez à l'onglet **Workspaces**.

  5. Dans l’onglet **tab**, décochez la case **Tous les Workspaces ont accès**.

    Si votre emplacement externe est déjà lié à un ou plusieurs Workspace, cette case à cocher est déjà désélectionnée.

  6. Cliquez sur **Attribuer aux workspaces** et saisissez ou recherchez les workspaces que vous souhaitez attribuer.

Pour révoquer l'accès, accédez à l'onglet Workspaces , sélectionnez le Workspace et cliquez sur Révoquer . Pour autoriser l'accès depuis tous les Workspaces, cochez la case Tous les Workspaces ont accès .