Contrôle des accès avec IAM

Cette page décrit les options de contrôle des accès disponibles dans Cloud Data Fusion.

Vous pouvez contrôler l'accès aux ressources dans Cloud Data Fusion comme suit:

  • 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, Google Cloud CLI et l'API REST, utilisez Identity and Access Management (IAM), comme décrit sur cette page.

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

  • Pour contrôler des autorisations précises pour les 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 page 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 accordant des rôles et des autorisations IAM aux comptes de service et aux autres comptes principaux de votre projet Google Cloud.

Pour accorder un accès précis aux comptes utilisateur afin qu'ils puissent se servir de 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 des clients 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:

  • Communiquer avec d'autres services, tels que Cloud Storage, BigQuery ou Datastream, lors de la conception du pipeline

  • Activation de l'exécution en provisionnant les clusters Dataproc et en envoyant des jobs de pipeline.

Rôles pour le compte de service Cloud Data Fusion

Par défaut, le compte de service Cloud Data Fusion dispose uniquement du rôle d'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 d'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
  • Gestionnaire d'intégration des services 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 la section Autorisations d'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 ressources Google Cloud. Par défaut, il s'associe à 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 de 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 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 pouvez ensuite choisir ce compte de service lorsque vous créez des instances.

Rôle d'exécuteur Cloud Data Fusion

Dans le projet contenant l'instance Cloud Data Fusion, accordez le rôle d'exécuteur Cloud Data Fusion (datafusion.runner) pour les 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 où les clusters Dataproc 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 Accorder une autorisation au compte de service.

Rôle de nœud de calcul Dataproc

Pour exécuter les tâches sur des clusters Dataproc, attribuez 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 des autorisations suffisantes. Les autorisations individuelles sont regroupées dans des 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 disposent d'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, 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.
  • Ce rôle ne permet pas de créer, de mettre à jour ni 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 celui 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.

Dans les sections suivantes, nous allons voir comment déterminer le compte de service dans votre environnement et comment accorder les autorisations appropriées.

Déterminer le compte de service de votre environnement

Le nom du compte de service est le 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.

Autoriser l'accès aux ressources d'un autre projet

Pour attribuer des rôles autorisant l'accès à diverses ressources, procédez comme suit:

  1. Dans le projet contenant 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.
  2. 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 que vous avez attribué les rôles, vous pouvez accéder aux ressources d'un projet différent au moment de la conception de la même manière que vous accédez aux ressources du projet où 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 sur les 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 les clusters dans un autre projet.

Pour accéder aux ressources d'autres projets Google Cloud, procédez comme suit:

  1. Déterminez le compte de service pour votre projet.
  2. Dans le projet contenant 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 page À 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:

  1. Accordez 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.
  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ès à 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

Étapes suivantes