Pour limiter l'accès des utilisateurs au sein d'un projet ou d'une organisation, vous pouvez utiliser les rôles IAM (Identity and Access Management) spécifiques à Dataflow. Plutôt que d'attribuer aux utilisateurs le rôle Lecteur, Éditeur ou Propriétaire pour l'ensemble du projet Google Cloud, vous pouvez contrôler l'accès aux ressources associées à Dataflow.
Cette page explique comment utiliser les rôles IAM de Dataflow. Pour une description détaillée d'IAM et de ses fonctionnalités, consultez la documentation IAM.
Quelle que soit la méthode Dataflow employée, l'utilisateur doit disposer des autorisations requises. Pour obtenir la liste des autorisations et des rôles compatibles avec Dataflow, consultez la section suivante.
Autorisations et rôles
Les autorisations et les rôles compatibles avec les services IAM de Dataflow sont récapitulés ci-dessous.
Autorisations requises
Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode :
Méthode | Autorisations requises |
---|---|
dataflow.jobs.create |
dataflow.jobs.create |
dataflow.jobs.cancel |
dataflow.jobs.cancel |
dataflow.jobs.updateContents |
dataflow.jobs.updateContents |
dataflow.jobs.list |
dataflow.jobs.list |
dataflow.jobs.get |
dataflow.jobs.get |
dataflow.messages.list |
dataflow.messages.list |
dataflow.metrics.get |
dataflow.metrics.get |
dataflow.jobs.snapshot |
dataflow.jobs.snapshot |
Rôles
Le tableau suivant répertorie les rôles IAM Dataflow avec la liste de autorisations associées à chaque rôle. Chaque autorisation est applicable à un type de ressource particulier. Pour obtenir la liste des autorisations, consultez la page Rôles dans Google Cloud Console.
Role | Permissions |
---|---|
Dataflow Admin( Minimal role for creating and managing dataflow jobs. |
|
Dataflow Developer( Provides the permissions necessary to execute and manipulate Dataflow jobs. Lowest-level resources where you can grant this role:
|
|
Dataflow Viewer( Provides read-only access to all Dataflow-related resources. Lowest-level resources where you can grant this role:
|
|
Dataflow Worker( Provides the permissions necessary for a Compute Engine service account to execute work units for a Dataflow pipeline. Lowest-level resources where you can grant this role:
|
|
Le rôle Nœud de calcul Dataflow (roles/dataflow.worker
) fournit les autorisations nécessaires pour qu'un compte de service Compute Engine puisse exécuter des unités de travail pour un pipeline Apache Beam. Le rôle Nœud de calcul Dataflow doit être attribué à un compte de service capable de demander et de mettre à jour des tâches du service Dataflow.
Le rôle Agent de service Dataflow (roles/dataflow.serviceAgent
) est utilisé exclusivement par le compte de service Dataflow. Il permet au compte de service d'accéder aux ressources gérées de votre projet Google Cloud pour exécuter des tâches Dataflow. Il est automatiquement attribué au compte de service lorsque vous activez l'API Dataflow pour votre projet depuis la page API de Google Cloud Console.
Créer des tâches
Pour créer une tâche, le rôle roles/dataflow.admin
inclut l'ensemble minimal d'autorisations requises pour exécuter et examiner des tâches.
Sinon, les autorisations suivantes sont nécessaires :
- Le rôle
roles/dataflow.developer
pour instancier la tâche elle-même. - Le rôle
roles/compute.viewer
pour accéder aux informations du type de machine et afficher d'autres paramètres. - Le rôle
roles/storage.objectAdmin
pour autoriser l'organisation des fichiers dans Cloud Storage.
Exemple d'attribution de rôle
L'argumentation ci-après démontre l'utilité des différents rôles Dataflow :
- Le développeur qui crée et examine les tâches doit disposer du rôle
roles/iam.serviceAccountUser
. - Pour une gestion plus fine des autorisations, le développeur qui interagit avec la tâche Dataflow doit disposer du rôle
roles/dataflow.developer
.- Tous deux ont besoin du rôle
roles/storage.objectAdmin
ou d'un rôle connexe pour préparer les fichiers requis. - Pour les opérations de débogage et de vérification des quotas, ils doivent également disposer du rôle
roles/compute.viewer
pour le projet. - En l'absence d'autres attributions de rôle, ce rôle permet aux développeurs de créer et d'annuler des tâches Dataflow, mais pas d'interagir avec les VM individuelles ni d'accéder à d'autres services cloud.
- Tous deux ont besoin du rôle
- Le compte de service de nœud de calcul doit disposer des rôles
roles/dataflow.worker
etroles/dataflow.admin
pour traiter les données du service Dataflow.- Pour accéder aux données de tâches, le compte de service du nœud de calcul a besoin d'autres rôles tels que
roles/storage.objectAdmin
. - Pour écrire des données dans des tables BigQuery, le compte de service du nœud de calcul doit disposer du rôle
roles/bigquery.dataEditor
. - Pour lire un sujet ou un abonnement Pub/Sub, le compte de service du nœud de calcul doit disposer du rôle
roles/pubsub.editor
.
- Pour accéder aux données de tâches, le compte de service du nœud de calcul a besoin d'autres rôles tels que
- Si vous utilisez un VPC partagé, le sous-réseau VPC partagé doit être partagé avec le compte de service Dataflow et doit avoir le rôle Utilisateur de réseau Compute attribué pour le sous-réseau spécifié.
- Pour savoir si le sous-réseau VPC partagé est partagé avec le compte de service Dataflow, accédez à la page VPC partagé de la console Google Cloud et recherchez le sous-réseau. Dans la colonne Partagé avec, vous pouvez voir si le sous-réseau VPC est partagé avec le compte de service Dataflow. Pour plus d'informations, consultez la section Consignes de spécification d'un paramètre de sous-réseau pour le VPC partagé.
- Le compte de service Compute Engine du projet hôte, le compte de service de nœud de calcul Dataflow du projet de service et le compte de service utilisé pour soumettre la tâche doivent disposer des rôles suivants :
roles/dataflow.admin
roles/dataflow.serviceAgent
roles/compute.networkUser
roles/storage.objectViewer
Attribuer des rôles Dataflow
Actuellement, les rôles Dataflow ne peuvent être définis que pour des organisations et des projets.
Pour gérer les rôles au niveau organisationnel, consultez la section Contrôle des accès pour les organisations qui utilisent les services IAM.
Pour définir des rôles au niveau d'un projet, consultez la page Accorder, modifier et révoquer les accès à des ressources.