Crie e faça a gestão de etiquetas

Este guia descreve como criar e gerir etiquetas em bases de dados do Firestore.

Acerca das etiquetas

Uma etiqueta é um par de chave-valor que pode anexar a um recurso em Google Cloud. Pode usar etiquetas para permitir ou negar condicionalmente políticas com base no facto de um recurso ter uma etiqueta específica. Por exemplo, pode conceder condicionalmente funções de gestão de identidade e de acesso (IAM) com base no facto de um recurso ter uma etiqueta específica. Para mais informações sobre etiquetas, consulte o artigo Vista geral das etiquetas.

As etiquetas são anexadas aos recursos através da criação de um recurso de associação de etiquetas que associa o valor ao recurso Google Cloud .

Autorizações necessárias

As autorizações de que precisa dependem da ação que tem de realizar.

Para obter estas autorizações, peça ao administrador para conceder a função sugerida no nível adequado da hierarquia de recursos.

Ver etiquetas

Para ver as definições de etiquetas e as etiquetas anexadas a recursos, precisa da função Visualizador de etiquetas (roles/resourcemanager.tagViewer) ou de outra função que inclua as seguintes autorizações:

Autorizações necessárias

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • listTagBindings para o tipo de recurso adequado. Por exemplo, compute.instances.listTagBindings para ver etiquetas anexadas a instâncias do Compute Engine.
  • listEffectiveTags
  • para o tipo de recurso adequado. Por exemplo, compute.instances.listEffectiveTags para ver todas as etiquetas anexadas ou herdadas por instâncias do Compute Engine.

Para ver etiquetas ao nível da organização, precisa da função Visitante da organização (roles/resourcemanager.organizationViewer) no recurso da organização.

Administre etiquetas

Para criar, atualizar e eliminar definições de etiquetas, precisa da função de administrador de etiquetas (roles/resourcemanager.tagAdmin) ou de outra função que inclua as seguintes autorizações:

Autorizações necessárias

  • resourcemanager.tagKeys.create
  • resourcemanager.tagKeys.update
  • resourcemanager.tagKeys.delete
  • resourcemanager.tagKeys.list
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.getIamPolicy
  • resourcemanager.tagKeys.setIamPolicy
  • resourcemanager.tagValues.create
  • resourcemanager.tagValues.update
  • resourcemanager.tagValues.delete
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.getIamPolicy
  • resourcemanager.tagValues.setIamPolicy

Para administrar etiquetas ao nível da organização, precisa da função de Leitor da organização (roles/resourcemanager.organizationViewer) no recurso da organização.

Faça a gestão de etiquetas em recursos

Para adicionar e remover etiquetas anexadas a recursos, precisa da função Utilizador de etiquetas (roles/resourcemanager.tagUser) ou de outra função com autorizações equivalentes, no valor da etiqueta e nos recursos aos quais está a anexar o valor da etiqueta. A função Utilizador da etiqueta inclui as seguintes autorizações:

Autorizações necessárias

  • Autorizações necessárias para o recurso ao qual está a anexar o valor da etiqueta
    • Autorização createTagBinding específica do recurso, como compute.instances.createTagBinding para instâncias do Compute Engine.
    • Autorização deleteTagBinding específica do recurso, como compute.instances.deleteTagBinding para instâncias do Compute Engine.
  • Autorizações necessárias para o valor da etiqueta:
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • Autorizações que lhe permitem ver projetos e definições de etiquetas:
    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

Para anexar etiquetas a instâncias do Firestore, precisa da função Datastore Owner (roles/datastore.owner).

Crie chaves e valores de etiquetas

Antes de poder anexar uma etiqueta, tem de criar uma etiqueta e configurar o respetivo valor. Para criar chaves de etiquetas e valores de etiquetas, consulte os artigos Criar uma etiqueta e Adicionar um valor de etiqueta.

Adicione etiquetas durante a criação de recursos

Pode adicionar etiquetas no momento da criação de bases de dados. A adição de etiquetas durante a criação de recursos permite-lhe fornecer instantaneamente metadados essenciais para os seus recursos e também ajuda a melhorar a organização, o acompanhamento de custos e a aplicação automática de políticas.

gcloud

  gcloud firestore databases create \
      --location=LOCATION \
      --database=DATABASE \
      --tags=[KEY=VALUE,...]

Substitua o seguinte:

  • LOCATION: a localização na qual operar.
  • DATABASE: o ID a usar para a base de dados.
  • KEY=VALUE: lista de pares CHAVE=VALOR de etiquetas a associar. Cada item tem de ser expresso como <tag-key-namespaced-name>=<tag-value-short-name> ou <tag-key-name>=<tag-value-name>.

Especifique várias etiquetas separando-as com uma vírgula, por exemplo, TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2

API

Envie um pedido POST para o seguinte URL:

      
https://firestore.googleapis.com/v1/projects/PROJECT/databases?databaseId=DATABASE

Forneça o seguinte JSON no corpo do pedido:

      
"type": "FIRESTORE_NATIVE",
"locationId": LOCATION,
"tags": {KEY:VALUE}

Substitua o seguinte:

  • PROJECT: o projeto no qual operar.
  • DATABASE: o ID a usar para a base de dados.
  • LOCATION: a localização na qual operar.
  • KEY:VALUE: lista de pares KEY=VALUE de etiquetas a associar. Cada item tem de ser expresso como <tag-key-namespaced-name>:<tag-value-short-name> ou <tag-key-name>:<tag-value-name>.

Adicione etiquetas a recursos existentes

Para adicionar uma etiqueta a bases de dados existentes, siga estes passos:

gcloud

Para anexar uma etiqueta a uma base de dados, tem de criar 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=TAGVALUE_NAME \
          --parent=RESOURCE_ID \
          --location=LOCATION
      

Substitua o seguinte:

  • TAGVALUE_NAME: o ID permanente ou o nome com espaço de nomes do valor da etiqueta anexado, por exemplo, tagValues/567890123456.
  • RESOURCE_ID é o ID completo do recurso, incluindo o nome do domínio da API para identificar o tipo de recurso (//firestore.googleapis.com/). Por exemplo, para anexar uma etiqueta a uma base de dados no projects/firestore-test-project, o ID completo é: //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: a localização do seu recurso. Se estiver a anexar uma etiqueta a um recurso global, como uma pasta ou um projeto, omita esta flag. Se estiver a anexar uma etiqueta a um recurso regional ou zonal, tem de especificar a localização. Por exemplo, us-central1 (região) ou us-central1-a (zona).

Liste as etiquetas anexadas aos recursos

Pode ver uma lista de associações de etiquetas diretamente anexadas ou herdadas pela base de dados.

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 recurso, incluindo o nome do domínio da API para identificar o tipo de recurso (//firestore.googleapis.com/). Por exemplo, para anexar uma etiqueta a uma base de dados no projects/firestore-test-project, o ID completo é: //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: a localização do seu recurso. Se estiver a ver uma etiqueta anexada a um recurso global, como uma pasta ou um projeto, omita esta flag. Se estiver a ver uma etiqueta anexada a um recurso regional ou zonal, tem de especificar a localização, por exemplo, us-central1 (região) ou us-central1-a (zona).

Deve receber uma resposta semelhante à seguinte:

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //firestore.googleapis.com/projects/firestore-test-project/databases/(default)
      

Desassocie etiquetas de recursos

Pode desanexar etiquetas que foram anexadas diretamente a uma base de dados. As etiquetas herdadas podem ser substituídas anexando uma etiqueta com a mesma chave e um valor diferente, mas não podem ser desanexadas.

gcloud

Para eliminar uma associação de etiqueta, use o comando: gcloud resource-manager tags bindings delete

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

Substitua o seguinte:

  • TAGVALUE_NAME: o ID permanente ou o nome com espaço de nomes do valor da etiqueta anexado, por exemplo, tagValues/567890123456.
  • RESOURCE_ID é o ID completo do recurso, incluindo o nome do domínio da API para identificar o tipo de recurso (//firestore.googleapis.com/). Por exemplo, para anexar uma etiqueta a uma base de dados no projects/firestore-test-project, o ID completo é: //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: a localização do seu recurso. Se estiver a anexar uma etiqueta a um recurso global, como uma pasta ou um projeto, omita esta flag. Se estiver a anexar uma etiqueta a um recurso regional ou zonal, tem de especificar a localização. Por exemplo, us-central1 (região) ou us-central1-a (zona).

Elimine chaves e valores de etiquetas

Quando remover uma definição de chave ou valor de etiqueta, certifique-se de que a etiqueta está desassociada da base de dados. Tem de eliminar as associações de etiquetas existentes, denominadas associações de etiquetas, antes de eliminar a própria definição de etiqueta. Para eliminar chaves de etiquetas e valores de etiquetas, consulte o artigo Eliminar etiquetas.

Condições e etiquetas da gestão de identidade e de acesso

Pode usar etiquetas e condições da IAM para conceder condicionalmente associações de funções a utilizadores na sua hierarquia. A alteração ou a eliminação da etiqueta anexada a um recurso pode remover o acesso do utilizador a esse recurso se tiver sido aplicada uma política do IAM com associações de funções condicionais. Para mais informações, consulte o artigo Condições e etiquetas da gestão de identidade e de acesso.

O que se segue?