Configurar uma conta de serviço do Google Cloud para o Looker Studio

Uma conta de serviço é um tipo especial de Conta do Google destinada a representar um usuário não humano que pode ser autenticado e autorizado a acessar dados em APIs e produtos do Google. Em vez de delegar o acesso usando Credenciais do proprietário ou exigir que os leitores de relatórios individuais tenham acesso aos dados usando credenciais de leitor, o Looker Studio pode usar uma conta de serviço para acessar as informações.

Observação: as credenciais da conta de serviço estão disponíveis apenas para fontes de dados do BigQuery.

Saiba mais sobre as contas de serviço.

Benefícios de usar uma conta de serviço com o Looker Studio

O uso de uma conta de serviço em vez das credenciais de um usuário individual oferece estes benefícios:

  • As fontes de dados que usam credenciais de conta de serviço não vão ser interrompidas se o criador sair da empresa.
  • As credenciais da conta de serviço permitem o acesso aos dados protegidos por perímetros do VPC Service Controls que usam políticas de dispositivo.
  • Recursos automatizados, como extrações de dados e e-mails programados, funcionam com as fontes de dados que estão por trás de um perímetro do VPC Service Controls. Consulte a seção de limites para uma observação importante.
  • É possível criar regras de entrada e saída para permitir que a conta de serviço acesse e saia dos recursos e clientes protegidos por perímetros de serviço.

Funções exigidas

  • Para receber o agente de serviço do Looker Studio, você precisa ser um usuário do Google Workspace ou do Cloud Identity.
  • Para configurar uma conta de serviço, você precisa ter o papel de Administrador da conta de serviço (roles/iam.serviceAccountAdmin) ou Criar contas de serviço (roles/iam.serviceAccountCreator) no seu projeto Google Cloud . Saiba mais sobre papéis de conta de serviço.
  • Para configurar a conta de serviço e acessar uma tabela ou um conjunto de dados do BigQuery, você precisa ter o papel Proprietário de dados do BigQuery (roles/bigquery.dataOwner) na tabela ou no conjunto de dados, ou outro papel que conceda a permissão bigquery.datasets.setIamPolicy.

Instruções de configuração

Para configurar uma conta de serviço que forneça acesso aos dados do BigQuery, siga estas etapas:

  1. Acessar o agente de serviço do Looker Studio. Nesta etapa, você vai copiar o endereço de e-mail do agente de serviço para usar na próxima etapa. Esse endereço é criado automaticamente para você pelo Looker Studio.
  2. Crie uma conta de serviço para o Looker Studio. Nesta etapa, você vai criar o usuário não humano que vai acessar os dados.
  3. Permita que o agente de serviço do Looker Studio acesse sua conta de serviço. Nesta etapa, você vai conceder ao agente de serviço o papel necessário na conta de serviço.
  4. Conceda funções do usuário. Nesta etapa, você vai conceder aos usuários a função necessária para que eles possam criar fontes de dados que usam credenciais de conta de serviço.
  5. Permita que a conta de serviço acesse seus dados do BigQuery. Nesta etapa, você vai conceder à conta de serviço o papel necessário para que ela possa acessar uma tabela ou um conjunto de dados do BigQuery.

Etapa 1: acessar o agente de serviço do Looker Studio

Para permitir que a conta de serviço acesse seus dados, você precisa fornecer o agente de serviço do Looker Studio da sua organização. Você pode encontrar o agente de serviço em uma página de ajuda no Looker Studio:

  1. Navegue até a página de ajuda do agente de serviço do Looker Studio.
  2. Copie o endereço de e-mail do agente de serviço exibido nessa página.

Etapa 2: criar uma conta de serviço para o Looker Studio

Consulte a documentação do IAM para instruções sobre como criar uma conta de serviço.Google Cloud Use o console Google Cloud ou a linha de comando do Cloud Shell para criar a conta de serviço.

Console

  1. No console Google Cloud , acesse a página Criar conta de serviço.

    Acesse "Criar conta de serviço"

  2. Selecione um projeto.
  3. Insira um nome de conta de serviço a ser exibido no console Google Cloud .

    O console Google Cloud gera um ID de conta de serviço com base nesse nome. Edite o ID agora, se necessário. Não será possível alterar o ID depois.

  4. Opcional: digite uma descrição da conta de serviço.
  5. Clique em CRIAR E CONTINUAR.
  6. Em Permissões, conceda à conta de serviço o papel do IAM Usuário de jobs do BigQuery no projeto que contém os dados que você quer conectar ao Looker Studio. Ele pode ser diferente do projeto em que você criou a conta de serviço.
  7. Clique em Continuar.
  8. No campo Papel de usuários da conta de serviço, adicione os usuários que podem usar essa conta de serviço para fornecer credenciais às fontes de dados deles. Se você não quiser adicionar usuários agora, faça isso depois seguindo as instruções em Conceder papéis de usuário.
  9. Clique em CONCLUÍDO para salvar a conta de serviço e voltar à página da lista de contas do seu projeto.

gcloud

Siga as etapas gerais listadas em Cloud Shell em Como criar e gerenciar contas de serviço.

  1. Abra o Cloud Shell.
  2. Se necessário, selecione um projeto.
  3. Para criar a conta de serviço, execute o comando gcloud iam service-accounts create. Você pode usar qualquer nome, descrição e nome de exibição na conta.

Exemplo:

gcloud iam service-accounts create looker-studio-service-account \
--description="Use for Looker Studio access to BigQuery"  \
--display-name="LS_BQ"
  1. Para acessar os dados do BigQuery no projeto Google Cloud que você quer usar com o Looker Studio, conceda à conta de serviço a permissãobigquery.jobs.createnesse projeto. Você pode conceder o papel do IAM chamado Usuário de jobs do BigQuery para dar essa permissão.

    Além disso, conceda à conta de serviço as permissões bigquery.tables.getData e bigquery.tables.get no projeto ou conjunto de dados que você quer usar com o Looker Studio. Você pode conceder o papel de Leitor de dados do BigQuery (roles/bigquery.dataViewer) para dar essas permissões.

    Para conceder esses papéis, execute o comando gcloud projects add-iam-policy-binding. Nos exemplos a seguir, substitua PROJECT_ID pelo ID do projeto.

    Exemplo: conceder o papel de usuário de jobs do BigQuery

    gcloud projects add-iam-policy-binding PROJECT_ID\
    --member ="serviceAccount:looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/bigquery.jobUser"
    

    Exemplo: conceder o papel de Leitor de dados do BigQuery

    gcloud projects add-iam-policy-bindingPROJECT_ID\
    --member ="serviceAccount:looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/bigquery.dataViewer"
    

Etapa 3: permitir que o agente de serviço do Looker Studio acesse sua conta de serviço

Para permitir que o agente de serviço do Looker Studio acesse dados usando a conta de serviço, conceda a ele o papel de Criador do token da conta de serviço (roles/iam.serviceAccountTokenCreator).

Console

  1. Volte para a lista de contas de serviço do consoleGoogle Cloud .
  2. Selecione a conta de serviço do Looker Studio que você acabou de criar clicando nela na lista.
  3. Clique em Principais com acesso.
  4. Clique em person_add CONCEDER ACESSO.
  5. Em Adicionar principais a PROJECT_ID, cole o e-mail do agente de serviço do Looker Studio (que você copiou na etapa 1) na caixa Novos principais. O endereço do seu agente de serviço é parecido com este: SERVICE_AGENT_NAME@PROJECT_ID.iam.gserviceaccount.com.
  6. Selecione um papel que conceda ao agente de serviço a permissão iam.serviceAccounts.getAccessToken. Por exemplo, você pode usar o papel Criador de token de conta de serviço, mas também pode usar qualquer papel personalizado que conceda essa permissão.
  7. Clique em SALVAR.

gcloud

Execute o comando gcloud iam service-accounts add-iam-policy-binding. No exemplo a seguir, substitua ORG_ID pelo ID da sua organização.

Exemplo:

gcloud iam service-accounts add-iam-policy-binding looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com \
--member="service-ORG_ID@gcp-sa-datastudio.iam.gserviceaccount.com" \
--role="roles/iam.serviceAccountTokenCreator"

Etapa 4: conceder funções de usuário

Os usuários do Looker Studio que criam ou editam fontes de dados precisam receber um papel que inclua a permissão iam.serviceAccounts.actAs, como o papel de Usuário da conta de serviço (roles/iam.serviceAccountUser). É possível conceder esse papel no projeto ou em uma conta de serviço individual, mas recomendamos que você conceda o papel apenas na conta de serviço. Para instruções, consulte Como gerenciar a representação de uma conta de serviço.

Recomendamos que você não conceda aos usuários que não são agente de serviço o papel de Criador do token da conta de serviço porque isso não é necessário para o Looker Studio.

Console

  1. Navegue até a lista de contas de serviço do console.
  2. Selecione sua conta de serviço do Looker Studio clicando nela na lista.
  3. Clique em Principais com acesso.
  4. Clique em person_add CONCEDER ACESSO.
  5. Em Adicionar principais e papéis da conta de serviço, insira os endereços de e-mail dos seus usuários na caixa Novos principais.
  6. Selecione o papel Usuário da conta de serviço.
  7. Clique em SALVAR.

gcloud

Para conceder o papel de Usuário da conta de serviço, execute o comando gcloud projects add-iam-policy-binding. Nos exemplos a seguir, substitua PROJECT_ID pelo ID do projeto e USER_EMAIL por um ou mais endereços de e-mail válidos (separe várias entradas por vírgulas).

Exemplo:

gcloud iam service-accounts add-iam-policy-binding  looker-studio-service-account@PROJECT_ID.iam.gserviceaccount.com  \
--member="user:USER_EMAIL" \
--role="roles/iam.serviceAccountUser"

Etapa 5: permitir que a conta de serviço acesse seus dados do BigQuery

Para permitir que o Looker Studio acesse seus dados, conceda o papel de Leitor de dados do BigQuery à conta de serviço no nível da tabela ou do conjunto de dados. Não recomendamos conceder acesso à conta de serviço no nível do projeto.

Console

Para conceder acesso a uma tabela:

  1. Copie o endereço de e-mail do agente de serviço do Looker Studio, conforme descrito na Etapa 1. Acessar o agente de serviço do Looker Studio.
  2. Navegue até a lista de contas de serviço do consoleGoogle Cloud .
  3. Acesse o BigQuery e abra um projeto.
  4. Clique na seta de expansão para abrir um conjunto de dados.
  5. Selecione uma tabela.
  6. Na barra de ferramentas, clique em person_add COMPARTILHAR.
  7. No painel que aparece à direita, clique em person_add ADICIONAR PARTICIPANTE.
  8. Na caixa Novos principais, cole o endereço de e-mail do agente de serviço do Looker Studio.
  9. Selecione o papel Leitor de dados do BigQuery.
  10. Clique em SALVAR.

Para conceder acesso a um conjunto de dados:

  1. Copie o endereço de e-mail do agente de serviço do Looker Studio, conforme descrito na Etapa 1. Acessar o agente de serviço do Looker Studio.
  2. Navegue até a lista de contas de serviço do consoleGoogle Cloud .
  3. Acesse o BigQuery, abra um projeto e localize o conjunto de dados.
  4. Clique no menu de opções .
  5. Clique em Abrir.
  6. Na barra de ferramentas, clique em person_add Permissões de compartilhamento.
  7. No painel que aparece à direita, clique em person_add ADICIONAR PARTICIPANTE.
  8. Na caixa Novos principais, cole o endereço de e-mail do agente de serviço do Looker Studio.
  9. Selecione o papel Leitor de dados do BigQuery.
  10. Clique em SALVAR.

gcloud

Recomendamos usar as instruções do console Google Cloud para conceder acesso aos dados. Para conceder acesso aos dados usando a ferramenta de linha de comando bq, consulte Como controlar o acesso a conjuntos de dados na documentação do BigQuery.

Fornecer as conta de serviço do Looker Studio aos usuários do Looker Studio

Os usuários do Looker Studio precisam saber qual conta de serviço usar ao criar fontes de dados. Como não é possível ver a lista de contas de serviço disponíveis no Looker Studio, você precisa disponibilizar essas informações pela documentação da sua organização, pelo site interno ou por e-mail.

Criar uma fonte de dados que usa as credenciais da conta de serviço

Para criar fontes de dados que usam credenciais de conta de serviço, os usuários do Looker Studio podem seguir as mesmas etapas básicas aplicáveis a outros tipos de credenciais de dados:

  1. Crie ou edite uma fonte de dados do BigQuery.
  2. Na barra de ferramentas, clique em Credenciais de dados.
  3. Selecione Serviço Credenciais da conta.
  4. Insira o endereço de e-mail da conta de serviço na caixa.
  5. Clique em Atualizar.

Editar uma fonte de dados que usa credenciais de conta de serviço

Quando alguém edita uma fonte de dados que usa credenciais de conta de serviço, o Looker Studio verifica se a pessoa tem permissão para utilizar a conta. Se não tiver, a fonte de dados passará a usar as credenciais dela.

Ver quem está usando a conta de serviço para acessar dados

É possível verificar os registros de auditoria das contas de serviço no console Google Cloud . É necessário ativar os registros de auditoria do IAM para a atividade de acesso a dados se você quiser receber registros de auditoria das contas de serviço.

Exemplo de cenário de conta de serviço

Você quer que os usuários do Looker Studio na sua empresa tenham acesso apenas aos dados da subsidiária do país deles. Uma solução é criar uma conta de serviço para cada país e permitir que apenas os usuários do Looker Studio naquele país atuem como a conta de serviço.

Exemplo de configuração

Neste exemplo, você vai criar três contas de serviço: uma para o Reino Unido, outra para a França e mais uma para a Alemanha. Em seguida, atribua como principais o agente de serviço e os usuários que poderão criar fontes de dados que usam a conta de serviço. Você também vai atribuir as funções adequadas a cada um.

Conta de serviço do Reino Unido

service-account-1@example-org-uk-example-project.iam.gserviceaccount.com

Principais do Reino Unido

Principais Papéis

service-org-12345@gcp-sa-datastudio.iam.gserviceaccount.com

Esse é o agente de serviço.

Service Account Token Creator
Usuário 1 Service Account User
Usuário 2 Service Account User

Conta de serviço da França

service-account-1@example-org-fr-example-project.iam.gserviceaccount.com

Principais da França

Principais Papéis

service-org-12345@gcp-sa-datastudio.iam.gserviceaccount.com

Esse é o agente de serviço.

Service Account Token Creator
Usuário 3 Service Account User
Usuário 4 Service Account User

Conta de serviço da Alemanha

service-account-1@example-org-de-example-project.iam.gserviceaccount.com

Principais da Alemanha

Principais Papéis

service-org-12345@gcp-sa-datastudio.iam.gserviceaccount.com

Esse é o agente de serviço.

Service Account Token Creator
Usuário 5 Service Account User
Usuário 6 Service Account User

Erros

Nesta seção, explicamos os erros que podem ocorrer quando os criadores de fontes de dados do Looker Studio e os leitores de relatório tentam usar uma conta de serviço. Na maioria dos casos, esses erros têm a mesma causa: configuração incorreta ou incompleta da conta de serviço.

A função do agente de serviço não foi informada

Mensagens

  • O agente de serviço do Looker Studio não tem a permissão iam.serviceAccounts.getAccessToken para esse serviço.
  • O papel "Criador do token da conta de serviço" não foi informado para o agente de serviço usado pela conta de serviço dessa fonte de dados.

Causa

O agente de serviço não recebeu o papel de Criador de token da conta de serviço (ou outro papel que inclua a permissão iam.serviceAccounts.getAccessToken).

Solução

Conceda o papel Criador de token da conta de serviço ao agente de serviço.

Sem acesso aos dados

Mensagem

Essa conta de serviço não pode acessar o conjunto de dados relacionado.

Causas

  • A conta de serviço não recebeu acesso aos dados do projeto.
  • O projeto de faturamento está conectado a um projeto a que a conta de serviço não tem acesso.

Solução

Conceda pelo menos o papel de Leitor de dados do BigQuery à sua conta de serviço na tabela, conjunto de dados ou projeto relacionado.

Função do usuário ausente

Mensagem

Você não tem permissão para usar esta conta de serviço.

Causa

O usuário não foi adicionado como principal à conta de serviço com o papel de Usuário da conta de serviço.

Solução

Conceda o papel Usuário da conta de serviço ao usuário na conta de serviço.

O agente de serviço não está disponível para a conta

Mensagens

  • Não é possível gerar agentes do serviço para esta conta. Tente novamente com uma conta gerenciada do Cloud Identity ou do Google Workspace.
  • As credenciais do agente de serviço estão disponíveis apenas para organizações gerenciadas do Google Workspace ou do Cloud Identity. Use outra conta para esse recurso.

Causa

O usuário está tentando usar uma Conta do Google padrão (usuário consumidor) para acessar dados controlados por uma conta de serviço.

Solução

Use uma conta do Google Workspace ou do Cloud Identity para acessar os dados.

Não é possível usar o agente de serviço na caixa de diálogo de credenciais

Mensagem

Os agentes de serviço do Looker Studio não podem ser usados para fazer uma conexão direta com os dados. Use uma conta de serviço.

Solução

Agentes e contas de serviço são diferentes. Insira uma conta de serviço na caixa de diálogo de credenciais. Você encontra a lista de contas de serviço disponíveis no console Google Cloud ou no Cloud Shell:

Console

  1. Navegue até a página Google Cloud Platform > IAM e administrador > Contas de serviço.
  2. Selecione um projeto, se necessário.
  3. Na página Contas de serviço do projeto, localize a conta de serviço que o Looker Studio vai usar para acessar seus dados do BigQuery.
  4. Copie o endereço de e-mail da conta.

gcloud

  1. Abra o Cloud Shell.
  2. Se necessário, selecione um projeto.
  3. Para listar as contas de serviço a que você tem acesso, execute o comando gcloud iam service-accounts list.

Exemplo:

gcloud iam service-accounts list

Limites

  • As credenciais da conta de serviço estão disponíveis apenas para fontes de dados do BigQuery. Os limites do IAM se aplicam às contas de serviço.
  • Pode levar alguns minutos para que as mudanças nas permissões da conta de serviço apareçam no Looker Studio.
  • A entrega de e-mails programada não funciona com dados protegidos usando níveis de acesso baseados em IP com o VPC Service Controls. Isso acontece porque o Looker Studio não transmite o endereço IP do destinatário do e-mail quando ele visualiza o relatório.