Crea y administra etiquetas

En esta guía, se describe cómo crear y administrar etiquetas en bases de datos de Firestore.

Acerca de las etiquetas de política

Una etiqueta es un par clave-valor que se puede adjuntar a un recurso dentro deGoogle Cloud. Puedes usar etiquetas para permitir o denegar políticas de forma condicional en función de si un recurso tiene una etiqueta específica. Por ejemplo, puedes otorgar de forma condicional roles de Identity and Access Management (IAM) en función de si un recurso tiene una etiqueta específica. Para obtener más información sobre las etiquetas, consulta Descripción general de las etiquetas.

Las etiquetas se adjuntan a los recursos creando un recurso de vinculación de etiqueta que vincula el valor al recurso Google Cloud .

Permisos necesarios

Para obtener los permisos que necesitas para administrar etiquetas, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Visualizador de etiquetas (roles/resourcemanager.tagViewer) en los recursos a los que se adjuntan las etiquetas
  • Ver y administrar etiquetas a nivel de la organización: Visualizador de la organización (roles/resourcemanager.organizationViewer) en la organización
  • Crear, actualizar y borrar definiciones de etiquetas: Administrador de etiquetas (roles/resourcemanager.tagAdmin) en el recurso para el que creas, actualizas o borras etiquetas
  • Adjuntar y quitar etiquetas de los recursos: Usuario de etiquetas (roles/resourcemanager.tagUser) en el valor de la etiqueta y los recursos a los que adjuntas o quitas el valor de la etiqueta

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Para adjuntar etiquetas a las instancias de Firestore, necesitas el rol de Propietario de Datastore (roles/datastore.owner).

Crea claves y valores de etiqueta

Antes de poder adjuntar una etiqueta, debes crear una y configurar su valor. Para crear claves y valores de etiqueta, consulta Crea una etiqueta y Agrega un valor a una etiqueta.

Agrega etiquetas durante la creación de recursos

Puedes agregar etiquetas cuando crees bases de datos. Agregar etiquetas durante la creación de recursos te permite proporcionar al instante metadatos esenciales para tus recursos y también ayuda a mejorar la organización, el seguimiento de costos y la aplicación automatizada de políticas.

gcloud

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

Reemplaza lo siguiente:

  • LOCATION: Es la ubicación en la que se operará.
  • DATABASE: Es el ID que se usará para la base de datos.
  • KEY=VALUE: Es una lista de pares clave-valor de etiquetas para vincular. Cada elemento debe expresarse como <tag-key-namespaced-name>=<tag-value-short-name> o <tag-key-name>=<tag-value-name>.

Para especificar varias etiquetas, sepáralas con una coma, por ejemplo, TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2.

API

Envía una solicitud POST a la siguiente URL:

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

Proporciona el siguiente JSON en el cuerpo de la solicitud:

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

Reemplaza lo siguiente:

  • PROJECT: Es el proyecto en el que se operará.
  • DATABASE: Es el ID que se usará para la base de datos.
  • LOCATION: Es la ubicación en la que se operará.
  • KEY:VALUE: Es una lista de pares clave-valor de etiquetas para vincular. Cada elemento debe expresarse como <tag-key-namespaced-name>:<tag-value-short-name> o <tag-key-name>:<tag-value-name>.

Agrega etiquetas a recursos existentes

Para agregar una etiqueta a las bases de datos existentes, sigue estos pasos:

gcloud

Para adjuntar una etiqueta a una base de datos, debes crear un recurso de vinculación de etiqueta con el comando gcloud resource-manager tags bindings create:

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

Reemplaza lo siguiente:

  • TAGVALUE_NAME es el ID permanente o el nombre de espacio de nombres del valor de la etiqueta que se adjunta; por ejemplo, tagValues/567890123456.
  • RESOURCE_ID es el ID completo del recurso, incluido el nombre de dominio de la API para identificar el tipo de recurso (//firestore.googleapis.com/). Por ejemplo, para adjuntar una etiqueta a una base de datos en projects/firestore-test-project, el ID completo es //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: es la ubicación de tu recurso. Si adjuntas una etiqueta a un recurso global, como una carpeta o un proyecto, omite esta marca. Si adjuntas una etiqueta a un recurso regional o zonal, debes especificar la ubicación; por ejemplo, us-central1 (región) o us-central1-a (zona).

Enumera las etiquetas adjuntas a los recursos

Puedes ver una lista de vinculaciones de etiquetas adjuntas o heredadas por la base de datos directamente.

gcloud

Para obtener una lista de vinculaciones de etiquetas adjuntas a un recurso, usa el comando gcloud resource-manager tags bindings list:

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

Reemplaza lo siguiente:

  • RESOURCE_ID es el ID completo del recurso, incluido el nombre de dominio de la API para identificar el tipo de recurso (//firestore.googleapis.com/). Por ejemplo, para adjuntar una etiqueta a una base de datos en projects/firestore-test-project, el ID completo es //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: es la ubicación de tu recurso. Si ves una etiqueta adjunta a un recurso global, como una carpeta o un proyecto, omite esta marca. Si ves una etiqueta adjunta a un recurso regional o zonal, debes especificar la ubicación; por ejemplo, us-central1 (región) o us-central1-a (zona).

Deberías recibir una respuesta similar a la que figura a continuación:

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

Desconecta etiquetas de recursos

Puedes desconectar las etiquetas que se adjuntaron directamente a una base de datos. Las etiquetas heredadas se pueden anular conectando una etiqueta con la misma clave y un valor diferente, pero no se pueden desconectar.

gcloud

Para borrar una vinculación de etiqueta, usa el comando gcloud resource-manager tags bindings delete:

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

Reemplaza lo siguiente:

  • TAGVALUE_NAME es el ID permanente o el nombre de espacio de nombres del valor de la etiqueta que se adjunta; por ejemplo, tagValues/567890123456.
  • RESOURCE_ID es el ID completo del recurso, incluido el nombre de dominio de la API para identificar el tipo de recurso (//firestore.googleapis.com/). Por ejemplo, para adjuntar una etiqueta a una base de datos en projects/firestore-test-project, el ID completo es //firestore.googleapis.com/projects/firestore-test-project/databases/\(default\).
  • LOCATION: es la ubicación de tu recurso. Si adjuntas una etiqueta a un recurso global, como una carpeta o un proyecto, omite esta marca. Si adjuntas una etiqueta a un recurso regional o zonal, debes especificar la ubicación; por ejemplo, us-central1 (región) o us-central1-a (zona).

Borra claves y valores de etiqueta

Cuando quites una definición de valor o clave de etiqueta, asegúrate de que la etiqueta esté desconectada de la base de datos. Debes borrar los adjuntos de etiqueta existentes, llamados vinculaciones de etiquetas, antes de borrar la definición de la etiqueta en sí. Para borrar claves y valores de etiqueta, consulta Borra etiquetas.

Etiquetas y condiciones de Identity and Access Management

Puedes usar etiquetas y condiciones de IAM para otorgar de forma condicional vinculaciones de roles a los usuarios en la jerarquía de tu proyecto. Cambiar o borrar la etiqueta adjunta a un recurso puede quitar el acceso del usuario a ese recurso si se aplicó una política de IAM con vinculaciones de funciones condicionales. Para obtener más información, consulta Etiquetas y condiciones de Identity and Access Management.

¿Qué sigue?