Nesta página, descrevemos as opções de controle de acesso no Cloud Data Fusion.
Você pode controlar o acesso aos recursos no Cloud Data Fusion das seguintes maneiras:
Para controlar o acesso às operações do plano de controle, como criar e atualizar instâncias pelo console Google Cloud , pela Google Cloud CLI e pela API REST, use o Identity and Access Management (IAM), conforme descrito nesta página.
Para conceder acesso a serviços de dados Google Cloud , como o BigQuery ou o Cloud Storage, a uma conta de serviço em que os pipelines estão sendo executados, use o IAM.
Para controlar permissões granulares de ações realizadas na instância, conhecidas como operações do plano de dados, como iniciar pipelines, use o controle de acesso baseado em papéis (RBAC).
Para informações sobre a arquitetura e os recursos envolvidos no controle de acesso do Cloud Data Fusion, consulte Redes. Para saber mais sobre a concessão de papéis e permissões, consulte Gerenciar o acesso a projetos, pastas e organizações.
Sobre o IAM no Cloud Data Fusion
Você controla o acesso aos recursos do Cloud Data Fusion concedendo papéis e permissões do IAM a contas de serviço e outros principais no projeto Google Cloud .
Para conceder acesso detalhado a contas de usuário para que elas possam usar a interface da Web do Cloud Data Fusion, use o controle de acesso baseado em funçã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 durante o design do pipeline. Esse agente de serviço é adicionado automaticamente a um projeto quando você ativa a API Data Fusion. Ele é usado para todas as instâncias no seu projeto.
O agente de serviço tem as seguintes responsabilidades:
Comunicação com outros serviços, como Cloud Storage, BigQuery ou Datastream, durante o design do pipeline.
Ativar a execução provisionando clusters do Managed Service for Apache Spark e enviando jobs de pipeline.
Funções da 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 Data Fusion (roles/datafusion.serviceAgent).
O nome principal desse agente de serviço é
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com.
Os seguintes recursos padrão estão associados à função de agente de serviço da API Data Fusion.
| Papel | Recurso | Permissões |
|---|---|---|
| Agente de serviço da API Cloud Data Fusion | Serviços associados:
|
Consulte as permissões do agente de serviço da API Data Fusion. |
Conta de serviço padrão do Compute Engine ou personalizada
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 doGoogle Cloud . Por padrão, ele é anexado a uma VM de cluster do Managed Service para Apache Spark para permitir que o Cloud Data Fusion acesse recursos do Managed Service para Apache Spark durante uma execução de pipeline.
É possível escolher uma conta de serviço personalizada para anexar ao cluster do Managed Service para Apache Spark ao criar uma instância do Cloud Data Fusion ou criar novos perfis de computação 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 origens e destinos) 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, você pode escolher essa conta de serviço ao criar novas instâncias.
Papel do executor do Cloud Data Fusion
No projeto que contém a instância do Cloud Data Fusion, conceda o papel de executor do Cloud Data Fusion (datafusion.runner) às contas de serviço padrão e personalizadas gerenciadas pelo usuário.
| 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 Managed Service para Apache Spark 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 Managed Service para Apache Spark, 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 seja compatível com ele, os usuários com qualquer função do IAM do Cloud Data Fusion terão acesso total à interface da Web do Cloud Data Fusion. A função de administrador permite apenas que os usuários gerenciem a instância, como operações de
Create, Update, Upgrade e Delete.
Conceda os seguintes papéis 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, além das permissões para criar, atualizar e excluir instâncias do Cloud Data Fusion. |
|
Leitor do Cloud Data Fusion (roles/datafusion.viewer) |
|
|
Acessar recursos em outro projeto no momento do design
Esta seção descreve o controle de acesso em recursos localizados em um projeto 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, você pode usar funções como Wrangler ou Preview, que acessam recursos em outros projetos.
As seções a seguir descrevem como determinar a conta de serviço no seu ambiente e conceder as permissões adequadas.
Determinar a conta de serviço do seu ambiente
O nome da conta de serviço é "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 as funções que dão permissão para acessar vários recursos, siga estas etapas:
- No projeto em que o recurso de destino existe, adicione a conta de serviço do Cloud Data Fusion (
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com) como um principal. - Conceda papéis à conta de serviço do Cloud Data Fusion no recurso de destino no projeto em que ele existe.
Depois de conceder os papéis, você pode acessar recursos em um projeto diferente no tempo de design da mesma forma que acessa recursos no projeto em que sua instância está localizada.
Acessar recursos em outro projeto durante a execução
Esta seção descreve o controle de acesso em recursos localizados em um projeto Google Cloud diferente da sua instância do Cloud Data Fusion no momento da execução.
No momento da execução, você executa o pipeline em um cluster do Managed Service para Apache Spark que pode acessar recursos em outros projetos. Por padrão, o cluster do Managed Service para Apache Spark é iniciado no mesmo projeto da 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:
- Determine a conta de serviço do seu projeto.
- No projeto em que o recurso está, conceda papéis do IAM à conta de serviço padrão do Compute Engine para dar acesso a recursos em outro projeto.
Determinar 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 acesso a recursos do IAM em outro projeto
A conta de serviço padrão do Compute Engine precisa de 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:
- Conceda papéis e permissões, especificando sua conta de serviço do Compute Engine como uma principal no projeto em que o recurso de destino existe.
- Adicione as funções adequadas 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 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 no Cloud Data Fusion exigem as seguintes permissões:
| Tarefa | Permissões |
|---|---|
| Como acessar a interface da Web do Cloud Data Fusion | datafusion.instances.get |
| Acessar a página Instâncias do Cloud Data Fusion no console 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
- Saiba mais sobre o controle de acesso entre vários projetos.