Controle de acesso com o IAM

Nesta página, descrevemos as opções de controle de acesso no Cloud Data Fusion.

É possível controlar o acesso a recursos no Cloud Data Fusion das seguintes maneiras:

  • Para controlar o acesso a operações do plano de controle, como a criação e atualização de instâncias por meio do console do Google Cloud, da Google Cloud CLI e da API REST, use o Identity and Access Management (IAM), conforme descrito nesta página.

  • Para conceder acesso a serviços de dados do Google Cloud, como o BigQuery ou o Cloud Storage, a uma conta de serviço em que pipelines estão em execução, use o IAM.

  • Use o controle de acesso baseado em papéis (RBAC, na sigla em inglês) para controlar permissões granulares para ações realizadas na instância, conhecidas como operações de plano de dados, como inicialização de pipelines. Para mais informações, consulte a Visão geral do RBAC.

Para informações sobre a arquitetura e os recursos envolvidos no controle de acesso do Cloud Data Fusion, consulte Rede. Para informações sobre como conceder papéis e permissões, consulte Gerenciar o acesso a projetos, pastas e organizações.

Sobre o IAM no Cloud Data Fusion

Para controlar o acesso aos recursos do Cloud Data Fusion, conceda papéis e permissões do IAM a contas de serviço e outros principais no projeto do Google Cloud.

Para conceder acesso detalhado a contas de usuários para que elas possam usar a interface da Web do Cloud Data Fusion, use o RBAC.

Por padrão, o Cloud Data Fusion usa as seguintes contas de serviço:

Conta de serviços do Cloud Data Fusion:

A conta de serviço do Cloud Data Fusion é um agente de serviço gerenciado pelo Google que pode acessar recursos do cliente no momento da criação do pipeline. Esse agente de serviço é adicionado automaticamente a um projeto quando você ativa a API Cloud Data Fusion. Ele é usado em todas as instâncias do projeto.

O agente de serviço tem as responsabilidades a seguir:

  • comunicação com outros serviços, como Cloud Storage, BigQuery ou Datastream, durante a criação do pipeline;

  • Ativar a execução provisionando clusters do Dataproc e enviando jobs de pipeline.

Papéis para a conta de serviço do Cloud Data Fusion

Por padrão, a conta de serviço do Cloud Data Fusion tem apenas o papel de agente de serviço da API Cloud Data Fusion (roles/datafusion.serviceAgent).

O nome principal deste agente de serviço é service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.

Os recursos padrão a seguir estão associados ao papel de Agente de serviço da API Cloud Data Fusion.

Papel Recurso Permissões
Agente de serviço da API Cloud Data Fusion Serviços associados:
  • BigQuery
  • Bigtable
  • Compute Engine
  • Dataproc
  • Cloud DNS
  • Firebase
  • Cloud Monitoring
  • Conectividade de rede
  • Gerente de integração de serviço de rede
  • API Network Services
  • Política da organização
  • API Recommender
  • API Cloud Resource Manager
  • Service Networking
  • Service Usage
  • Spanner
  • Cloud Storage
  • Traffic Director
Consulte as permissões do agente de serviço da API Cloud Data Fusion.

Conta de serviço padrão ou personalizada do Compute Engine

A conta de serviço do Compute Engine é a conta padrão que o Cloud Data Fusion usa para implantar e executar jobs que acessam outros recursos do Google Cloud. Por padrão, ele se anexa a uma VM de cluster do Dataproc para permitir que o Cloud Data Fusion acesse os recursos do Dataproc durante a execução de um pipeline.

Escolha uma conta de serviço personalizada para anexar ao cluster do Dataproc ao criar uma instância do Cloud Data Fusion ou criar novos perfis do Compute na interface da Web do Cloud Data Fusion.

Para mais informações, consulte Contas de serviço no Cloud Data Fusion.

Papéis da conta de serviço do Compute Engine

Por padrão, para acessar recursos (como fontes e coletores) ao executar um pipeline, o Cloud Data Fusion usa a conta de serviço padrão do Compute Engine.

É possível configurar uma conta de serviço personalizada gerenciada pelo usuário para instâncias do Cloud Data Fusion e conceder um papel a essa conta. Depois, escolha essa conta de serviço ao criar novas instâncias.

Papel "Executor do Cloud Data Fusion"

No projeto que contém a instância do Cloud Data Fusion, para as contas de serviço personalizadas padrão e gerenciadas pelo usuário, conceda o papel Runner do Cloud Data Fusion (datafusion.runner).

Papel Descrição Permissão
Executor do Data Fusion (datafusion.runner) Permite que a conta de serviço do Compute Engine se comunique com os serviços do Cloud Data Fusion no projeto de locatário. datafusion.instances.runtime

Papel Usuário da conta de serviço

Na conta de serviço padrão ou gerenciada pelo usuário no projeto em que os clusters do Dataproc são iniciados ao executar pipelines, conceda à conta de serviço do Cloud Data Fusion o papel de usuário da conta de serviço (roles/iam.serviceAccountUser).

Para mais informações, consulte Conceder permissão à conta de serviço.

Papel de worker do Dataproc

Para executar os jobs em clusters do Dataproc, conceda o papel de worker do Dataproc (roles/dataproc.worker) às contas de serviço padrão ou gerenciadas pelo usuário usadas pelos pipelines do Cloud Data Fusion.

Funções para usuários

Para acionar qualquer operação no Cloud Data Fusion, você (o principal) precisa ter permissões suficientes. As permissões individuais são agrupadas em papéis, e você concede papéis a esse principal.

Se o RBAC não estiver ativado ou se você estiver usando uma edição do Cloud Data Fusion que não oferece suporte a ele, os usuários com qualquer papel do IAM do Cloud Data Fusion terão acesso total à interface da Web do Cloud Data Fusion. O papel de Administrador só permite que os usuários gerenciem a instância, como as operações Create, Update, Upgrade e Delete.

Conceda os papéis a seguir aos principais, dependendo das permissões necessárias no Cloud Data Fusion.

Papel Descrição Permissões
Administrador do Cloud Data Fusion (roles/datafusion.admin) Todas as permissões de leitor e permissões para criar, atualizar e excluir instâncias do 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
Leitor do Cloud Data Fusion (roles/datafusion.viewer)
  • Pode ver as instâncias do Cloud Data Fusion do projeto no console do Google Cloud.
  • Não é possível criar, atualizar ou excluir instâncias do Cloud Data Fusion.
  • datafusion.instances.get
  • datafusion.instances.list
  • datafusion.operations.get
  • datafusion.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Acessar recursos em outro projeto no momento do design

Nesta seção, descrevemos o controle de acesso aos recursos localizados em um projeto do Google Cloud diferente da sua instância do Cloud Data Fusion no momento do design.

Ao projetar pipelines na interface da Web do Cloud Data Fusion, use funções como Wrangler ou Preview, que acessam recursos em outros projetos.

As seções a seguir descrevem como você determina a conta de serviço no seu ambiente e concede as permissões apropriadas.

Determine a conta de serviço do seu ambiente

O nome da conta de serviço é a conta de serviço do Cloud Data Fusion, e o principal deste agente de serviço é service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.

Conceder permissão para acessar recursos em outro projeto

Para conceder os papéis que dão permissão para acessar vários recursos, siga estas etapas:

  1. No projeto em que há o recurso de destino, adicione a conta de serviço do Cloud Data Fusion (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com) como principal.
  2. Conceda papéis à conta de serviço do Cloud Data Fusion no recurso de destino no projeto em que o recurso de destino existe.

Depois de conceder os papéis, é possível acessar recursos em um projeto diferente no momento do design da mesma maneira que acessa os recursos no projeto em que sua instância está localizada.

Acessar recursos em outro projeto em tempo de execução

Nesta seção, descrevemos o controle de acesso em recursos localizados em um projeto do Google Cloud diferente da sua instância do Cloud Data Fusion no momento de execução.

No momento da execução, você executa o pipeline em um cluster do Dataproc, que pode acessar recursos em outros projetos. Por padrão, o cluster do Dataproc é iniciado no mesmo projeto que a instância do Cloud Data Fusion, mas é possível usar clusters em outro projeto.

Para acessar os recursos em outros projetos do Google Cloud, siga estas etapas:

  1. Determine a conta de serviço do seu projeto.
  2. No projeto em que o recurso está, conceda papéis do IAM à conta de serviço padrão do Compute Engine para conceder acesso a recursos em outro projeto.

Determine a conta de serviço do Compute Engine

Para mais informações sobre a conta de serviço do Compute Engine, consulte Sobre o IAM no Cloud Data Fusion.

Conceder recursos de acesso do IAM em outro projeto

A conta de serviço padrão do Compute Engine requer permissões para acessar recursos em outro projeto. Esses papéis e permissões podem ser diferentes, dependendo do recurso que você quer acessar.

Para acessar os recursos, siga estas etapas:

  1. Conceda papéis e permissões, especificando sua conta de serviço do Compute Engine como principal no projeto em que o recurso de destino existe.
  2. Adicione papéis apropriados para acessar o recurso.

Permissões da API do Cloud Data Fusion

As permissões a seguir são necessárias para executar a API Cloud Data Fusion.

Chamada de API Permissão
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

Permissões para tarefas comuns

As tarefas comuns do Cloud Data Fusion exigem as seguintes permissões:

Tarefa Permissões
Como acessar a interface da Web do Cloud Data Fusion datafusion.instances.get
Como acessar a página Instâncias do Cloud Data Fusion no console do Google Cloud datafusion.instances.list
Como acessar a página Detalhes de uma instância datafusion.instances.get
Criar uma nova instância datafusion.instances.create
Como atualizar rótulos e opções avançadas para personalizar uma instância datafusion.instances.update
Como excluir uma instância datafusion.instances.delete

A seguir