Caso de uso: controle de acesso com contas de serviço de namespace

Nesta página, descrevemos o caso de uso em que você controla o acesso aos recursos do Google Cloud no nível do namespace ao migrar dados do Cloud Storage para o BigQuery.

Para controlar o acesso aos recursos do Google Cloud, os namespaces no Cloud Data Fusion usam o Agente de serviço da API Cloud Data Fusion por padrão.

Para um melhor isolamento de dados, associe uma conta de serviço personalizada do IAM (conhecida como conta de serviço por namespace) a cada namespace. A conta de serviço personalizada do IAM, que pode ser diferente para diferentes namespaces, permite controlar o acesso aos recursos do Google Cloud entre namespaces para operações de tempo de projeto de pipeline no Cloud Data Fusion, como visualização de pipeline, Wrangler e validação de pipeline.

Para mais informações, consulte Controle de acesso com contas de serviço do namespace.

Cenário

Nesse caso de uso, o departamento de marketing migra os dados do Cloud Storage para o BigQuery usando o Cloud Data Fusion.

Pipeline de dados mostrando a origem do Cloud Storage, a transformação do Wrangler e o coletor do BigQuery.

O departamento de marketing tem três equipes: A, B e C. Seu objetivo é estabelecer uma abordagem estruturada para controlar o acesso a dados no Cloud Storage usando namespaces do Cloud Data Fusion correspondentes a cada equipe: A, B e C, respectivamente.

Solução

As etapas a seguir mostram como você controla o acesso aos recursos do Google Cloud com contas de serviço de namespace, impedindo o acesso não autorizado entre os repositórios de dados de diferentes equipes.

Associar uma conta de serviço do Identity and Access Management a cada namespace

Configure uma conta de serviço do IAM no namespace para cada equipe. Consulte Configurar uma conta de serviço de namespace:

  1. Configure o controle de acesso adicionando uma conta de serviço personalizada para a Equipe A, por exemplo, team-a@pipeline-design-time-project.iam.gserviceaccount.com.

    Configure uma conta de serviço para a Equipe A.
    Figura 1: adição de uma conta de serviço personalizada para a Equipe A.
  2. Repita as etapas de configuração das equipes B e C para configurar o controle de acesso com contas de serviço personalizadas semelhantes.

Limite o acesso aos buckets do Cloud Storage.

Atribua as permissões apropriadas para limitar o acesso aos buckets do Cloud Storage:

  1. Conceda à conta de serviço do IAM a permissão storage.buckets.list, necessária para listar os buckets do Cloud Storage no projeto. Para mais informações, consulte Como listar buckets.
  2. Conceda permissão à conta de serviço do IAM para acessar os objetos em buckets específicos.

    Por exemplo, conceda o papel Leitor de objetos do Storage à conta de serviço do IAM associada ao namespace team_A no bucket team_a1. Essa permissão possibilita que a Equipe A visualize e liste objetos e pastas gerenciadas, além dos respectivos metadados, nesse bucket em um ambiente de tempo de design isolado.

    Conceda o papel na página "Detalhes do bucket".
    Figura 2: na página Buckets do Cloud Storage, adicione a equipe como principal e atribua o papel de usuário do objeto do Storage.

Criar a conexão do Cloud Storage nos respectivos namespaces

Crie a conexão do Cloud Storage no namespace de cada equipe:

  1. No console do Google Cloud, acesse a página Instâncias do Cloud Data Fusion e abra uma instância na interface da Web do Cloud Data Fusion.

    Acesse "Instâncias"

  2. Clique em Administrador do sistema > Configuração > Namespaces.

  3. Clique no namespace que você quer usar, por exemplo, o namespace da Equipe A.

  4. Clique na guia Conexões e, em seguida, em Adicionar conexão.

  5. Selecione GCS e configure a conexão.

    Crie a conexão do Cloud Storage no Cloud Data Fusion
    Figura 3: configuração da conexão do Cloud Storage para o namespace.
  6. Crie uma conexão do Cloud Storage para cada namespace repetindo as etapas anteriores. Cada equipe pode interagir com uma cópia isolada desse recurso para as operações de tempo de design.

Validar o isolamento de tempo de design para cada namespace

A Equipe A pode validar o isolamento no projeto acessando os buckets do Cloud Storage nos respectivos namespaces:

  1. No console do Google Cloud, acesse a página Instâncias do Cloud Data Fusion e abra uma instância na interface da Web do Cloud Data Fusion.

    Acesse "Instâncias"

  2. Clique em Administrador do sistema > Configuração > Namespaces.

  3. Selecione um namespace, por exemplo, o namespace da Equipe A, team_A.

  4. Clique em Menu > Wrangler.

  5. Clique em GCS.

  6. Na lista de buckets, clique no bucket team_a1.

    • É possível visualizar a lista de buckets porque o namespace da Equipe A tem a permissão storage.buckets.list.

    • Ao clicar no bucket, você verá o conteúdo dele, porque o namespace da Equipe A tem o papel de Leitor de objetos do Storage.

    Valide a conexão do Cloud Storage para a Equipe A. Confirme se os buckets podem ser acessados pela Equipe A.
    Figuras 4 e 5: verifique se a Equipe A pode acessar o bucket de armazenamento apropriado.
  7. Volte à lista de buckets e clique no bucket team_b1 ou team_c1. O acesso está restrito, porque você isolou esse recurso de tempo de design para a Equipe A usando a conta de serviço de namespace.

    Confirme que a Equipe A não pode acessar recursos restritos.
    Figura 6: verificação de que a Equipe A não consegue acessar os buckets de armazenamento das equipes B e C.

A seguir

  • Saiba mais sobre recursos de segurança no Cloud Data Fusion.