Contrôle des accès avec IAM

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 console Google Cloud, la CLI Google Cloud et l'API REST, utilisez la gestion de l'identité et des accès (IAM), comme décrit sur cette page.

  • Pour accorder l'accès à des Google Cloud services de données, tels que BigQuery ou Cloud Storage, à un compte de service sur lequel des pipelines s'exécutent, utilisez IAM.

  • Pour contrôler les autorisations précises des actions effectuées dans l'instance, appelées opérations de 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 de 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 de l'IAM dans Cloud Data Fusion

Vous contrôlez l'accès aux fonctionnalités Cloud Data Fusion en accordant des rôles et des autorisations IAM aux comptes de service et aux autres entités principales de votre projet Google Cloud.

Pour accorder un accès précis aux comptes utilisateur afin qu'ils puissent utiliser l'interface Web de Cloud Data Fusion, utilisez le contrôle des accès basé sur les rôles (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 du client au moment 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 a les responsabilités suivantes:

  • Communication 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 Dataproc 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:
  • BigQuery
  • Bigtable
  • Compute Engine
  • Dataproc
  • Cloud DNS
  • Firebase
  • Cloud Monitoring
  • Connectivité réseau
  • Intégration de la sécurité réseau
  • API de services réseau
  • Règles d'administration
  • Outil de recommandation d'API
  • API Cloud Resource Manager
  • Service Networking
  • Service Usage
  • Spanner
  • Cloud Storage
  • Cloud Service Mesh
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 utilisé par Cloud Data Fusion pour déployer et exécuter des tâches qui accèdent à d'autres ressourcesGoogle Cloud . Par défaut, il est associé à une VM de cluster Dataproc pour permettre à Cloud Data Fusion d'accéder aux ressources Dataproc pendant l'exécution d'un pipeline.

Vous pouvez choisir un compte de service personnalisé à associer au cluster Dataproc lors de la création d'une instance Cloud Data Fusion ou en créant des profils de calcul dans l'interface Web Cloud Data Fusion.

Pour en savoir plus, consultez la page Comptes de service dans Cloud Data Fusion.

Rôles pour le compte de service Compute Engine

Par défaut, pour accéder aux ressources (telles que les sources et les destinations) 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 lorsque vous créerez des instances.

Rôle d'exécuteur Cloud Data Fusion

Dans le projet contenant l'instance Cloud Data Fusion, accordez le rôle Cloud Data Fusion Runner (datafusion.runner) aux comptes de service personnalisés par défaut et gérés par l'utilisateur.

Rôle Description Autorisation
Exécuteur Data Fusion (datafusion.runner) Permet au compte de service Compute Engine de communiquer avec les services Cloud Data Fusion dans le 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 du projet dans lequel les clusters Dataproc sont lancés lorsque vous exécutez des pipelines, attribuez au compte de service Cloud Data Fusion le rôle "Utilisateur du compte de service" (roles/iam.serviceAccountUser).

Pour en savoir plus, consultez Accorder une autorisation de compte de service.

Rôle Nœud de calcul Dataproc

Pour exécuter les tâches sur des clusters Dataproc, 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 principal) devez disposer d'autorisations suffisantes. Les autorisations individuelles sont regroupées en rôles, et vous attribuez des rôles à ce compte principal.

Si RBAC n'est pas activé ou si vous utilisez une édition Cloud Data Fusion qui n'est pas compatible avec RBAC, les utilisateurs disposant d'un rôle IAM Cloud Data Fusion ont un accès complet à l'interface Web Cloud Data Fusion. Le rôle "Administrateur" ne permet aux utilisateurs que de gérer l'instance, par exemple les opérations Create, Update, Upgrade et Delete.

Accordez 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, ainsi que les autorisations permettant de créer, mettre à jour et supprimer des instances Cloud Data Fusion.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.instances.create
  • datafusion.instances.delete
  • datafusion.instances.update
  • datafusion.operations.get
  • datafusion.operations.list
  • datafusion.operations.cancel
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Lecteur Cloud Data Fusion (roles/datafusion.viewer)
  • peut afficher les instances Cloud Data Fusion du projet dans la console Google Cloud ;
  • Ne permet pas de créer, de mettre à jour ou de supprimer des instances Cloud Data Fusion.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.operations.get
  • datafusion.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Accéder aux ressources d'un autre projet au moment de la conception

Cette section décrit le contrôle des accès aux ressources situées dans un projet Google Cloud différent de votre instance Cloud Data Fusion au moment de la conception.

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 expliquent 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 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:

  1. 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 qu'entité principale.
  2. Attribuez des rôles au compte de service Cloud Data Fusion sur la ressource cible du projet dans lequel elle se trouve.

Une fois les rôles accordés, vous pouvez accéder aux ressources d'un autre projet au moment 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 au moment de l'exécution

Cette section décrit le contrôle des accès aux ressources situées dans un projet Google Cloud différent de votre instance Cloud Data Fusion au moment de l'exécution.

Au moment de l'exécution, vous exécutez le pipeline sur un cluster Dataproc, qui peut accéder aux ressources d'autres projets. Par défaut, le cluster Dataproc 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:

  1. Déterminez le compte de service pour votre projet.
  2. Dans le projet où se trouve la ressource, accordez des rôles IAM au compte de service par défaut Compute Engine pour lui donner accès aux ressources d'un autre projet.

Identifier 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 à IAM l'accès aux ressources d'un autre projet

Le compte de service par défaut Compute Engine 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:

  1. Attribuez des rôles et des autorisations, en spécifiant votre compte de service Compute Engine en tant qu'entité principale dans le projet où se trouve la ressource cible.
  2. 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 console Google Cloud 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