Controle de acesso com o IAM

Cloud Composer 1 | Cloud Composer 2

Esta página descreve as opções de controle de acesso disponíveis no Cloud Composer e explica como atribuir papéis.

Visão geral

Para saber mais sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível controlar permissões para a interface da Web do Airflow além de ativar ou desativar o acesso a ela. Para mais informações, consulte Controle de acesso da IU do Airflow.

Sobre o Identity and Access Management no Cloud Composer

O Cloud Composer usa o Identity and Access Management (IAM) para controle de acesso.

Para controlar o acesso a diferentes recursos do Cloud Composer, atribua papéis e permissões às contas de serviço do IAM e às contas de usuário no projeto do Google Cloud.

O Cloud Composer usa dois tipos de contas de serviço do IAM:

Sobre a conta do agente de serviço do Cloud Composer

Sobre a conta do agente de serviço do Cloud Composer Essa conta é chamada de Agente de serviço do Cloud Composer.

O agente de serviço do Cloud Composer é usado em todos os ambientes no projeto.

Sobre as contas de serviço dos ambientes do Cloud Composer

Ao criar um ambiente, você especifica uma conta de serviço. O cluster do ambiente usa essa conta de serviço para executar pods com diferentes componentes do ambiente, como workers e programadores do Airflow.

Por padrão, os ambientes do Cloud Composer são executados com a conta de serviço padrão do Compute Engine. Essa conta de serviço gerenciada pelo Google tem mais permissões do que o necessário para executar ambientes do Cloud Composer, geralmente o papel básico de Editor.

É recomendável configurar uma conta de serviço gerenciada pelo usuário para ambientes do Cloud Composer. Atribua a ela um papel específico do Cloud Composer. Em seguida, especifique essa conta de serviço ao criar novos ambientes.

Sobre os papéis para usuários do Cloud Composer

Para acionar uma operação de ambiente, um usuário precisa ter permissões suficientes. Por exemplo, se você quiser criar um novo ambiente, será necessário ter a permissão composer.environments.create.

No Cloud Composer, as permissões individuais são agrupadas em papéis. É possível atribuí-los aos principais.

Se a conta de serviço tiver o papel Editor do projeto, será possível executar todas as operações do ambiente. No entanto, esse papel tem permissões amplas. Para usuários que trabalham com ambientes, é recomendável usar papéis específicos do Cloud Composer. Dessa forma, é possível restringir o escopo das permissões e fornecer diferentes níveis de acesso para principais diferentes. Por exemplo, um usuário pode ter permissões para criar, atualizar, fazer upgrade e excluir ambientes, enquanto outro usuário só pode ver ambientes e acessar a interface da Web do Airflow.

Atribuir papéis à conta de agente de serviço do Cloud Composer

Quando você ativa a API Cloud Composer no projeto, a conta do agente de serviço do Composer é criada no projeto. O Cloud Composer usa essa conta para realizar operações no seu projeto do Google Cloud.

Por padrão, a conta do Agente de serviço do Composer tem o papel Agente de serviço da API Cloud Composer.

O Cloud Composer 2 usa o Autopilot do GKE, que requer a Identidade da carga de trabalho. Para aceitar a Identidade da carga de trabalho, a conta de serviço do seu ambiente precisa ter vinculações à conta de serviço do Kubernetes que executa o cluster do ambiente. Essas vinculações são necessárias para que os pods do cluster de ambiente possam acessar recursos do projeto do Google Cloud. Por exemplo, para ler arquivos de definição do DAG no bucket do ambiente.

Para criar vinculações entre a conta de serviço do seu ambiente e a conta de serviço do Kubernetes do cluster do ambiente, a conta do agente de serviço do Composer precisa ter permissões suficientes para isso. Especificamente, as permissões iam.serviceAccounts.getIamPolicy e iam.serviceAccounts.setIamPolicy, que são fornecidas pelo papel Extensão de agente de serviço de API Cloud Composer v2. Esse papel não é concedido automaticamente. É necessário concedê-lo manualmente uma vez por projeto.

Para ver instruções sobre como adicionar esse papel, consulte Criar ambientes.

Atribuir papéis a uma conta de serviço gerenciada pelo usuário

Para uma conta de serviço gerenciada pelo usuário que executa ambientes do Cloud Composer:

  • Para uma configuração de IP público, atribua o papel Composer Worker (composer.worker).
  • Para uma configuração de IP particular:
    1. Atribua o papel Worker do Compose (composer.worker).
    2. Atribua o papel Usuário da conta de serviço (iam.serviceAccountUser).

Atribuir funções aos usuários

Dependendo do nível de acesso que você quer dar aos ambientes do Cloud Composer, conceda as seguintes permissões aos principais.

Gerenciar ambientes e buckets de ambiente

Para um usuário que possa visualizar, criar, atualizar, fazer upgrade e excluir ambientes, gerenciar objetos (como arquivos DAG) nos buckets de ambiente, acessar a interface da Web do Airflow, visualizar e acionar DAGs na IU do DAG:

  1. Atribua o papel Administrador de objetos do armazenamento e do ambiente (composer.environmentAndStorageObjectAdmin).
  2. Atribua o papel Usuário da conta de serviço (iam.serviceAccountUser).

    Para restringir as permissões de um usuário, conceda esse papel somente na conta de serviço do seu ambiente. Para mais informações, consulte Conceder ou revogar um único papel.

Gerenciar ambientes

Para um usuário que possa visualizar, criar, atualizar, fazer upgrade e excluir ambientes, acesse a interface da Web do Airflow, visualize e acione DAGs na IU do DAG:

  1. Atribua o papel Administrador do Composer (composer.admin).
  2. Atribua o papel Usuário da conta de serviço (iam.serviceAccountUser).

    Para restringir as permissões de um usuário, conceda esse papel somente na conta de serviço do seu ambiente. Para mais informações, consulte Conceder ou revogar um único papel.

Ver ambientes e gerenciar buckets de ambientes

Para um usuário que pode visualizar ambientes, acessar a interface da Web do Airflow, visualizar e acionar DAGs na IU do DAG e gerenciar objetos nos buckets do ambiente (por exemplo, para fazer upload de novos arquivos DAG):

  1. Atribua o papel Usuário de ambiente e leitor de objeto de armazenamento (composer.environmentAndStorageObjectViewer).
  2. Atribua o papel Administrador de objeto de armazenamento (storage.objectAdmin).

Ver ambientes e buckets de ambiente

Para um usuário que possa visualizar ambientes, acessar a interface da Web do Airflow, visualizar e acionar DAGs na IU do DAG e ver objetos em buckets do ambiente, atribua o papel Leitor de ambiente e usuário de objeto do Storage (composer.environmentAndStorageObjectViewer).

Ver ambientes

Para um usuário que possa visualizar ambientes, visualizar e acionar DAGs na IU do DAG e acessar a interface da Web do Airflow, atribua o papel Usuário do Composer (composer.user).

Atribuir permissões para usar gcloud em ambientes

Para usar o gcloud com os ambientes do Cloud Composer, você precisa das seguintes permissões:

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

Se você quiser gerenciar ambientes ou buckets de ambiente com comandos gcloud composer, também precisará ter um papel com permissões suficientes para isso.

Se você quiser executar os comandos da CLI do Airflow, precisará das seguintes permissões adicionais:

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

Papéis

Papel Permissões

Extensão do agente de serviço da API Cloud Composer v2
(roles/composer.ServiceAgentV2Ext)

A extensão do agente de serviço da API Cloud Composer v2 é um papel complementar necessário para gerenciar os ambientes da Composer v2.

  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy

Administrador do Composer
(roles/composer.admin)

Concede controle total dos recursos do Cloud Composer.

Recursos de nível mais baixo em que é possível conceder esse papel:

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

Administrador de objetos do armazenamento e do ambiente
(roles/composer.environmentAndStorageObjectAdmin)

Concede controle total dos recursos do Cloud Composer e dos objetos em todos os buckets do projeto.

Recursos de nível mais baixo em que é possível conceder esse papel:

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

Usuário do ambiente e leitor de objetos do armazenamento
(roles/composer.environmentAndStorageObjectViewer)

Concede as permissões necessárias para listar e receber ambientes e operações do Cloud Composer. Concede acesso somente leitura a objetos em todos os buckets do projeto.

Recursos de nível mais baixo em que é possível conceder esse papel:

  • Projeto
  • composer.dags.*
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.list
  • 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

Agente de VPC compartilhada do Cloud Composer
(roles/composer.sharedVpcAgent)

Papel a ser atribuído à conta de serviço do agente do Cloud Composer no projeto host da VPC compartilhada

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

Usuário do Cloud Composer
(roles/composer.user)

Concede as permissões necessárias para listar e receber ambientes e operações do Cloud Composer.

Recursos de nível mais baixo em que é possível conceder esse papel:

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

Worker do Composer
(roles/composer.worker)

Concede as permissões necessárias para executar uma VM de ambiente do Cloud Composer. Destinado a contas de serviço.

Recursos de nível mais baixo em que é possível conceder esse papel:

  • Projeto
  • 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.list
  • 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.*

Papéis para agentes de serviço

roles/composer.serviceAgent Agente de serviço da API Cloud Composer

O agente de serviço da API Cloud Composer pode gerenciar ambientes.

  • appengine.applications.get
  • appengine.applications.update
  • appengine.instances.*
  • appengine.memcache.addKey
  • appengine.memcache.flush
  • appengine.memcache.get
  • appengine.memcache.update
  • appengine.operations.*
  • appengine.runtimes.actAsAdmin
  • 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.activities.list
  • 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.list
  • logging.logServices.list
  • 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.getIamPolicy
  • resourcemanager.projects.list
  • servicedirectory.namespaces.create
  • servicedirectory.namespaces.delete
  • servicedirectory.services.create
  • servicedirectory.services.delete
  • servicenetworking.operations.get
  • servicenetworking.services.addPeering
  • servicenetworking.services.createPeeredDnsDomain
  • servicenetworking.services.deletePeeredDnsDomain
  • servicenetworking.services.get
  • servicenetworking.services.listPeeredDnsDomains
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • stackdriver.projects.get
  • storage.buckets.*
  • storage.multipartUploads.*
  • storage.objects.*
  • trafficdirector.*

Papéis básicos

Papel Nome Descrição Permissões Menor recurso
roles/owner Proprietário Papel básico que permite o controle total dos recursos do Cloud Composer. composer.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.environments.update
composer.imageversions.list
composer.operations.delete
composer.operations.get
composer.operations.list
composer.dags.list
composer.dags.get.act

Projeto
roles/editor Editor Papel básico que permite o controle total dos recursos do Cloud Composer. composer.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.environments.update
composer.imageversions.list
composer.operations.delete
composer.operations.get
composer.operations.list
composer.dags.list
composer.dags.get.act

Projeto
roles/viewer Leitor Papel básico que permite ao usuário listar e acessar recursos do Cloud Composer. composer.environments.get
composer.environments.list
composer.imageversions.list
composer.operations.get
composer.operations.list
composer.dags.list
composer.dags.get
Projeto

Permissões para métodos de API

A tabela a seguir lista as permissões que o autor da chamada precisa ter para chamar cada método na API Cloud Composer ou para executar tarefas usando ferramentas do Google Cloud que usam a API, como o Console do Google Cloud ou a CLI do Google Cloud.

Método Permissão
environments.create composer.environments.create e iam.serviceAccounts.actAs na conta de serviço do ambiente.
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

Permissões para trabalhar com DAGs no Console do Google Cloud

As seguintes permissões abrangem o trabalho com DAGs no Console do Google Cloud, por meio da IU do DAG:

Permissão Descrição
composer.dags.list Veja a lista de DAGs na página de detalhes do ambiente.
composer.dags.get Veja informações detalhadas sobre DAGs, execuções de DAGs e tarefas na página de detalhes do DAG.
composer.dags.execute É possível acionar DAGs na página de detalhes.

É possível usar o controle de acesso da IU do Airflow para controlar melhor as permissões do DAG nas contas de usuário. A IU do DAG exige permissões do controle de acesso da IU do IAM e do Airflow para permitir uma ação específica em um DAG. Ao mesmo tempo, a IU do Airflow valida o acesso do usuário apenas em relação às permissões de controle de acesso da IU do Airflow, ignorando as permissões do IAM.

Por exemplo, se um usuário tiver a permissão composer.dags.execute e o papel do Airflow Viewer, ele não poderá acionar DAGs no Console do Google Cloud. Como exemplo oposto, se um usuário não tiver a permissão composer.dags.list, ele ainda poderá ver a lista de DAGs na IU do Airflow.

Como usar uma conta de serviço de outro projeto

Se quiser que um ambiente do Cloud Composer em um projeto use uma conta de serviço gerenciada pelo usuário de um projeto diferente, configure a conta de serviço gerenciada pelo usuário para funcionar em todos os projetos.

Substitua SERVICE_PROJECT_NUMBER pelo número do projeto em que o Cloud Composer está localizado.

  1. Edite a política de permissão do projeto em que a conta de serviço gerenciada pelo usuário está localizada:

    1. Conceda o papel Criador de token de conta de serviço à conta de serviço padrão do Compute Engine do projeto em que seu ambiente está localizado (SERVICE_PROJECT_NUMBER-compute@developer.gserviceaccount.com).

    2. Conceda o papel Criador de token de conta de serviço ao agente de serviço do Cloud Composer do projeto em que seu ambiente está localizado (service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com).

    3. Conceda o papel Extensão de agente de serviço da API Cloud Composer v2 à conta do agente de serviço do Cloud Composer do projeto em que o ambiente está localizado (service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com).

  2. Edite a política de permissão do projeto em que o ambiente está localizado. Conceda os papéis necessários à sua conta de serviço gerenciada pelo usuário, conforme descrito em Atribuir papéis a uma conta de serviço gerenciada pelo usuário. Por exemplo, em uma configuração de IP público, sua conta de serviço gerenciada pelo usuário exige o papel Worker do Composer.

A seguir