Etiquete tabelas, vistas e conjuntos de dados
Este documento descreve como usar etiquetas para aplicar condicionalmente políticas de gestão de identidade e de acesso (IAM) a tabelas, vistas e conjuntos de dados do BigQuery.
Também pode usar etiquetas para negar condicionalmente o acesso com políticas de IAM a tabelas, vistas e conjuntos de dados do BigQuery (pré-visualização). Para mais informações, consulte as Políticas de recusa.
Uma etiqueta é um par de chave-valor que pode anexar diretamente a uma tabela, uma vista ou um conjunto de dados, ou um par de chave-valor que uma tabela, uma vista ou um conjunto de dados pode herdar de outrosGoogle Cloud recursos. Pode aplicar condicionalmente políticas com base no facto de um recurso ter ou não uma etiqueta específica. Por exemplo, pode conceder condicionalmente a função de visualizador de dados do BigQuery a um principal em qualquer conjunto de dados com a etiqueta environment:dev
.
Para mais informações sobre a utilização de etiquetas na hierarquia de recursos, consulte o artigo Vista geral das etiquetas. Google Cloud
Para conceder autorizações a muitos recursos relacionados do BigQuery ao mesmo tempo, incluindo recursos que ainda não existem, considere usar condições do IAM.
Limitações
As etiquetas de tabelas não são suportadas em tabelas do BigQuery Omni, tabelas em conjuntos de dados ocultos nem tabelas temporárias. As etiquetas de conjuntos de dados não são suportadas em conjuntos de dados do BigQuery Omni. Além disso, as consultas entre regiões no BigQuery Omni não usam etiquetas durante as verificações de controlo de acesso de tabelas noutras regiões.
Pode anexar um máximo de 50 etiquetas a uma tabela ou a um conjunto de dados.
Todas as tabelas referenciadas numa consulta com carateres universais têm de ter exatamente o mesmo conjunto de chaves e valores de etiquetas.
Os utilizadores com acesso condicional a um conjunto de dados ou a uma tabela não podem modificar as autorizações desse recurso através da consola Google Cloud . As modificações de autorizações só são suportadas através da ferramenta bq e da API BigQuery.
Alguns serviços fora do BigQuery não conseguem validar corretamente as condições das etiquetas de IAM. Se a condição de etiqueta for positiva, o que significa que um utilizador recebe uma função num recurso apenas se esse recurso tiver uma etiqueta específica, o acesso ao recurso é recusado, independentemente das etiquetas anexadas ao mesmo. Se a condição da etiqueta for negativa, o que significa que é concedida uma função a um utilizador num recurso apenas se esse recurso não tiver uma etiqueta específica, a condição da etiqueta não é verificada.
Por exemplo, o Data Catalog não pode validar as condições das etiquetas de IAM em conjuntos de dados e tabelas do BigQuery. Suponhamos que existe uma política de IAM condicional que atribui a um estagiário a função de visualizador de dados do BigQuery em conjuntos de dados com a etiqueta
employee_type=intern
. Uma vez que esta é uma condição de etiqueta positiva, o estagiário não pode ver conjuntos de dados pesquisando no catálogo de dados, mesmo que esses conjuntos de dados tenham a etiquetaemployee_type=intern
. Se a condição da etiqueta tivesse sido alterada para uma condição negativa, de modo que o estagiário só pudesse ver conjuntos de dados que não tivessem a etiquetaemployee_type=intern
, a verificação seria totalmente ignorada, e o estagiário poderia ver os conjuntos de dados aos quais normalmente não teria acesso no BigQuery.
Funções necessárias
Tem de conceder funções de IAM que dão aos utilizadores as autorizações necessárias para realizar cada tarefa neste documento.
As seguintes funções de IAM predefinidas incluem todas as autorizações do BigQuery necessárias:
- Proprietário de dados do BigQuery (
roles/bigquery.dataOwner
) - Administrador do BigQuery (
roles/bigquery.admin
)
As autorizações do Resource Manager para adicionar e remover etiquetas estão incluídas na
função de utilizador da etiqueta
(roles/resourcemanager.tagUser
).
Autorizações necessárias
Para usar etiquetas no BigQuery, precisa das seguintes autorizações:
Operação | Interfaces do BigQuery (API, CLI, consola) e Terraform | API Cloud Resource Manager ou gcloud |
---|---|---|
Anexe uma etiqueta a uma tabela ou a uma vista |
|
|
Remova uma etiqueta de uma tabela ou uma vista |
|
|
Anexe uma etiqueta a um conjunto de dados |
|
|
Remova uma etiqueta de um conjunto de dados |
|
|
Para listar chaves de etiquetas e valores de chaves na Google Cloud consola, precisa das seguintes autorizações:
Para listar as chaves de etiquetas associadas a uma organização principal ou a um projeto, precisa da autorização
resourcemanager.tagKeys.list
no nível principal da chave de etiqueta e da autorizaçãoresourcemanager.tagKeys.get
para cada chave de etiqueta. Para ver a lista de chaves de etiquetas na consola do BigQuery, clique no nome do conjunto de dados e, de seguida, clique em Editar detalhes, ou clique no nome da tabela ou da vista e, de seguida, clique em Detalhes > Editar detalhes.Para listar os valores das etiquetas de chaves associadas a uma organização principal ou a um projeto, precisa da autorização
resourcemanager.tagValues.list
ao nível principal do valor da etiqueta e da autorizaçãoresourcemanager.tagValues.get
para cada valor da etiqueta. Para ver a lista de valores-chave das etiquetas na consola do BigQuery, clique no nome do conjunto de dados e, de seguida, clique em Editar detalhes, ou clique no nome da tabela ou da vista e, de seguida, clique em Detalhes > Editar detalhes.
Para usar etiquetas na API Cloud Resource Manager ou no gcloud, precisa das seguintes autorizações:
- Para listar as etiquetas anexadas a uma tabela ou uma vista com a API Cloud Resource Manager ou a CLI gcloud, precisa da autorização do IAM
bigquery.tables.listTagBindings
. - Para listar as etiquetas eficazes de uma tabela ou uma vista, precisa da autorização de IAM
bigquery.tables.listEffectiveTags
. - Para listar as etiquetas anexadas a um conjunto de dados com a API Cloud Resource Manager ou a CLI gcloud, precisa da autorização do IAM
bigquery.datasets.listTagBindings
. - Para listar as etiquetas eficazes para um conjunto de dados, precisa da autorização de IAM.
bigquery.datasets.listEffectiveTags
Crie chaves e valores de etiquetas
Pode criar uma etiqueta antes de a anexar a um recurso do BigQuery ou pode criar uma etiqueta manualmente quando cria o recurso através daGoogle Cloud consola.
Para ver informações sobre como criar chaves de etiquetas e valores de etiquetas, consulte os artigos Criar uma etiqueta e Adicionar valores de etiquetas na documentação do Resource Manager.
Etiquete conjuntos de dados
As secções seguintes descrevem como anexar etiquetas a conjuntos de dados novos e existentes, listar etiquetas anexadas a um conjunto de dados e desanexar etiquetas de um conjunto de dados.
Anexe etiquetas quando criar um novo conjunto de dados
Depois de criar uma etiqueta, pode anexá-la a um novo conjunto de dados do BigQuery. Só pode anexar um valor de etiqueta a um conjunto de dados para qualquer chave de etiqueta. Pode anexar um máximo de 50 etiquetas a um conjunto de dados.
Consola
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, selecione o projeto onde quer criar o conjunto de dados.
Clique em > Criar conjunto de dados.
Ver açõesIntroduza as informações do novo conjunto de dados. Para mais detalhes, consulte o artigo Crie conjuntos de dados.
Expanda a secção Etiquetas.
Para aplicar uma etiqueta existente, faça o seguinte:
Clique na seta de menu pendente junto a Selecionar âmbito e escolha Âmbito atual: Selecionar organização atual ou Selecionar projeto atual.
Em alternativa, clique em Selecionar âmbito para pesquisar um recurso ou ver uma lista de recursos atuais.
Para Chave 1 e Valor 1, escolha os valores adequados nas listas.
Para introduzir manualmente uma nova etiqueta, faça o seguinte:
Clique na seta de menu pendente junto a Selecionar um âmbito e escolha Introduzir IDs manualmente > Organização, Projeto ou Etiquetas.
Se estiver a criar uma etiqueta para o seu projeto ou organização, no diálogo, introduza o
PROJECT_ID
ou oORGANIZATION_ID
e, em seguida, clique em Guardar.Para Chave 1 e Valor 1, escolha os valores adequados nas listas.
Opcional: para adicionar mais etiquetas à tabela, clique em Adicionar etiqueta e siga os passos anteriores.
Clique em Criar conjunto de dados.
SQL
Use a declaração CREATE SCHEMA
.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATASET_ID
: o ID do conjunto de dados que está a criar.TAG_KEY_1
: o nome da chave com espaço de nomes que quer definir como a primeira etiqueta no conjunto de dados, por exemplo,'my-project/env'
ou'556741164180/department'
.TAG_VALUE_1
: o nome abreviado do valor da etiqueta, por exemplo,'prod'
ou'sales'
.TAG_KEY_2
: o nome da chave com espaço de nomes para a segunda etiqueta.TAG_VALUE_2
: o nome abreviado do valor da segunda etiqueta.
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
bq
Use o
bq mk --dataset
comando
com a flag --add_tags
:
bq mk --dataset \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Substitua o seguinte:
TAG
: a etiqueta que está a anexar ao novo conjunto de dados. As várias etiquetas estão separadas por vírgulas. Por exemplo,556741164180/env:prod,myProject/department:sales
. Cada etiqueta tem de ter o nome da chave com espaço de nomes e o nome abreviado do valor.PROJECT_ID
: o ID do projeto onde está a criar um conjunto de dados.DATASET_ID
: o ID do novo conjunto de dados.
Terraform
Use o recurso
google_bigquery_dataset
.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
O exemplo seguinte cria um conjunto de dados denominado my_dataset
e, em seguida, anexa-lhe etiquetas preenchendo o campo resource_tags
:
Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
-
No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o ficheiro é denominadomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tf
criado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
-
Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expetativas:
terraform plan
Faça as correções necessárias à configuração.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
API
Chame o método datasets.insert
e adicione as etiquetas ao campo resource_tags
.
Anexe etiquetas a um conjunto de dados existente
Depois de criar uma etiqueta, pode anexá-la a um conjunto de dados existente. Só pode anexar um valor de etiqueta a um conjunto de dados para qualquer chave de etiqueta específica.
Consola
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e selecione um conjunto de dados.
Na secção Informações do conjunto de dados, clique em
Editar detalhes.Expanda a secção Etiquetas.
Para aplicar uma etiqueta existente, faça o seguinte:
Clique na seta de menu pendente junto a Selecionar âmbito e escolha Âmbito atual: Selecionar organização atual ou Selecionar projeto atual.
Em alternativa, clique em Selecionar âmbito para pesquisar um recurso ou ver uma lista de recursos atuais.
Para Chave 1 e Valor 1, escolha os valores adequados nas listas.
Para introduzir manualmente uma nova etiqueta, faça o seguinte:
Clique na seta de menu pendente junto a Selecionar um âmbito e escolha Introduzir IDs manualmente > Organização, Projeto ou Etiquetas.
Se estiver a criar uma etiqueta para o seu projeto ou organização, no diálogo, introduza o
PROJECT_ID
ou oORGANIZATION_ID
e, em seguida, clique em Guardar.Para Chave 1 e Valor 1, escolha os valores adequados nas listas.
Opcional: para adicionar mais etiquetas à tabela, clique em Adicionar etiqueta e siga os passos anteriores.
Clique em Guardar.
SQL
Use a declaração ALTER SCHEMA SET OPTIONS
.
O exemplo seguinte substitui todas as etiquetas de um conjunto de dados existente.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATASET_ID
: o ID do conjunto de dados que contém a tabela.TABLE_ID
: o nome da tabela que está a etiquetar.TAG_KEY_1
: o nome da chave com espaço de nomes que quer definir como a primeira etiqueta na tabela, por exemplo,'my-project/env'
ou'556741164180/department'
.TAG_VALUE_1
: o nome abreviado do valor da etiqueta, por exemplo,'prod'
ou'sales'
.TAG_KEY_2
: o nome da chave com espaço de nomes para a segunda etiqueta.TAG_VALUE_2
: o nome abreviado do valor da segunda etiqueta.
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
O exemplo seguinte usa o operador +=
para anexar etiquetas a um conjunto de dados sem substituir as etiquetas existentes. Se uma etiqueta existente tiver a mesma chave, essa etiqueta é substituída.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATASET_ID
: o ID do conjunto de dados que contém a tabela.TABLE_ID
: o nome da tabela que está a etiquetar.TAG_KEY_1
: o nome da chave com espaço de nomes que quer definir como a primeira etiqueta na tabela, por exemplo,'my-project/env'
ou'556741164180/department'
.TAG_VALUE_1
: o nome abreviado do valor da etiqueta, por exemplo,'prod'
ou'sales'
.TAG_KEY_2
: o nome da chave com espaço de nomes para a segunda etiqueta.TAG_VALUE_2
: o nome abreviado do valor da segunda etiqueta.
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
bq
Use o
bq update
comando
com a flag --add_tags
:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Substitua o seguinte:
TAG
: a etiqueta que está a anexar ao conjunto de dados. As várias etiquetas estão separadas por vírgulas. Por exemplo,556741164180/env:prod,myProject/department:sales
. Cada etiqueta tem de ter o nome da chave com espaço de nomes e o nome abreviado do valor.PROJECT_ID
: o ID do projeto onde o conjunto de dados existente está localizado.DATASET_ID
: o ID do conjunto de dados existente.
gcloud
Para anexar uma etiqueta a um conjunto de dados através da linha de comandos, crie um recurso de associação de etiquetas através do comando gcloud resource-manager tags bindings create
:
gcloud resource-manager tags bindings create \ --tag-value=TAG_VALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Substitua o seguinte:
TAG_VALUE_NAME
: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a anexar, comotagValues/4567890123
ou1234567/my_tag_key/my_tag_value
.RESOURCE_ID
: o ID completo do conjunto de dados, incluindo o nome do 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
: a localização do seu conjunto de dados.
Terraform
Adicione etiquetas ao campo resource_tags
do conjunto de dados e, de seguida, aplique a configuração atualizada através do recurso google_bigquery_dataset
. Para mais informações, consulte o exemplo do Terraform em Anexe etiquetas quando criar um novo conjunto de dados.
API
Chame o método
datasets.get
para obter o recurso de conjunto de dados, incluindo o campo resource_tags
. Adicione as suas
etiquetas ao campo resource_tags
e transmita o recurso do conjunto de dados atualizado
novamente através do
método datasets.update
.
Liste as etiquetas anexadas a um conjunto de dados
Os passos seguintes fornecem uma lista de associações de etiquetas anexadas diretamente a um conjunto de dados. Estes métodos não devolvem etiquetas herdadas de recursos principais.
Consola
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e selecione um conjunto de dados.
As etiquetas aparecem na secção Informações do conjunto de dados.
bq
Para listar as etiquetas anexadas a um conjunto de dados, use o comando bq show
.
bq show PROJECT_ID:DATASET_ID
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém o seu conjunto de dados.DATASET_ID
: o ID do conjunto de dados para o qual quer listar as etiquetas.
gcloud
Para obter uma lista de associações de etiquetas anexadas a um recurso, use o comando gcloud resource-manager tags bindings list
:
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID \ --location=LOCATION
Substitua o seguinte:
RESOURCE_ID
: o ID completo do conjunto de dados, incluindo o nome do 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
: a localização do seu conjunto de dados.
O resultado é semelhante ao seguinte:
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
Terraform
Use o comando terraform state show
para listar os atributos do conjunto de dados, incluindo o campo resource_tags
. Execute este comando no diretório onde o ficheiro de configuração do Terraform do conjunto de dados foi executado.
terraform state show google_bigquery_dataset.default
API
Chame o método
datasets.get
para obter o recurso do conjunto de dados. O recurso do conjunto de dados inclui etiquetas anexadas ao conjunto de dados no campo resource_tags
.
Visualizações
Use a vista INFORMATION_SCHEMA.SCHEMATA_OPTIONS
.
Por exemplo, a consulta seguinte mostra todas as etiquetas anexadas a todos os conjuntos de dados numa região. Esta consulta devolve uma tabela com colunas que incluem schema_name
(os nomes dos conjuntos de dados), option_name
(sempre 'tags'
), object_type
(sempre ARRAY<STRUCT<STRING, STRING>>
) e option_value
, que contém matrizes de objetos STRUCT
que representam etiquetas associadas a cada conjunto de dados. Para conjuntos de dados sem etiquetas atribuídas, a coluna option_value
devolve uma matriz vazia.
SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name='tags'
Substitua o seguinte:
REGION
: a região onde os seus conjuntos de dados estão localizados.
Desassocie etiquetas de um conjunto de dados
Pode desassociar uma etiqueta de um recurso eliminando o recurso de associação de etiquetas. Se estiver a eliminar uma etiqueta, tem de desassociá-la do conjunto de dados antes de a eliminar. Para mais informações, consulte o artigo Eliminar etiquetas.
Consola
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e selecione um conjunto de dados.
Na secção Informações do conjunto de dados, clique em
Editar detalhes.Na secção Etiquetas, clique em
Eliminar item junto à etiqueta que quer eliminar.Clique em Guardar.
SQL
Use a declaração ALTER SCHEMA SET OPTIONS
.
O exemplo seguinte desassocia etiquetas de um conjunto de dados através do operador -=
. Para desassociar todas as etiquetas de um conjunto de dados, pode especificar tags=NULL
ou tags=[]
.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATASET_ID
: o ID do conjunto de dados que contém a tabela.TABLE_ID
: o nome da tabela da qual está a desassociar as etiquetas.TAG_KEY_1
: o nome da chave com espaço de nomes da primeira etiqueta que quer desassociar, por exemplo,'my-project/env'
ou'556741164180/department'
.TAG_VALUE_1
: o nome abreviado do valor da etiqueta que quer desassociar, por exemplo,'prod'
ou'sales'
.TAG_KEY_2
: o nome da chave com espaço de nomes da segunda etiqueta que está a desassociar.TAG_VALUE_2
: o nome abreviado do valor da segunda etiqueta que está a desassociar.
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
bq
Use o
bq update
comando
com a flag --remove_tags
:
bq update \ --remove_tags=REMOVED_TAG \ PROJECT_ID:DATASET_ID
Substitua o seguinte:
REMOVED_TAG
: a etiqueta que está a remover do conjunto de dados. As várias etiquetas estão separadas por vírgulas. Aceita apenas chaves sem pares de valores. Por exemplo,556741164180/env,myProject/department
. Cada etiqueta tem de ter o nome da chave com espaço de nomes.PROJECT_ID
: o ID do projeto que contém o seu conjunto de dados.DATASET_ID
: o ID do conjunto de dados do qual desanexar as etiquetas.
Em alternativa, se quiser remover todas as etiquetas de um conjunto de dados, use o comando
bq update
com a flag --clear_all_tags
:
bq update \ --clear_all_tags PROJECT_ID:DATASET_ID
gcloud
Para desassociar uma etiqueta de um conjunto de dados através da linha de comandos, elimine a associação da etiqueta através do comando gcloud resource-manager tags bindings delete
:
gcloud resource-manager tags bindings delete \ --tag-value=TAG_VALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Substitua o seguinte:
TAG_VALUE_NAME
: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a desassociar, comotagValues/4567890123
ou1234567/my_tag_key/my_tag_value
.RESOURCE_ID
: o ID completo do conjunto de dados, incluindo o nome do 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
: a localização do seu conjunto de dados.
Terraform
Remova as etiquetas do campo resource_tags
do conjunto de dados e, em seguida, aplique a configuração atualizada através do recurso google_bigquery_dataset
.
API
Chame o método
datasets.get
para obter o recurso de conjunto de dados, incluindo o campo resource_tags
. Remova as etiquetas do campo resource_tags
e transmita novamente o recurso do conjunto de dados atualizado através do método datasets.update
.
Etiquete tabelas
As secções seguintes descrevem como anexar etiquetas a tabelas novas e existentes, listar etiquetas anexadas a uma tabela e desanexar etiquetas de uma tabela.
Anexe etiquetas quando criar uma nova tabela
Depois de criar uma etiqueta, pode anexá-la a uma nova tabela. Só pode anexar um valor de etiqueta a uma tabela para qualquer chave de etiqueta específica. Pode anexar um máximo de 50 etiquetas a uma tabela.
Consola
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e, de seguida, selecione um conjunto de dados.
Na secção Informações do conjunto de dados, clique em
Criar tabela.Introduza as informações da nova tabela. Para mais detalhes, consulte o artigo Crie e use tabelas.
Expanda a secção Etiquetas.
Para aplicar uma etiqueta existente, faça o seguinte:
Clique na seta de menu pendente junto a Selecionar âmbito e escolha Âmbito atual: Selecionar organização atual ou Selecionar projeto atual.
Em alternativa, clique em Selecionar âmbito para pesquisar um recurso ou ver uma lista de recursos atuais.
Para Chave 1 e Valor 1, escolha os valores adequados nas listas.
Para introduzir manualmente uma nova etiqueta, faça o seguinte:
Clique na seta de menu pendente junto a Selecionar um âmbito e escolha Introduzir IDs manualmente > Organização, Projeto ou Etiquetas.
Se estiver a criar uma etiqueta para o seu projeto ou organização, no diálogo, introduza o
PROJECT_ID
ou oORGANIZATION_ID
e, em seguida, clique em Guardar.Para Chave 1 e Valor 1, escolha os valores adequados nas listas.
Opcional: para adicionar mais etiquetas à tabela, clique em Adicionar etiqueta e siga os passos anteriores.
Clique em Criar tabela.
SQL
Use a declaração CREATE TABLE
.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATASET_ID
: o ID do conjunto de dados onde está a criar a tabela.TABLE_ID
: o nome da nova tabela.TAG_KEY_1
: o nome da chave com espaço de nomes que quer definir como a primeira etiqueta na tabela, por exemplo,'my-project/env'
ou'556741164180/department'
.TAG_VALUE_1
: o nome abreviado do valor da etiqueta, por exemplo,'prod'
ou'sales'
.TAG_KEY_2
: o nome da chave com espaço de nomes para a segunda etiqueta.TAG_VALUE_2
: o nome abreviado do valor da segunda etiqueta.
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
bq
Use o
bq mk --table
comando
com a flag --add_tags
:
bq mk --table \ --schema=SCHEMA \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
Substitua o seguinte:
SCHEMA
: a definição do esquema inline.TAG
: a etiqueta que está a anexar à nova tabela. As várias etiquetas estão separadas por vírgulas. Por exemplo,556741164180/env:prod,myProject/department:sales
. Cada etiqueta tem de ter o nome da chave com espaço de nomes e o nome abreviado do valor.PROJECT_ID
: o ID do projeto onde está a criar uma tabela.DATASET_ID
: o ID do conjunto de dados onde está a criar uma tabela.TABLE_ID
: o ID da nova tabela.
Terraform
Use o recurso
google_bigquery_table
.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
O exemplo seguinte cria uma tabela denominada mytable
e, em seguida, anexa-lhe etiquetas preenchendo o campo resource_tags
:
Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
-
No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o ficheiro é denominadomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tf
criado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
-
Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expetativas:
terraform plan
Faça as correções necessárias à configuração.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
API
Chame o método tables.insert
com um recurso de tabela definido.
Inclua as etiquetas no campo resource_tags
.
Anexe etiquetas a uma tabela existente
Depois de criar uma etiqueta, pode anexá-la a uma tabela existente. Só pode anexar um valor de etiqueta a uma tabela para qualquer chave de etiqueta específica.
Consola
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e o conjunto de dados e, de seguida, selecione uma tabela.
Clique no separador Detalhes e, de seguida, clique em
Editar detalhes.Expanda a secção Etiquetas.
Para aplicar uma etiqueta existente, faça o seguinte:
Clique na seta de menu pendente junto a Selecionar âmbito e escolha Âmbito atual: Selecionar organização atual ou Selecionar projeto atual.
Em alternativa, clique em Selecionar âmbito para pesquisar um recurso ou ver uma lista de recursos atuais.
Para Chave 1 e Valor 1, escolha os valores adequados nas listas.
Para introduzir manualmente uma nova etiqueta, faça o seguinte:
Clique na seta de menu pendente junto a Selecionar um âmbito e escolha Introduzir IDs manualmente > Organização, Projeto ou Etiquetas.
Se estiver a criar uma etiqueta para o seu projeto ou organização, no diálogo, introduza o
PROJECT_ID
ou oORGANIZATION_ID
e, em seguida, clique em Guardar.Para Chave 1 e Valor 1, escolha os valores adequados nas listas.
Opcional: para adicionar mais etiquetas à tabela, clique em Adicionar etiqueta e siga os passos anteriores.
Clique em Guardar.
SQL
Use a declaração ALTER TABLE SET OPTIONS
.
O exemplo seguinte substitui todas as etiquetas de uma tabela existente.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATASET_ID
: o ID do conjunto de dados que contém a tabela.TABLE_ID
: o nome da tabela que está a etiquetar.TAG_KEY_1
: o nome da chave com espaço de nomes que quer definir como a primeira etiqueta na tabela, por exemplo,'my-project/env'
ou'556741164180/department'
.TAG_VALUE_1
: o nome abreviado do valor da etiqueta, por exemplo,'prod'
ou'sales'
.TAG_KEY_2
: o nome da chave com espaço de nomes para a segunda etiqueta.TAG_VALUE_2
: o nome abreviado do valor da segunda etiqueta.
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
O exemplo seguinte usa o operador +=
para anexar uma etiqueta a uma tabela sem substituir as etiquetas existentes. Se uma etiqueta existente tiver a mesma chave, essa etiqueta é substituída.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATASET_ID
: o ID do conjunto de dados que contém a tabela.TABLE_ID
: o nome da tabela que está a etiquetar.TAG_KEY_1
: o nome da chave com espaço de nomes que quer definir como a primeira etiqueta na tabela, por exemplo,'my-project/env'
ou'556741164180/department'
.TAG_VALUE_1
: o nome abreviado do valor da etiqueta, por exemplo,'prod'
ou'sales'
.TAG_KEY_2
: o nome da chave com espaço de nomes para a segunda etiqueta.TAG_VALUE_2
: o nome abreviado do valor da segunda etiqueta.
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
bq
Use o
bq update
comando
com a flag --add_tags
:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
Substitua o seguinte:
TAG
: a etiqueta que está a anexar à tabela. As várias etiquetas estão separadas por vírgulas. Por exemplo,556741164180/env:prod,myProject/department:sales
. Cada etiqueta tem de ter o nome da chave com espaço de nomes e o nome abreviado do valor.PROJECT_ID
: o ID do projeto que contém a sua tabela.DATASET_ID
: o ID do conjunto de dados que contém a sua tabela.TABLE_ID
: o ID da tabela que está a atualizar.
gcloud
Para anexar uma etiqueta a uma tabela através da linha de comandos, crie um recurso de associação de etiquetas através do comando gcloud resource-manager tags bindings create
:
gcloud resource-manager tags bindings create \ --tag-value=TAG_VALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Substitua o seguinte:
TAG_VALUE_NAME
: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a anexar, comotagValues/4567890123
ou1234567/my_tag_key/my_tag_value
.RESOURCE_ID
: o ID completo da tabela, incluindo o nome do domínio da API (//bigquery.googleapis.com/
) para identificar o tipo de recurso. Por exemplo,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table
LOCATION
: a localização da sua mesa.
Terraform
Adicione etiquetas ao campo resource_tags
da tabela e, em seguida, aplique a configuração atualizada através do recurso google_bigquery_table
. Para
mais informações, consulte o exemplo do Terraform em
Anexe etiquetas quando criar uma nova tabela.
API
Chame o método tables.update
com um recurso de tabela definido.
Inclua as etiquetas no campo resource_tags
.
Listar etiquetas anexadas a uma tabela
Pode listar as etiquetas anexadas diretamente a uma tabela. Este processo não apresenta etiquetas herdadas de recursos principais.
Consola
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e o conjunto de dados e, de seguida, selecione uma tabela.
As etiquetas são visíveis no separador Detalhes.
bq
Use o comando
bq show
e procure a coluna tags
. Se não existirem etiquetas na tabela, a coluna tags
não é apresentada.
bq show \ PROJECT_ID:DATASET_ID.TABLE_ID
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém a sua tabela.DATASET_ID
: o ID do conjunto de dados que contém a sua tabela.TABLE_ID
: o ID da sua tabela.
gcloud
Para obter uma lista de associações de etiquetas anexadas a um recurso, use o comando gcloud resource-manager tags bindings list
:
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID \ --location=LOCATION
Substitua o seguinte:
RESOURCE_ID
: o ID completo da tabela, incluindo o nome do domínio da API (//bigquery.googleapis.com/
) para identificar o tipo de recurso. Por exemplo,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table
.LOCATION
: a localização do seu conjunto de dados.
O resultado é semelhante ao seguinte:
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
Terraform
Use o comando terraform state show
para listar os atributos da tabela, incluindo o campo resource_tags
. Execute este comando
no diretório onde o ficheiro de configuração do Terraform da tabela foi
executado.
terraform state show google_bigquery_table.default
API
Chame o método tables.get
com um recurso de tabela definido e procure o campo resource_tags
.
Visualizações
Use a vista INFORMATION_SCHEMA.TABLE_OPTIONS
.
Por exemplo, a consulta seguinte mostra todas as etiquetas anexadas a todas as tabelas num conjunto de dados. Esta consulta devolve uma tabela com colunas que incluem schema_name
(o nome do conjunto de dados), option_name
(sempre 'tags'
), object_type
(sempre ARRAY<STRUCT<STRING, STRING>>
) e option_value
, que contém matrizes de objetos STRUCT
que representam etiquetas associadas a cada conjunto de dados. Para tabelas sem etiquetas atribuídas, a coluna option_value
devolve uma matriz vazia.
SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name='tags'
Substitua DATASET_ID
pelo ID do conjunto de dados
que contém a sua tabela.
Desassocie etiquetas de uma tabela
Pode remover uma associação de etiqueta de uma tabela eliminando a associação de etiqueta. Se estiver a eliminar uma etiqueta, tem de desassociá-la da tabela antes de a eliminar. Para mais informações, consulte o artigo Eliminar etiquetas.
Consola
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e o conjunto de dados e, de seguida, selecione uma tabela.
Clique no separador Detalhes e, de seguida, clique em
Editar detalhes.Na secção Etiquetas, clique em
Eliminar item junto à etiqueta que quer eliminar.Clique em Guardar.
SQL
Use a declaração ALTER TABLE SET OPTIONS
.
O exemplo seguinte desassocia etiquetas de uma tabela através do operador -=
. Para desassociar todas as etiquetas de uma tabela, pode especificar tags=NULL
ou tags=[]
.
Na Google Cloud consola, aceda à página BigQuery.
No editor de consultas, introduza a seguinte declaração:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATASET_ID
: o ID do conjunto de dados que contém a tabela.TABLE_ID
: o nome da tabela da qual está a desassociar as etiquetas.TAG_KEY_1
: o nome da chave com espaço de nomes da primeira etiqueta que quer desassociar, por exemplo,'my-project/env'
ou'556741164180/department'
.TAG_VALUE_1
: o nome abreviado do valor da etiqueta que quer desassociar, por exemplo,'prod'
ou'sales'
.TAG_KEY_2
: o nome da chave com espaço de nomes da segunda etiqueta que está a desassociar.TAG_VALUE_2
: o nome abreviado do valor da segunda etiqueta que está a desassociar.
Clique em
Executar.
Para mais informações sobre como executar consultas, consulte o artigo Execute uma consulta interativa.
bq
Para remover algumas etiquetas de uma tabela, use o comando bq update
com a flag --remove_tags
:
bq update \ --remove_tags=TAG_KEYS \ PROJECT_ID:DATASET_ID.TABLE_ID
Substitua o seguinte:
TAG_KEYS
: as chaves das etiquetas que está a desassociar da tabela, separadas por vírgulas. Por exemplo,556741164180/env,myProject/department
. Cada chave de etiqueta tem de ter o nome da chave com espaço de nomes.PROJECT_ID
: o ID do projeto que contém a sua tabela.DATASET_ID
: o ID do conjunto de dados que contém a sua tabela.TABLE_ID
: o ID da tabela que está a atualizar.
Para remover todas as etiquetas de uma tabela, use o comando
bq update
com a flag --clear_all_tags
:
bq update \ --clear_all_tags \ PROJECT_ID:DATASET_ID.TABLE_ID
gcloud
Para remover uma associação de etiquetas de uma tabela através da linha de comandos, elimine a associação de etiquetas através do comando gcloud resource-manager tags bindings delete
:
gcloud resource-manager tags bindings delete \ --tag-value=TAG_VALUE_NAME \ --parent=RESOURCE_ID \ --location=LOCATION
Substitua o seguinte:
TAG_VALUE_NAME
: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a eliminar, comotagValues/4567890123
ou1234567/my_tag_key/my_tag_value
.RESOURCE_ID
: o ID completo da tabela, incluindo o nome do domínio da API (//bigquery.googleapis.com/
) para identificar o tipo de recurso. Por exemplo,//bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table
.LOCATION
: a localização do seu conjunto de dados.
Terraform
Remova as etiquetas do campo resource_tags
da tabela e, em seguida, aplique a configuração atualizada através do recurso google_bigquery_table
.
API
Chame o método
tables.update
com um recurso de tabela definido
e remova as etiquetas no campo resource_tags
. Para remover todas as etiquetas, remova o campo resource_tags
.
Etiquete outros recursos semelhantes a tabelas
Da mesma forma, pode etiquetar vistas do BigQuery, vistas materializadas, clones e instantâneos.
Elimine etiquetas
Não pode eliminar uma etiqueta se esta for referenciada por uma tabela, uma vista ou um conjunto de dados. Deve desassociar todos os recursos de associação de etiquetas existentes antes de eliminar a chave ou o valor da etiqueta. Para eliminar chaves de etiquetas e valores de etiquetas, consulte o artigo Eliminar etiquetas.
Exemplo
Suponhamos que é administrador de uma organização. Os seus analistas de dados são todos membros do grupo analysts@example.com, que tem a função do IAM de visualizador de dados do BigQuery no projeto userData
. É contratado um estagiário de análise de dados e, de acordo com a política da empresa, só deve ter autorização para ver o conjunto de dados anonymousData
no projeto userData
.
Pode controlar o acesso através de etiquetas.
Crie uma etiqueta com a chave
employee_type
e o valorintern
:Na Google Cloud consola, aceda à página IAM.
Localize a linha que contém o estagiário cujo acesso ao conjunto de dados quer restringir e clique em
Editar principal nessa linha.No menu Função, selecione Visualizador de dados do BigQuery.
Clique em Adicionar condição.
Nos campos Título e Descrição, introduza valores que descrevam a condição da etiqueta IAM que quer criar.
No separador Criador de condições, clique em Adicionar.
No menu Tipo de condição, selecione Recurso e, de seguida, Etiqueta.
No menu Operador, selecione tem valor.
No campo Caminho do valor, introduza o caminho do valor da etiqueta no formato
ORGANIZATION/TAG_KEY/TAG_VALUE
. Por exemplo,example.org/employee_type/intern
.Esta condição da etiqueta IAM restringe o acesso do estagiário a conjuntos de dados que tenham a etiqueta
intern
.Para guardar a condição da etiqueta, clique em Guardar.
Para guardar todas as alterações feitas no painel Editar autorizações, clique em Guardar.
Para anexar o valor da etiqueta
intern
ao conjunto de dadosanonymousData
, use a linha de comandos para executar o comandogcloud resource-manager tags bindings create
. Por exemplo:gcloud resource-manager tags bindings create \ --tag-value=tagValues/4567890123 \ --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \ --location=US
O que se segue?
- Para uma vista geral das etiquetas no Google Cloud, consulte o artigo Vista geral das etiquetas.
- Para mais informações sobre como usar etiquetas, consulte o artigo Criar e gerir etiquetas.
- Para obter informações sobre como controlar o acesso aos recursos do BigQuery com as condições da IAM, consulte o artigo Controle o acesso com as condições da IAM.