Contrôle des accès

Cette page décrit les options de contrôle des accès dont vous disposez dans Cloud Composer et explique comment attribuer des rôles.

Présentation

Cloud Composer utilise IAM (Identity and Access Management) pour le contrôle des accès.

Pour obtenir une description détaillée de Cloud IAM et de ses fonctionnalités, consultez la documentation IAM,

Pour plus d'informations sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également contrôler les autorisations pour l'interface Web Airflow au-delà du fait de lui donner accès. Pour en savoir plus, consultez la page Contrôle des accès basé sur les rôles Airflow.

À propos des comptes de service pour les environnements Cloud Composer

Lorsque vous créez un environnement, vous spécifiez un compte de service. Ce compte de service exécute des nœuds GKE de votre environnement Cloud Composer.

Par défaut, les environnements Cloud Composer s'exécutent à l'aide du compte de service Compute Engine par défaut. Ce compte de service géré par Google dispose d'autorisations étendues, généralement le rôle de base Éditeur.

Nous vous recommandons de configurer un compte de service géré par l'utilisateur pour les environnements Cloud Composer. Attribuez à ce compte un rôle spécifique à Cloud Composer. Ensuite, spécifiez ce compte de service lors de la création d'environnements.

À propos des rôles pour les utilisateurs de Cloud Composer

Pour déclencher une opération d'environnement, un utilisateur doit disposer des autorisations suffisantes. Par exemple, si vous souhaitez créer un environnement, vous devez disposer de l'autorisation composer.environments.create.

Pour Cloud Composer, les autorisations individuelles sont regroupées dans des rôles. Vous pouvez attribuer ces rôles aux membres de votre projet.

Si vous avez un rôle d'Éditeur de projet, vous pouvez exécuter toutes les opérations de l'environnement. Toutefois, ce rôle dispose d'autorisations étendues. Pour les utilisateurs qui travaillent avec des environnements, nous vous recommandons d'utiliser des rôles spécifiques à Cloud Composer. Ainsi, vous pouvez réduire le champ d'application des autorisations et accorder différents niveaux d'accès aux membres de votre projet. Par exemple, un utilisateur peut disposer des autorisations nécessaires pour créer, mettre à jour, mettre à jour et supprimer des environnements, tandis qu'un autre utilisateur ne peut que visualiser les environnements et accéder à l'interface Web Airflow.

Attribuer des rôles à un compte de service géré par l'utilisateur

Pour un compte de service géré par l'utilisateur exécutant des environnements Cloud Composer:

  • Pour une configuration IP publique, attribuez le rôle Nœud de calcul Composer (composer.worker).
  • Pour la configuration d'une adresse IP privée :
    1. Attribuez le rôle Nœud de calcul Composer (composer.worker).
    2. Attribuez le rôle Utilisateur du compte de service (iam.serviceAccountUser).

Attribuer des rôles aux utilisateurs

Selon le niveau d'accès que vous souhaitez fournir aux environnements Cloud Composer, accordez les autorisations suivantes aux membres de votre projet.

Gérer les environnements et les buckets d'environnements

Pour qu'un utilisateur puisse afficher, créer, mettre à jour, mettre à jour et supprimer des environnements, gérer des objets (tels que des fichiers DAG) dans les buckets d'environnement, et accéder à l'interface Web Airflow:

  1. Attribuez le rôle Administrateur de l'environnement et des objets de l'espace de stockage (composer.environmentAndStorageObjectAdmin).
  2. Attribuez le rôle Utilisateur du compte de service (iam.serviceAccountUser).

Gérer les environnements

Pour un utilisateur pouvant afficher, créer, mettre à jour, mettre à jour et supprimer des environnements, et accéder à l'interface Web Airflow, procédez comme suit:

  1. Attribuez le rôle Administrateur de Composer (composer.admin).
  2. Attribuez le rôle Utilisateur du compte de service (iam.serviceAccountUser).

Afficher les environnements et gérer les buckets d'environnements

Pour un utilisateur pouvant afficher les environnements, accéder à l'interface Web Airflow et gérer les objets des buckets d'environnement (par exemple, pour importer de nouveaux fichiers DAG):

  1. Attribuez le rôle Utilisateur de l'environnement et lecteur des objets de l'espace de stockage (composer.environmentAndStorageObjectViewer).
  2. Attribuez le rôle Administrateur des objets de l'espace de stockage (storage.objectAdmin).

Afficher les environnements et les buckets d'environnements

Pour qu'un utilisateur puisse afficher les environnements, accéder à l'interface Web d'Airflow et afficher des objets dans des buckets d'environnement, attribuez le utilisateur d'environnement et le lecteur d'objet de stockage (composer.environmentAndStorageObjectViewer). ).

Afficher les environnements

Pour un utilisateur pouvant afficher les environnements et accéder à l'interface Web Airflow, attribuez le rôle Utilisateur de Composer (composer.user).

Attribuer des autorisations pour utiliser gcloud avec des environnements

Les autorisations suivantes sont requises pour utiliser l'outil de ligne de commande gcloud avec les environnements Cloud Composer, par exemple, pour exécuter des commandes de CLI Airflow.

Si vous souhaitez gérer des environnements ou des buckets d'environnement à l'aide de commandes gcloud composer, vous devez également disposer d'un rôle disposant des autorisations suffisantes pour le faire.

Pour utiliser gcloud avec des environnements Cloud Composer, vous devez disposer des autorisations suivantes:

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

Rôles

Rôle Titre Description Autorisations Ressource la plus basse
roles/composer.ServiceAgentV2Ext Extension de l'agent de service de l'API Cloud Composer v2 L'extension de l'agent de service de l'API Cloud Composer v2 est un rôle complémentaire nécessaire pour gérer les environnements Composer v2.
  • iam.serviceAccounts.getiamPolicy
  • iam.serviceAccounts.setIamPolicy
roles/composer.admin Administrateur Composer Permet un contrôle total des ressources Cloud Composer.
  • composer.*
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
Projet
roles/composer.environmentAndStorageObjectAdmin Administrateur de l'environnement et des objets Storage Permet un contrôle total des ressources Cloud Composer ainsi que des objets de tous les buckets du projet.
  • composer.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.*
Projet
roles/composer.environmentAndStorageObjectViewer Utilisateur de l'environnement et lecteur des objets Storage Fournit les autorisations nécessaires pour répertorier et obtenir les environnements et les opérations Cloud Composer. Offre un accès en lecture seule aux objets de tous les buckets du projet.
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.get
  • storage.objects.list
Projet
roles/composer.sharedVpcAgent Agent Composer dans le VPC partagé Rôle qui doit être attribué au compte de service de l'agent Composer dans le projet hôte VPC partagé
  • compute.networks.access
  • compute.networks.addPeering
  • compute.networks.get
  • compute.networks.list
  • compute.networks.listPeeringRoutes
  • compute.networks.removePeering
  • compute.networks.updatePeering
  • compute.networks.use
  • compute.networks.useExternalIp
  • compute.projects.get
  • compute.regions.*
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.zones.*
roles/composer.user Utilisateur de Composer Fournit les autorisations nécessaires pour répertorier et obtenir les environnements et les opérations Cloud Composer.
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
Projet
roles/composer.worker Nœud de calcul Composer Fournit les autorisations nécessaires pour exécuter une VM avec environnement Cloud Composer. Destiné aux comptes de service.
  • artifactregistry.*
  • cloudbuild.*
  • container.*
  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.update
  • logging.logEntries.create
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.*
  • monitoring.timeSeries.*
  • pubsub.schemas.attach
  • pubsub.schemas.create
  • pubsub.schemas.delete
  • pubsub.schemas.get
  • pubsub.schemas.list
  • pubsub.schemas.validate
  • pubsub.snapshots.create
  • pubsub.snapshots.delete
  • pubsub.snapshots.get
  • pubsub.snapshots.list
  • pubsub.snapshots.seek
  • pubsub.snapshots.update
  • pubsub.subscriptions.consume
  • pubsub.subscriptions.create
  • pubsub.subscriptions.delete
  • pubsub.subscriptions.get
  • pubsub.subscriptions.list
  • pubsub.subscriptions.update
  • pubsub.topics.attachSubscription
  • pubsub.topics.create
  • pubsub.topics.delete
  • pubsub.topics.detachSubscription
  • pubsub.topics.get
  • pubsub.topics.list
  • pubsub.topics.publish
  • pubsub.topics.update
  • pubsub.topics.updateTag
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • source.repos.get
  • source.repos.list
  • storage.buckets.create
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.*
Projet

Rôles de base

Rôle Titre Description Autorisations Ressource la plus basse
roles/owner Propriétaire Rôle de base permettant un contrôle complet sur les ressources Cloud Composer. composer.operations.list
composer.operations.get
composer.operations.delete
composer.environments.list
composer.environments.get
composer.environments.delete
composer.environments.update
composer.environments.create
iam.serviceAccounts.actAs
Projet
roles/editor Éditeur Rôle de base permettant un contrôle complet sur les ressources Cloud Composer. composer.operations.list
composer.operations.get
composer.operations.delete
composer.environments.list
composer.environments.get
composer.environments.delete
composer.environments.update
composer.environments.create
iam.serviceAccounts.actAs
Projet
roles/reader Lecteur Rôle de base permettant à un utilisateur de répertorier et d'obtenir des ressources Cloud Composer. composer.operations.list
composer.operations.get
composer.environments.list
composer.environments.get
Projet

Autorisations

Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode d'API dans l'API Cloud Composer ou pour effectuer des tâches à l'aide des outils Google Cloud qui utilisent l'API (tels que Google Cloud Console ou le SDK Cloud). ).

Méthode Autorisation
environments.create composer.environments.create et iam.serviceAccounts.actAs sur le compte de service de l'environnement.
environments.delete composer.environments.delete
environments.get composer.environments.get
environments.list composer.environments.list
environments.update composer.environments.update
operations.delete composer.operations.delete
operations.get composer.operations.get
operations.list composer.operations.list

Étape suivante