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

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

  • Pour contrôler des autorisations précises liées aux actions effectuées dans l'instance, appelées opérations de plan de données, comme le démarrage de pipelines, utilisez le contrôle des accès basé sur les rôles (RBAC). Pour en savoir plus, consultez la présentation de RBAC.

Pour en savoir plus sur l'architecture et les ressources associées au contrôle des accès à 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 attribuant 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 utiliser l'interface Web 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 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:

  • 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 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 n'a que le 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 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
  • Traffic Director
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 ressources Google 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 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 lui accorder un rôle. Vous pouvez 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, attribuez 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, 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 à un 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 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 disposent d'un accès complet à l'interface Web de Cloud Data Fusion. Le rôle d'administrateur ne permet aux utilisateurs que 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 du rôle 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.
  • Impossible 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 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 permettent d'accéder aux ressources d'autres projets.

Les sections suivantes décrivent 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.

Accorder l'autorisation d'accéder aux ressources d'un autre projet

Pour accorder les 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. Accordez des rôles au compte de service Cloud Data Fusion sur la ressource cible dans le projet où celle-ci existe.

Une fois les rôles attribués, 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 aux ressources situées dans un projet Google Cloud différent de celui 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 est lancé dans le même projet que l'instance Cloud Data Fusion, mais vous pouvez utiliser les clusters d'un autre projet.

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

  1. Déterminez le compte de service associé à votre projet.
  2. 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 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 contenant 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 des instances 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