Conjuntos de dados de tags

Nesta página, você verá como usar tags para aplicar condicionalmente políticas do Identity and Access Management (IAM) a conjuntos de dados do BigQuery.

Uma tag é um par de chave-valor que pode ser anexado diretamente a um conjunto de dados ou que pode ser herdado de outros recursos do Google Cloud. É possível aplicar condicionalmente políticas baseadas em um recurso que tem uma tag específica. Por exemplo, é possível conceder condicionalmente o papel Leitor de dados do BigQuery a um principal em qualquer conjunto de dados com a tag environment:dev.

Para mais informações sobre o uso de tags na hierarquia de recursos do Google Cloud, consulte Visão geral sobre tags.

Permissões necessárias

Para usar tags no BigQuery, é necessário ter as seguintes permissões:

  • Para anexar uma tag a um conjunto de dados, você precisa da permissão bigquery.datasets.createTagBinding do IAM no conjunto de dados e da permissão resourcemanager.tagValueBindings.create no nível da organização no valor da tag que você quer anexar.
  • Para remover uma tag de um conjunto de dados, você precisa da permissão bigquery.datasets.deleteTagBinding do IAM no conjunto de dados e a permissão resourcemanager.tagValueBindings.delete no nível da organização no valor da tag que você quer excluir.
  • Para listar as tags anexadas a um conjunto de dados, você precisa da permissão bigquery.datasets.listTagBindings do IAM.

Os dois papéis predefinidos do IAM incluem todas as permissões necessárias do BigQuery:

  • Proprietário de dados do BigQuery (roles/bigquery.dataOwner)
  • Administrador do BigQuery (roles/bigquery.admin)

As permissões do Resource Manager estão incluídas no papel Usuário de tags (roles/resourcemanager.tagUser).

Criar chaves e valores de tags

Antes de anexar uma tag, é preciso criá-la e configurar o valor dela. Para criar chaves e valores de tags, consulte Como criar uma tag e Como adicionar valores de tag.

Anexar tags a um conjunto de dados

Depois de criar uma tag, é possível vinculá-la a um conjunto de dados. É possível anexar somente um valor de tag a um conjunto de dados para qualquer chave de tag.

Para anexar uma tag a um conjunto de dados usando a linha de comando, crie um recurso de vinculação de tag usando o comando gcloud alpha resource-manager tags bindings create:

gcloud alpha resource-manager tags bindings create \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Substitua:

  • TAGVALUE_NAME: o ID permanente ou o nome do namespace do valor da tag a ser anexado, como tagValues/4567890123 ou 1234567/my_tag_key/my_tag_value
  • RESOURCE_ID: o ID completo do conjunto de dados, incluindo o nome de domínio da API (//bigquery.googleapis.com/) para identificar o tipo de recurso. Por exemplo, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
  • LOCATION: o local do conjunto de dados

Listar tags anexadas a um conjunto de dados

As etapas a seguir apresentam uma lista de vinculações de tag anexadas diretamente a um conjunto de dados. Elas não retornam tags herdadas dos recursos pai.

Console

  1. Acessar a página do BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, expanda o projeto e selecione um conjunto de dados.

    As tags aparecem no painel Informações do conjunto de dados.

gcloud

Para ver uma lista de vinculações de tags anexadas a um recurso, use o comando gcloud alpha resource-manager tags bindings list:

gcloud alpha resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=LOCATION

Substitua:

  • RESOURCE_ID: o ID completo do conjunto de dados, incluindo o nome de domínio da API (//bigquery.googleapis.com/) para identificar o tipo de recurso. Por exemplo, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset

  • LOCATION: o local do conjunto de dados

O resultado será assim:

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Remover tags de um conjunto de dados

É possível desanexar uma tag de um recurso excluindo o recurso de vinculação de tags. Para excluir uma tag, primeiro é necessário removê-la.

Para remover uma tag de um conjunto de dados usando a linha de comando, exclua a vinculação de tag usando o comando gcloud alpha resource-manager tags bindings delete:

gcloud alpha resource-manager tags bindings delete \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Substitua:

  • TAGVALUE_NAME: o ID permanente ou o nome do namespace do valor da tag a ser anexado, como tagValues/4567890123 ou 1234567/my_tag_key/my_tag_value
  • RESOURCE_ID: o ID completo do conjunto de dados, incluindo o nome de domínio da API (//bigquery.googleapis.com/) para identificar o tipo de recurso. Por exemplo, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
  • LOCATION: o local do conjunto de dados

Excluir tags

Exclua todos os recursos atuais de vinculação de tags antes de excluir a chave ou o valor da tag. Para excluir chaves e valores de tags, consulte Como excluir tags.

Exemplo

Digamos que você seja um administrador de uma organização. Todos os seus analistas de dados são membros do grupo analytics@example.com, que tem o papel do IAM de Leitor de dados do BigQuery no projeto userData. Um analista de dados estagiário é contratado e, de acordo com a política da empresa, precisa ter permissão apenas para visualizar o conjunto de dados anonymousData no projeto userData. É possível controlar o acesso dele usando tags.

  1. Crie uma tag com a chave employee_type e o valor intern:

    Exemplo de criação de chave e valores de tag.

  2. No console, acesse a página IAM.

    Acessar IAM

  3. Localize a linha que contém o estágio a quem você quer restringir o acesso ao conjunto de dados e clique em Editar principal nessa linha.

  4. No menu Papel, selecione Leitor de conjunto de dados do BigQuery.

  5. Clique em Adicionar condição.

  6. Nos campos Título e Descrição, insira valores que descrevem a condição do IAM que você quer criar.

  7. Na guia Criador de condições, clique em Adicionar.

  8. No menu Tipo de condição, selecione Recurso e, em seguida, selecione Tag.

  9. No menu Operador, selecione tem valor.

  10. No campo Caminho do valor, insira o caminho do valor da tag no formato ORGANIZATION/TAG_KEY/TAG_VALUE, por exemplo, example.org/employee_type/intern.

    Exemplo de uma condição do IAM usando tags.

    Essa condição do IAM restringe o acesso do estagiário aos conjuntos de dados que têm a tag intern.

  11. Para salvar a condição, clique em Salvar.

  12. Para salvar todas as mudanças feitas no painel Editar permissões, clique em Salvar.

  13. Para anexar o valor da tag intern ao conjunto de dados anonymousData, use a linha de comando para executar o comando gcloud alpha resource-manager tags bindings create:

    gcloud alpha resource-manager tags bindings create \
    --tag-value=tagValues/4567890123 \
    --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \
    --location=US
    

Limitações

  • Se você excluir um valor de tag, o BigQuery não excluirá automaticamente as vinculações de tags que usam esse valor. O ID do valor da tag é necessário para excluir a vinculação de uma tag depois que seu valor é excluído. Se você não souber o ID do valor da tag, a única maneira de remover a vinculação será excluir todo o conjunto de dados.

  • É possível anexar no máximo 10 tags a um conjunto de dados.

A seguir