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

Esta página descreve 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 Data Fusion por padrão.

Para um melhor isolamento de dados, é possível associar 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 a recursos do Google Cloud entre namespaces para operações de tempo de design do pipeline no Cloud Data Fusion, como visualização do pipeline, Wrangler e validação do pipeline.

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

Cenário

Neste caso de uso, o departamento de marketing migra 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 aos 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 controlar o acesso aos recursos do Google Cloud com contas de serviço de namespace, impedindo o acesso não autorizado entre os bancos de dados de diferentes equipes.

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

Configurar uma conta de serviço do IAM no namespace para cada equipe (consulte Configure uma conta de serviço de namespace):

  1. Configurar o controle de acesso adicionando uma conta de serviço personalizada para 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: adicionar uma conta de serviço personalizada para a Equipe A.
  2. Repita as etapas de configuração para as equipes B e C para configurar o controle de acesso com contas de serviço personalizadas semelhantes.

Limitar o acesso aos buckets do Cloud Storage

Limite o acesso aos buckets do Cloud Storage concedendo as permissões adequadas:

  1. Conceda à conta de serviço do IAM a permissão storage.buckets.list, necessária para listar 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 determinados buckets.

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

    Conceda o papel na página "Detalhes do bucket".
    Figura 2: nos 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 Adicionar conexão.

  5. Selecione GCS e configure a conexão.

    Criar a conexão do Cloud Storage no Cloud Data Fusion
    Figura 3: configurar o Cloud Storage para o namespace.
  6. Criar uma conexão do Cloud Storage para cada namespace repetindo as etapas anteriores. Cada equipe pode interagir com um grupo uma cópia 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 durante o projeto acessando o Cloud Storage buckets nos respectivos namespaces:

  1. No console do Google Cloud, acesse o Cloud Data Fusion Instâncias e abra uma instância na Web do Cloud Data Fusion interface gráfica do usuário.

    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.

    • Você pode conferir a lista de buckets porque o namespace da Equipe A tem permissão storage.buckets.list.

    • Ao clicar no bucket, você pode conferir 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. Confira se os buckets podem ser acessados pela Equipe A.
    Figuras 4 e 5: verificar se a Equipe A tem acesso aos no bucket de armazenamento apropriado.
  7. Volte para a lista de buckets e clique no bucket team_b1 ou team_c1. O acesso é restrito, já que você isolou esse recurso de tempo de design por Equipe A usando sua conta de serviço de namespace.

    Valide se a Equipe A não pode acessar recursos restritos.
    Figura 6: verifique se a equipe A não pode acessar os buckets de armazenamento da equipe B e C.

A seguir

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