Configurar papéis de BigQuery Sharing

Este documento descreve os papéis do Identity and Access Management (IAM) para o BigQuery Sharing (antigo Analytics Hub) e como concedê-los. Para mais informações, consulte Papéis e permissões do BigQuery Sharing.

Papéis do IAM de compartilhamento do BigQuery

As seções a seguir descrevem os papéis predefinidos de compartilhamento do BigQuery. É possível atribuir esses papéis aos usuários para realizar várias tarefas nas suas trocas de dados e listagens.

Papel Administrador do Analytics Hub

Para gerenciar trocas de dados, o compartilhamento do BigQuery oferece o papel de Administrador do Analytics Hub (roles/analyticshub.admin) que pode ser concedido a um Google Cloud projeto ou troca de dados. Esse papel permite que os usuários façam o seguinte:

  • Criar, atualizar e excluir trocas de dados.
  • Criar, atualizar, excluir e compartilhar listagens.
  • Gerenciar administradores do BigQuery Sharing, administradores das listagens, editores, assinantes e leitores.

Com esse papel, você se torna um administrador de BigQuery Sharing.

Papéis de editor e administrador de listagem do Analytics Hub

Para gerenciar listagens, o compartilhamento oferece os seguintes papéis predefinidos para você conceder a um projeto, uma troca de dados ou uma listagem:

Papéis de Leitor e leitores do Analytics Hub

Para visualizar e se inscrever em listagens e trocas de dados, o compartilhamento oferece os seguintes papéis predefinidos que você pode conceder a um projeto, uma troca de dados ou uma listagem:

  • Papel de Assinante do Analytics Hub (roles/analyticshub.subscriber), que permite aos usuários visualizar e se inscrever em listagens.

    Com esse papel, você se torna um assinante do BigQuery Sharing.

  • Papel de Leitor do Analytics Hub (roles/analyticshub.viewer), que permite que os usuários visualizem as listagens e as permissões de troca de dados.

    Com esse papel, você se torna um Leitor de BigQuery Sharing.

Papel de proprietário de assinatura do Analytics Hub

Para gerenciar assinaturas, o compartilhamento oferece o seguinte papel predefinido que você pode conceder no nível do projeto:

Com esse papel, você se torna um proprietário de assinatura do BigQuery Sharing.

Conceder papéis do IAM de compartilhamento do BigQuery

Dependendo da sua necessidade, é possível conceder os papéis do IAM nos seguintes níveis da hierarquia de recursos:

  • Projeto. Se você conceder um papel para um projeto, ele será aplicado a todas as trocas de dados e listagens nesse projeto.
  • Troca de dados. Se você conceder um papel para uma troca de dados, ele será aplicado a todas as listagens nessa troca de dados.
  • Informações do produto Se você conceder um papel para uma listagem, ele será aplicado apenas a essa listagem específica.

Conceder o papel a um projeto

Se você quiser definir políticas do IAM em um projeto, será necessário ter o papel de Administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin) nesse projeto. Para conceder os papéis predefinidos de Identity and Access Management de BigQuery Sharing para um projeto, selecione uma das seguintes opções.

Console

  1. Acesse o IAM referente ao projeto.

    Acessar IAM

  2. Clique em CONCEDER ACESSO.

  3. No campo Novos principais, digite o endereço de e-mail da identidade a quem você quer conceder acesso. Exemplo:

    • E-mail da Conta do Google: test-user@gmail.com
    • Grupo do Google: admins@googlegroups.com
    • Conta de serviço: server@example.gserviceaccount.com
    • Domínio do Google Workspace: example.com
  4. Na lista Selecionar um papel, mantenha o ponteiro sobre o Analytics Hub e selecione um dos seguintes papéis:

    • Administrador do Analytics Hub
    • Administrador de listagens do Analytics Hub
    • Editor do Analytics Hub
    • Assinante do Analytics Hub
    • Proprietário de assinatura do Analytics Hub
    • Leitor do Analytics Hub
  5. Opcional: para controlar ainda mais o acesso aos Google Cloud recursos, adicione uma vinculação de papel condicional.

  6. Salve as alterações.

    É possível excluir e atualizar administradores de projetos usando o mesmo painel do IAM.

gcloud

Para conceder papéis no nível do projeto, use o comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='PRINCIPAL' \
    --role='roles/analyticshub.admin'

Substitua:

  • PROJECT_ID: o projeto, por exemplo, my-project-1.
  • PRINCIPAL: uma identidade válida à qual você quer conceder o papel. Exemplo:

    • Endereço de e-mail da Conta do Google: user:user@gmail.com
    • Grupo do Google: group:admins@googlegroups.com
    • Conta de serviço: serviceAccount:server@example.gserviceaccount.com
    • Domínio do Google Workspace: domain:example.com

API

  1. Leia a política atual com o respectivo método getIamPolicy do recurso. Para projetos, use o projects.getIamPolicy método.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    Substitua PROJECT_ID pelo projeto, por exemplo, my-project-1.

  2. Para adicionar participantes e os papéis associados, edite a política com um editor de texto. Use o seguinte formato para adicionar membros:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Por exemplo, para conceder o papel roles/analyticshub.admin a group:admins@example.com, adicione a seguinte vinculação à política:

    {
     "members": [
       "group:admins@example.com"
     ],
     "role":"roles/analyticshub.admin"
    }
    
  3. Grave a política atualizada usando o método setIamPolicy.

    Por exemplo, para definir uma política no nível do projeto, use o project.setIamPolicy método. No corpo da solicitação, forneça a política de IAM atualizada da etapa anterior.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
    

    Substitua PROJECT_ID pelo ID do projeto.

Conceder o papel para uma troca de dados

Para conceder o papel a uma troca de dados, siga estas etapas:

Console

  1. No Google Cloud console, acesse a página Compartilhamento (Analytics Hub).

    Acessar Compartilhamento (Analytics Hub)

  2. Clique no nome da troca de dados para que você quer definir permissões.

  3. Acesse a guia Detalhes.

  4. Clique em Definir permissões.

  5. Para adicionar participantes, clique em Adicionar participante.

  6. No campo Novos principais, adicione os IDs de e-mail a quem você quer conceder acesso. Também é possível usar allUsers para tornar um recurso público e acessível a todos na Internet ou allAuthenticatedUsers para torná-lo acessível apenas a usuários do Google conectados.

  7. No menu Selecionar um papel , selecione Analytics Hub e, em seguida, selecione um dos seguintes papéis do Identity and Access Management (IAM, na sigla em inglês):

    • Administrador do Analytics Hub
    • Administrador de listagens do Analytics Hub
    • Editor do Analytics Hub
    • Assinante do Analytics Hub
    • Proprietário de assinatura do Analytics Hub
    • Leitor do Analytics Hub
  8. Clique em Salvar.

API

  1. Leia a política atual com o método getIamPolicy da ficha da empresa usando o método projects.locations.dataExchanges.getIamPolicy:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    Substitua:

    • PROJECT_ID: o ID do projeto, por exemplo, my-project-1
    • LOCATION: o local da troca de dados. Use letras minúsculas.
    • DATAEXCHANGE_ID: o ID da troca de dados.

    O BigQuery Sharing (antigo Analytics Hub) retorna a política atual.

  2. Para adicionar ou remover membros e os papéis do Identity and Access Management (IAM) associados, edite a política com um editor de texto. Use o seguinte formato para adicionar membros:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Por exemplo, para conceder o papel roles/analyticshub.subscriber a group:subscribers@example.com, adicione a seguinte vinculação à política:

    {
     "members": [
       "group:subscribers@example.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. Grave a política atualizada usando o método projects.locations.dataExchanges.setIamPolicy. No corpo da solicitação, forneça a política de IAM atualizada da etapa anterior.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

    No corpo da solicitação, forneça os detalhes da ficha. Se a solicitação for bem-sucedida, o corpo da resposta conterá detalhes das informações do produto.

Ao conceder permissões no nível do recurso, como em uma troca de dados, é necessário usar letras minúsculas para a parte do local do nome do recurso. O uso de valores em maiúsculas ou mistos pode causar erros Permission Denied.

  • Use: projects/myproject/locations/us/dataExchanges/123
  • Evite: projects/myproject/locations/US/dataExchanges/123
  • Evite: projects/myproject/locations/Eu/dataExchanges/123

É possível excluir e atualizar papéis de troca de dados usando o mesmo painel do IAM.

Conceder o papel a uma listagem

Para conceder o papel a uma listagem, siga estas etapas:

Console

  1. No Google Cloud console, acesse a página Compartilhamento (Analytics Hub).

    Acessar Compartilhamento (Analytics Hub)

  2. Clique no nome da troca de dados que contém a ficha da empresa.

  3. Clique na listagem à qual você quer adicionar usuários.

  4. Clique em Definir permissões.

  5. Para adicionar participantes, clique em Adicionar participante.

  6. No campo Novos principais, adicione os IDs de e-mail da identidade a quem você quer conceder acesso.

  7. No menu Selecionar um papel , selecione Analytics Hub e, em seguida, selecione um dos seguintes papéis do Identity and Access Management (IAM, na sigla em inglês):

    • Administrador do Analytics Hub
    • Administrador de listagens do Analytics Hub
    • Editor do Analytics Hub
    • Assinante do Analytics Hub
    • Proprietário de assinatura do Analytics Hub
    • Leitor do Analytics Hub
  8. Clique em Salvar.

API

  1. Leia a política atual com o método getIamPolicy da ficha da empresa usando o método projects.locations.dataExchanges.listings.getIamPolicy:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
    

    Substitua:

    • PROJECT_ID: o ID do projeto, por exemplo, my-project-1
    • LOCATION: a localização da troca de dados que contém a listagem. Use letras minúsculas.
    • DATAEXCHANGE_ID: o ID da troca de dados.
    • LISTING_ID: o ID da ficha da empresa.

    O compartilhamento retorna a política atual.

  2. Para adicionar ou remover membros e os papéis do Identity and Access Management (IAM) associados, edite a política com um editor de texto. Use o seguinte formato para adicionar membros:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Por exemplo, para conceder o papel roles/analyticshub.publisher a group:publishers@example.com, adicione a seguinte vinculação à política:

    {
     "members": [
       "group:publishers@example.com"
     ],
     "role":"roles/analyticshub.publisher"
    }
    
  3. Grave a política atualizada usando o método projects.locations.dataExchanges.listings.setIamPolicy. No corpo da solicitação, forneça a política de IAM atualizada da etapa anterior.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING-ID:setIamPolicy
    

    No corpo da solicitação, forneça os detalhes da ficha. Se a solicitação for bem-sucedida, o corpo da resposta conterá detalhes das informações do produto.

Ao conceder permissões no nível do recurso, como em uma listagem, é necessário usar letras minúsculas para a parte do local do nome do recurso. O uso de valores em maiúsculas ou mistos pode causar erros Permission Denied.

  • Use: projects/myproject/locations/us/dataExchanges/123/listings/456
  • Evite: projects/myproject/locations/US/dataExchanges/123/listings/456
  • Evite: projects/myproject/locations/Eu/dataExchanges/123/listings/456

É possível excluir e atualizar papéis de informações do produto usando o mesmo painel do IAM.

A seguir