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ãoresourcemanager.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ãoresourcemanager.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, comotagValues/4567890123
ou1234567/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
Acessar a página do BigQuery.
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, comotagValues/4567890123
ou1234567/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.
Crie uma tag com a chave
employee_type
e o valorintern
:No console, acesse a página IAM.
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.No menu Papel, selecione Leitor de conjunto de dados do BigQuery.
Clique em Adicionar condição.
Nos campos Título e Descrição, insira valores que descrevem a condição do IAM que você quer criar.
Na guia Criador de condições, clique em Adicionar.
No menu Tipo de condição, selecione Recurso e, em seguida, selecione Tag.
No menu Operador, selecione tem valor.
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
.Essa condição do IAM restringe o acesso do estagiário aos conjuntos de dados que têm a tag
intern
.Para salvar a condição, clique em Salvar.
Para salvar todas as mudanças feitas no painel Editar permissões, clique em Salvar.
Para anexar o valor da tag
intern
ao conjunto de dados anonymousData, use a linha de comando para executar o comandogcloud 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
- Para uma visão geral das tags no Google Cloud, consulte Visão geral sobre tags.
- Para mais informações sobre como usar tags, consulte Como criar e gerenciar tags.