Cette page décrit les options de contrôle des accès dans Cloud Data Fusion.
Vous pouvez contrôler l'accès aux ressources dans Cloud Data Fusion de différentes manières :
Pour contrôler l'accès aux opérations du plan de contrôle, telles que la création et la mise à jour d'instances via la Google Cloud console, CLI Google Cloud et l'API REST, utilisez Identity and Access Management (IAM), comme décrit sur cette page.
Pour accorder l'accès aux Google Cloud services de données, tels que BigQuery ou Cloud Storage, à un compte de service sur lequel les pipelines sont exécutés, utilisez IAM.
Pour contrôler les autorisations précises pour les actions effectuées dans l' instance, appelées opérations du plan de données, telles que le démarrage de pipelines, utilisez le contrôle des accès basé sur les rôles (RBAC).
Pour en savoir plus sur l'architecture et les ressources impliquées dans le contrôle des accès Cloud Data Fusion, consultez la section Mise en réseau. Pour en savoir plus sur l'attribution de rôles et d'autorisations, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
À propos d'IAM dans Cloud Data Fusion
Vous contrôlez l'accès aux fonctionnalités de Cloud Data Fusion en attribuant des rôles et des autorisations IAM aux comptes de service et à d'autres comptes principaux de votre Google Cloud projet.
Pour accorder un accès précis aux comptes utilisateur afin qu'ils puissent utiliser l' interface Web de Cloud Data Fusion, utilisez RBAC.
Par défaut, Cloud Data Fusion utilise les comptes de service suivants :
Compte de service Cloud Data Fusion
Le compte de service Cloud Data Fusion est un agent de service géré par Google qui peut accéder aux ressources client lors de la conception du pipeline. Cet agent de service est automatiquement ajouté à un projet lorsque vous activez l'API Cloud Data Fusion. Il est utilisé pour toutes les instances de votre projet.
L'agent de service est responsable des tâches suivantes :
Communiquer avec d'autres services, tels que Cloud Storage, BigQuery ou Datastream, lors de la conception du pipeline.
Activer l'exécution en provisionnant des clusters Managed Service pour Apache Spark et en envoyant des tâches de pipeline.
Rôles du compte de service Cloud Data Fusion
Par défaut, le compte de service Cloud Data Fusion ne dispose que du
rôle Agent de service de l'API Cloud Data Fusion
(roles/datafusion.serviceAgent).
Le nom principal de cet agent de service est
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.
Les ressources par défaut suivantes sont associées au rôle Agent de service de l'API Cloud Data Fusion.
| Rôle | Ressource | Autorisations |
|---|---|---|
| Agent de service de l'API Cloud Data Fusion | Services associés :
|
Consultez les autorisations de l'agent de service de l'API Cloud Data Fusion. |
Compte de service Compute Engine par défaut ou compte de service personnalisé
Le compte de service Compute Engine est le compte par défaut que Cloud Data Fusion utilise pour déployer et exécuter des tâches qui accèdent à d'autres Google Cloud ressources. Par défaut, il est associé à une VM de cluster Managed Service pour Apache Spark afin de permettre à Cloud Data Fusion d'accéder aux ressources Managed Service pour Apache Spark lors de l'exécution d'un pipeline.
Vous pouvez choisir un compte de service personnalisé à associer au cluster Managed Service pour Apache Spark lorsque vous créez une instance Cloud Data Fusion ou en créant des profils de calcul dans l'interface Web de Cloud Data Fusion.
Pour en savoir plus, consultez la section Comptes de service dans Cloud Data Fusion.
Rôles du compte de service Compute Engine
Par défaut, pour accéder aux ressources (telles que les sources et les récepteurs) lorsque vous exécutez un pipeline, Cloud Data Fusion utilise le compte de service Compute Engine par défaut.
Vous pouvez configurer un compte de service personnalisé géré par l'utilisateur pour les instances Cloud Data Fusion et attribuer un rôle à ce compte. Vous pourrez ensuite choisir ce compte de service lors de la création d'instances.
Rôle d'exécuteur Cloud Data Fusion
Dans le projet contenant l'instance Cloud Data Fusion, pour les comptes de service par défaut et personnalisés gérés par l'utilisateur, accordez le rôle d'exécuteur Cloud Data Fusion (datafusion.runner).
| Rôle | Description | Autorisation |
|---|---|---|
Exécuteur Data Fusion (datafusion.runner) |
Permet au compte de service Compute Engine de communiquer avec Cloud Data Fusion services in the projet locataire | datafusion.instances.runtime |
Rôle Utilisateur du compte de service
Sur le compte de service par défaut ou géré par l'utilisateur dans le projet où les clusters Managed Service pour Apache Spark sont lancés lorsque vous exécutez des pipelines, accordez au compte de service Cloud Data Fusion le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser).
Pour en savoir plus, consultez la section Accorder une autorisation de compte de service.
Rôle Nœud de calcul Dataproc
Pour exécuter les tâches sur les clusters Managed Service pour Apache Spark, accordez le rôle Nœud de calcul Dataproc (roles/dataproc.worker) aux comptes de service par défaut ou gérés par l'utilisateur utilisés par vos pipelines Cloud Data Fusion.
Rôles pour les utilisateurs
Pour déclencher une opération dans Cloud Data Fusion, vous (le compte principal) devez disposer de suffisamment d'autorisations. Les autorisations individuelles sont regroupées dans des rôles, et vous accordez des rôles à ce compte principal.
Si RBAC n'est pas activé ou si vous utilisez une édition Cloud Data Fusion qui ne le prend pas en charge, les utilisateurs disposant d'un rôle IAM Cloud Data Fusion ont un accès complet à l'interface Web de Cloud Data Fusion. Le rôle Administrateur permet uniquement aux utilisateurs de gérer l'instance, par exemple les opérations Create, Update, Upgrade et Delete.
Attribuez les rôles suivants aux comptes principaux, en fonction des autorisations dont ils ont besoin dans Cloud Data Fusion.
| Rôle | Description | Autorisations |
|---|---|---|
Administrateur Cloud Data Fusion (roles/datafusion.admin) |
Toutes les autorisations accordées au rôle de lecteur, plus les autorisations permettant de créer, mettre à jour et supprimer des instances Cloud Data Fusion. |
|
Lecteur Cloud Data Fusion (roles/datafusion.viewer) |
|
|
Accéder aux ressources d'un autre projet lors de la conception
Cette section décrit le contrôle des accès aux ressources qui se trouvent dans un projet Google Cloud différent de votre instance Cloud Data Fusion lors de la conception time.
Lorsque vous concevez des pipelines dans l'interface Web de Cloud Data Fusion, vous pouvez utiliser des fonctions telles que Wrangler ou Preview, qui accèdent aux ressources d'autres projets.
Les sections suivantes décrivent comment déterminer le compte de service dans votre environnement, puis accorder les autorisations appropriées.
Déterminer le compte de service de votre environnement
Le nom du compte de service est Compte de service Cloud Data Fusion et le compte principal
de cet agent de service est
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.
Accorder l'autorisation d'accéder aux ressources d'un autre projet
Pour accorder les rôles qui autorisent l'accès à différentes ressources, procédez comme suit :
- Dans le projet où se trouve la ressource cible, ajoutez le
compte de service Cloud Data Fusion (
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com) en tant que compte principal. - Attribuez des rôles au compte de service Cloud Data Fusion sur la ressource cible dans le projet où se trouve la ressource cible.
Une fois les rôles attribués, vous pouvez accéder aux ressources d'un autre projet lors de la conception de la même manière que vous accédez aux ressources du projet dans lequel se trouve votre instance.
Accéder aux ressources d'un autre projet lors de l'exécution
Cette section décrit le contrôle des accès aux ressources qui se trouvent dans un projet Google Cloud différent de votre instance Cloud Data Fusion lors de l' exécution.
Lors de l'exécution, vous exécutez le pipeline sur un cluster Managed Service pour Apache Spark, qui peut accéder aux ressources d'autres projets. Par défaut, le cluster Managed Service pour Apache Spark lui-même est lancé dans le même projet que l'instance Cloud Data Fusion, mais vous pouvez utiliser des clusters dans un autre projet.
Pour accéder aux ressources d'autres Google Cloud projets, procédez comme suit :
- Déterminez le compte de service de votre projet.
- Dans le projet où se trouve la ressource, attribuez des rôles IAM au compte de service Compute Engine par défaut pour lui donner accès aux ressources d'un autre projet.
Déterminer le compte de service Compute Engine
Pour en savoir plus sur le compte de service Compute Engine, consultez la section À propos d'IAM dans Cloud Data Fusion.
Accorder l'accès IAM aux ressources d'un autre projet
Le compte de service Compute Engine par défaut nécessite des autorisations pour accéder aux ressources d'un autre projet. Ces rôles et autorisations peuvent varier en fonction de la ressource à laquelle vous souhaitez accéder.
Pour accéder aux ressources, procédez comme suit :
- Attribuez des rôles et des autorisations en spécifiant votre compte de service Compute Engine en tant que compte principal dans le projet où se trouve la ressource cible.
- Ajoutez les rôles appropriés pour accéder à la ressource.
Autorisations de l'API Cloud Data Fusion
Les autorisations suivantes sont requises pour exécuter l' API Cloud Data Fusion.
| Appel d'API | Autorisation |
|---|---|
instances.create |
datafusion.instances.create |
instances.delete |
datafusion.instances.delete |
instances.list |
datafusion.instances.list |
instances.get |
datafusion.instances.get |
instances.update |
datafusion.instances.update |
operations.cancel |
datafusion.operations.cancel |
operations.list |
datafusion.operations.list |
operations.get |
datafusion.operations.get |
Autorisations pour les tâches courantes
Les tâches courantes dans Cloud Data Fusion nécessitent les autorisations suivantes :
| Tâche | Autorisations |
|---|---|
| Accéder à l'interface Web de Cloud Data Fusion | datafusion.instances.get |
| Accéder à la page Instances de Cloud Data Fusion dans la Google Cloud console | datafusion.instances.list |
| Accéder à la page Détails d'une instance | datafusion.instances.get |
| Créer une instance | datafusion.instances.create |
| Mettre à jour les étiquettes et les options avancées pour personnaliser une instance | datafusion.instances.update |
| Supprimer une instance | datafusion.instances.delete |
Étape suivante
- En savoir plus sur le contrôle des accès entre plusieurs projets.