Contrôle des accès avec IAM

Cloud Composer 1 | Cloud Composer 2

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

Présentation

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 de l'interface Web Airflow au-delà de l'activation ou de la désactivation de l'accès à celle-ci. Pour en savoir plus, consultez la page Contrôle des accès basé sur les rôles Airflow.

À propos d'Identity and Access Management dans Cloud Composer

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

Vous contrôlez l'accès à différentes fonctionnalités de Cloud Composer en attribuant des rôles et des autorisations à la fois pour les comptes de service IAM et pour les comptes utilisateur de votre projet Google Cloud.

Cloud Composer utilise deux types de comptes de service IAM :

À propos du compte d'agent de service Cloud Composer

Dans votre projet, le service Cloud Composer utilise un compte de service spécial géré par Google pour gérer les ressources liées à Cloud Composer. Ce compte est appelé Agent de service Cloud Composer.

L'agent de service Cloud Composer est utilisé pour tous les environnements de votre projet.

À propos des comptes de service pour les environnements Cloud Composer

Lorsque vous créez un environnement, vous spécifiez un compte de service. Le cluster de votre environnement utilise ce compte de service pour exécuter des pods avec différents composants d'environnement, tels que des nœuds de calcul et des programmeurs Airflow.

Par défaut, les environnements Cloud Composer s'exécutent avec le compte de service Compute Engine par défaut. Ce compte de service géré par Google dispose de plus d'autorisations que nécessaire pour exécuter des environnements Cloud Composer, 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. Spécifiez ensuite 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 d'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 en rôles. Vous pouvez attribuer ces rôles aux comptes principaux.

Si votre compte de service dispose du rôle Éditeur de projet, vous pouvez exécuter toutes les opérations d'environnement. Toutefois, ce rôle dispose d'autorisations étendues. Pour les utilisateurs travaillant avec des environnements, nous vous recommandons d'utiliser des rôles spécifiques à Cloud Composer. De cette manière, vous pouvez réduire le champ d'application des autorisations et fournir différents niveaux d'accès à différents comptes principaux. Par exemple, un utilisateur peut disposer des autorisations nécessaires pour créer, mettre à jour, mettre à niveau et supprimer des environnements, tandis qu'un autre peut uniquement afficher les environnements et accéder à l'interface Web Airflow.

Attribuer des rôles au compte d'agent de service Cloud Composer

Lorsque vous activez l'API Cloud Composer dans votre projet, le compte Agent de service Composer est créé dans votre projet. Cloud Composer utilise ce compte pour effectuer des opérations dans votre projet Google Cloud.

Par défaut, le compte Agent de service Composer dispose du rôle Agent de service de l'API Cloud Composer.

Cloud Composer 2 utilise GKE Autopilot, qui nécessite Workload Identity. Pour assurer la compatibilité de Workload Identity, le compte de service de votre environnement doit comporter des liaisons au compte de service Kubernetes qui exécute le cluster de votre environnement. Ces liaisons sont nécessaires pour que les pods de votre cluster d'environnement puissent accéder aux ressources de votre projet Google Cloud, par exemple, pour lire les fichiers de définition du DAG à partir du bucket de l'environnement.

Pour créer des liaisons entre le compte de service de votre environnement et le compte de service Kubernetes du cluster de votre environnement, le compte de l'agent de service Composer doit disposer des autorisations suffisantes. Cela nécessite les autorisations iam.serviceAccounts.getIamPolicy et iam.serviceAccounts.setIamPolicy, fournies par le rôle Extension d'agent de service de l'API Cloud Composer v2. Ce rôle n'est pas accordé automatiquement. Vous devez l'accorder manuellement une fois par projet.

Pour obtenir des instructions sur l'ajout de ce rôle, consultez la page Créer des environnements.

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

Pour un compte de service géré par l'utilisateur qui exécute des environnements Cloud Composer, procédez comme suit :

  • Pour une configuration d'adresse IP publique, attribuez le rôle Composer Worker (composer.worker).
  • Pour une configuration d'adresse IP privée :
    1. Attribuez le rôle Composer Worker (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 pour les environnements Cloud Composer, accordez les autorisations suivantes aux comptes principaux.

Gérer les environnements et les buckets d'environnement

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

  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 qu'un utilisateur puisse afficher, créer, mettre à jour, mettre à niveau et supprimer des environnements, accéder à l'interface Web Airflow, et afficher et déclencher des DAG à partir de l'interface utilisateur DAG:

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

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

Pour qu'un utilisateur puisse afficher des environnements, accéder à l'interface Web Airflow, afficher et déclencher des DAG à partir de l'interface utilisateurDAG, et gérer les objets dans les 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'environnement

Pour qu'un utilisateur puisse consulter des environnements, accéder à l'interface Web Airflow, afficher et déclencher des DAG à partir de l'interface utilisateur de l'instance, et afficher les objets dans les buckets d'environnements, attribuez le rôle Utilisateur de l'environnement et lecteur des objets Storage (composer.environmentAndStorageObjectViewer).

Afficher les environnements

Pour qu'un utilisateur puisse afficher des environnements, afficher et déclencher des DAG à partir de l'interface utilisateurDAG et accéder à l'interface Web Airflow, attribuez-lui le rôle Utilisateur de Composer (composer.user).

Attribuer des autorisations pour utiliser gcloud avec des environnements

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

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 doté des autorisations suffisantes pour le faire.

Si vous souhaitez exécuter des commandes CLI Airflow, vous devez disposer des autorisations supplémentaires suivantes:

  • container.namespaces.list
  • container.pods.exec
  • container.pods.get
  • container.pods.list

Rôles

Rôle Autorisations

Extension de l'agent de service de l'API Cloud Composer v2
(roles/composer.ServiceAgentV2Ext)

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

Administrateur Composer
(roles/composer.admin)

Permet un contrôle total des ressources Cloud Composer.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Projet
  • composer.*
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Administrateur de l'environnement et des objets Storage
(roles/composer.environmentAndStorageObjectAdmin)

Permet un contrôle total des ressources Cloud Composer ainsi que des objets de tous les buckets du projet.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Projet
  • composer.*
  • orgpolicy.policy.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.multipartUploads.*
  • storage.objects.*

Utilisateur de l'environnement et lecteur des objets Storage
(roles/composer.environmentAndStorageObjectViewer)

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.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Projet
  • composer.dags.*
  • 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

Agent Composer dans le VPC partagé
(roles/composer.sharedVpcAgent)

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.*

Utilisateur de Composer
(roles/composer.user)

Fournit les autorisations nécessaires pour répertorier et obtenir les environnements et les opérations Cloud Composer.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Projet
  • composer.dags.*
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Nœud de calcul Composer
(roles/composer.worker)

Fournit les autorisations nécessaires pour exécuter une VM avec environnement Cloud Composer. Destiné aux comptes de service.

Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :

  • Projet
  • artifactregistry.*
  • cloudbuild.builds.create
  • cloudbuild.builds.get
  • cloudbuild.builds.list
  • cloudbuild.builds.update
  • cloudbuild.workerpools.use
  • composer.environments.get
  • container.*
  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.update
  • logging.logEntries.create
  • logging.logEntries.list
  • logging.privateLogEntries.*
  • logging.views.access
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.*
  • monitoring.timeSeries.*
  • orgpolicy.policy.get
  • 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.multipartUploads.*
  • storage.objects.*

Rôles pour les agents de service

roles/composer.serviceAgent Agent de service de l'API Cloud Composer

L'agent de service de l'API Cloud Composer peut gérer les environnements.

  • appengine.applications.get
  • appengine.applications.update
  • appengine.instances.*
  • appengine.operations.*
  • appengine.runtimes.*
  • appengine.services.*
  • appengine.versions.create
  • appengine.versions.delete
  • appengine.versions.get
  • appengine.versions.list
  • appengine.versions.update
  • artifactregistry.repositories.create
  • artifactregistry.repositories.delete
  • artifactregistry.repositories.get
  • artifactregistry.repositories.list
  • artifactregistry.repositories.update
  • cloudnotifications.*
  • cloudsql.*
  • compute.acceleratorTypes.*
  • compute.addresses.*
  • compute.autoscalers.*
  • compute.backendBuckets.*
  • compute.backendServices.*
  • compute.diskTypes.*
  • compute.disks.*
  • compute.externalVpnGateways.*
  • compute.firewallPolicies.get
  • compute.firewallPolicies.list
  • compute.firewallPolicies.use
  • compute.firewalls.get
  • compute.firewalls.list
  • compute.forwardingRules.*
  • compute.globalAddresses.*
  • compute.globalForwardingRules.*
  • compute.globalNetworkEndpointGroups.*
  • compute.globalOperations.get
  • compute.globalOperations.list
  • compute.globalPublicDelegatedPrefixes.delete
  • compute.globalPublicDelegatedPrefixes.get
  • compute.globalPublicDelegatedPrefixes.list
  • compute.globalPublicDelegatedPrefixes.update
  • compute.globalPublicDelegatedPrefixes.updatePolicy
  • compute.healthChecks.*
  • compute.httpHealthChecks.*
  • compute.httpsHealthChecks.*
  • compute.images.*
  • compute.instanceGroupManagers.*
  • compute.instanceGroups.*
  • compute.instanceTemplates.*
  • compute.instances.*
  • compute.interconnectAttachments.*
  • compute.interconnectLocations.*
  • compute.interconnects.*
  • compute.licenseCodes.*
  • compute.licenses.*
  • compute.machineImages.*
  • compute.machineTypes.*
  • compute.networkEndpointGroups.*
  • compute.networks.*
  • compute.packetMirrorings.get
  • compute.packetMirrorings.list
  • compute.projects.get
  • compute.projects.setCommonInstanceMetadata
  • compute.publicDelegatedPrefixes.delete
  • compute.publicDelegatedPrefixes.get
  • compute.publicDelegatedPrefixes.list
  • compute.publicDelegatedPrefixes.update
  • compute.publicDelegatedPrefixes.updatePolicy
  • compute.regionBackendServices.*
  • compute.regionFirewallPolicies.get
  • compute.regionFirewallPolicies.list
  • compute.regionFirewallPolicies.use
  • compute.regionHealthCheckServices.*
  • compute.regionHealthChecks.*
  • compute.regionNetworkEndpointGroups.*
  • compute.regionNotificationEndpoints.*
  • compute.regionOperations.get
  • compute.regionOperations.list
  • compute.regionSslCertificates.get
  • compute.regionSslCertificates.list
  • compute.regionTargetHttpProxies.*
  • compute.regionTargetHttpsProxies.*
  • compute.regionUrlMaps.*
  • compute.regions.*
  • compute.reservations.get
  • compute.reservations.list
  • compute.resourcePolicies.*
  • compute.routers.*
  • compute.routes.*
  • compute.securityPolicies.get
  • compute.securityPolicies.list
  • compute.securityPolicies.use
  • compute.serviceAttachments.*
  • compute.snapshots.*
  • compute.sslCertificates.get
  • compute.sslCertificates.list
  • compute.sslPolicies.*
  • compute.subnetworks.*
  • compute.targetGrpcProxies.*
  • compute.targetHttpProxies.*
  • compute.targetHttpsProxies.*
  • compute.targetInstances.*
  • compute.targetPools.*
  • compute.targetSslProxies.*
  • compute.targetTcpProxies.*
  • compute.targetVpnGateways.*
  • compute.urlMaps.*
  • compute.vpnGateways.*
  • compute.vpnTunnels.*
  • compute.zoneOperations.get
  • compute.zoneOperations.list
  • compute.zones.*
  • container.*
  • deploymentmanager.compositeTypes.*
  • deploymentmanager.deployments.cancelPreview
  • deploymentmanager.deployments.create
  • deploymentmanager.deployments.delete
  • deploymentmanager.deployments.get
  • deploymentmanager.deployments.list
  • deploymentmanager.deployments.stop
  • deploymentmanager.deployments.update
  • deploymentmanager.manifests.*
  • deploymentmanager.operations.*
  • deploymentmanager.resources.*
  • deploymentmanager.typeProviders.*
  • deploymentmanager.types.*
  • firebase.projects.get
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • logging.buckets.create
  • logging.buckets.delete
  • logging.buckets.get
  • logging.buckets.list
  • logging.buckets.undelete
  • logging.buckets.update
  • logging.cmekSettings.*
  • logging.exclusions.*
  • logging.locations.*
  • logging.logEntries.create
  • logging.logMetrics.*
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.notificationRules.*
  • logging.operations.*
  • logging.sinks.*
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.list
  • logging.views.update
  • monitoring.alertPolicies.get
  • monitoring.alertPolicies.list
  • monitoring.dashboards.get
  • monitoring.dashboards.list
  • monitoring.groups.get
  • monitoring.groups.list
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.*
  • monitoring.notificationChannelDescriptors.*
  • monitoring.notificationChannels.get
  • monitoring.notificationChannels.list
  • monitoring.publicWidgets.get
  • monitoring.publicWidgets.list
  • monitoring.services.get
  • monitoring.services.list
  • monitoring.slos.get
  • monitoring.slos.list
  • monitoring.timeSeries.*
  • monitoring.uptimeCheckConfigs.get
  • monitoring.uptimeCheckConfigs.list
  • networkconnectivity.locations.*
  • networkconnectivity.operations.*
  • networksecurity.*
  • networkservices.*
  • opsconfigmonitoring.resourceMetadata.list
  • orgpolicy.policy.get
  • pubsub.*
  • recommender.cloudsqlIdleInstanceRecommendations.*
  • recommender.cloudsqlInstanceActivityInsights.*
  • recommender.cloudsqlInstanceCpuUsageInsights.*
  • recommender.cloudsqlInstanceDiskUsageTrendInsights.*
  • recommender.cloudsqlInstanceMemoryUsageInsights.*
  • recommender.cloudsqlInstanceOutOfDiskRecommendations.*
  • recommender.cloudsqlOverprovisionedInstanceRecommendations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • servicedirectory.namespaces.create
  • servicedirectory.namespaces.delete
  • servicedirectory.services.create
  • servicedirectory.services.delete
  • servicenetworking.operations.get
  • servicenetworking.services.addPeering
  • servicenetworking.services.get
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • stackdriver.projects.get
  • storage.buckets.*
  • storage.multipartUploads.*
  • storage.objects.*
  • trafficdirector.*

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.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.environments.update
composer.imagesversions.list
composer.Operations.delete
composer.Operations.get
composer.Operations.list
compose.dags.list
compose.dags.get.
Projet
roles/editor Éditeur Rôle de base permettant un contrôle complet sur les ressources Cloud Composer. composer.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.environments.update
composer.imagesversions.list
composer.Operations.delete
composer.Operations.get
composer.Operations.list
compose.dags.list
compose.dags.get.
Projet
roles/viewer Lecteur Rôle de base permettant à un utilisateur de répertorier et d'obtenir des ressources Cloud Composer. composer.environments.get
composer.environments.list
composer.imageversions.list
composer.Operations.get
composer.Operations.list
composer.dags.list
composer.dags.get
Projet

Autorisations pour les méthodes d'API

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 la CLI Google 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

Autorisations permettant d'utiliser les DAG à partir de Google Cloud Console

Les autorisations suivantes couvrent l'utilisation des DAG à partir de Google Cloud Console, via l'interface utilisateur DAG :

Permission Description
composer.dags.list Sur cette page, vous pouvez consulter la liste des DAG.
composer.dags.get Consultez des informations détaillées sur les DAG, les exécutions de DAG et les tâches sur la page des détails du DAG.
composer.dags.execute Déclenchez des DAG à partir de la page des détails du DAG.

Vous pouvez utiliser des autorisations Airflow RBAC pour contrôler davantage les autorisations des comptes utilisateur. L'UI du DAG nécessite des autorisations IAM et Airflow RBAC pour autoriser une action spécifique. Parallèlement, l'interface utilisateur d'Airflow ne valide l'accès utilisateur que pour les autorisations Airflow RBAC, en ignorant les autorisations IAM.

Par exemple, si un utilisateur dispose de l'autorisation composer.dags.executeet du rôle Viewer Airflow RBAC, cet utilisateur ne peut pas déclencher de DAG à partir de Google Cloud Console. À titre d'exemple, si un utilisateur ne dispose pas de l'autorisation composer.dags.list, il peut toujours afficher la liste des DAG dans l'interface utilisateur Airflow.

Utiliser un compte de service d'un autre projet

Si vous souhaitez qu'un environnement Cloud Composer d'un projet utilise un compte de service géré par l'utilisateur d'un autre projet, vous devez configurer ce compte pour travailler sur plusieurs projets.

Remplacez SERVICE_PROJECT_NUMBER par le numéro d'un projet où se trouve Cloud Composer.

  1. Modifiez la règle d'autorisation du projet dans lequel se trouve votre compte de service géré par l'utilisateur:

    1. Attribuez le rôle Créateur de jetons du compte de service au compte de service Compute Engine par défaut du projet dans lequel se trouve votre environnement (SERVICE_PROJECT_NUMBER-compute@developer.gserviceaccount.com).

    2. Attribuez le rôle Créateur de jetons du compte de service à l'agent de service Cloud Composer du projet où se trouve votre environnement (service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com).

    3. Accordez le rôle Cloud Composer Composer v2 Agent Agent Extension au compte d'agent de service Cloud Composer du projet où se trouve votre environnement (service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com).

  2. Modifiez la règle d'autorisation du projet où se trouve votre environnement. Attribuez les rôles requis à votre compte de service géré par l'utilisateur, comme décrit dans la section Attribuer des rôles à un compte de service géré par l'utilisateur. Par exemple, dans une configuration d'adresse IP publique, votre compte de service géré par l'utilisateur nécessite le rôle Composer Worker.

Étapes suivantes