Controla el acceso y organiza instancias con etiquetas

En esta página, se describe cómo puedes usar las etiquetas de Google Cloud para administrar el acceso a las instancias de Spanner.

Una etiqueta de Google Cloud es un par clave-valor que puedes adjuntar a tus recursos de Google Cloud, como proyectos o instancias de Spanner. Puedes usar etiquetas para agrupar y organizar tus instancias y establecer políticas de acceso de la administración de identidades y accesos (IAM) de forma condicional en función de si una instancia tiene una etiqueta específica. Puedes crear y administrar etiquetas de instancias de Spanner con Google Cloud CLI o la consola de Google Cloud. Después de crear las etiquetas, puedes crear una vinculación de etiquetas para adjuntarlas a tus recursos de Google Cloud. Los elementos secundarios del recurso heredan las vinculaciones de etiquetas según la jerarquía de recursos de Google Cloud. Por ejemplo, si adjuntas una etiqueta a tu proyecto, todas las instancias de ese proyecto la heredarán. También puedes usar etiquetas para organizar tus recursos de Google Cloud, pero no puedes usar etiquetas a fin de establecer condiciones en las políticas de IAM.

Para obtener más información sobre las etiquetas, consulta Descripción general de las etiquetas.

Casos de uso comunes para etiquetas de instancias de Spanner

Estos son algunos casos de uso comunes de las etiquetas:

  • Etiquetas de Identity and Access Management (IAM): Otorga funciones de Identity and Access Management (IAM) en función de si una instancia tiene una etiqueta específica. La presencia o ausencia de un valor de etiqueta es la condición de esa política de IAM y ayuda a controlar el acceso a tu instancia de Spanner.
  • Etiquetas de estado: Indica y administra el estado de una instancia mediante la creación de etiquetas. Por ejemplo, state:active, state:todelete y state:archive.
  • Etiquetas de entorno: Especifica entornos de producción, prueba y desarrollo para instancias mediante la creación de pares clave-valor, como env:prod, env:dev y env:test.

Cómo crear y administrar etiquetas de instancias de Spanner

Las etiquetas se estructuran como pares clave-valor. Crea una clave de etiqueta en el recurso de tu organización y, luego, adjunta valores de etiqueta a la clave de etiqueta (por ejemplo, una clave de etiqueta environment con los valores prod y dev). Luego, puedes crear una vinculación de etiqueta que vincule el valor de etiqueta a un recurso de Google Cloud, como un proyecto o una instancia de Spanner. Ten en cuenta que no puedes asignar una etiqueta a una base de datos.

Permisos necesarios

Los permisos que necesitas dependen de la acción que debes realizar. Para obtener más información, consulta Permisos necesarios en la documentación de Resource Manager.

Crea claves y valores de etiqueta

Antes de que puedas adjuntar una etiqueta a tu instancia, debes crear la etiqueta y asignar su valor. Para crear claves y valores de etiqueta, consulta Crea una etiqueta y Agrega un valor de etiqueta.

Adjunta una etiqueta a una instancia

Después de crear los pares clave-valor de etiquetas, puedes crear una vinculación de etiqueta y adjuntarla a tu instancia de Spanner.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Spanner.

    Ir a Instancias de Spanner

  2. Selecciona la instancia a la que deseas adjuntar una etiqueta.

  3. Haz clic en Etiquetas.

  4. Si tu organización no aparece en el panel Etiquetas, haz clic en Seleccionar alcance. Selecciona tu organización y haz clic en Abrir.

  5. En el panel Etiquetas, selecciona Agregar etiqueta.

  6. En el campo Clave, selecciona la clave de la etiqueta que deseas adjuntar de la lista. Para filtrar la lista, escribe palabras clave.

  7. En el campo Valor, selecciona el valor de la etiqueta que deseas adjuntar de la lista. Para filtrar la lista, escribe palabras clave.

  8. Si deseas adjuntar más etiquetas, haz clic en Agregar etiqueta y selecciona la clave y el valor de cada una.

  9. Haz clic en Guardar.

  10. En el diálogo Confirmar, haz clic en Confirmar para adjuntar la etiqueta.

    Una notificación confirmará que se actualizaron tus etiquetas.

gcloud

Para crear una vinculación de etiqueta y adjuntarla a tu instancia, ejecuta el siguiente comando:

gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/VALUE_NAME
--location=LOCATION
  • PROJECT_ID: El ID del proyecto.
  • INSTANCE_ID: El ID de la instancia
  • ORG_ID: Es el ID de la organización.
  • KEY_NAME: Es el nombre visible (corto) de la clave de etiqueta. Por ejemplo, env
  • VALUE_NAME: Es el nombre visible (corto) del valor de la etiqueta. Por ejemplo, prod
  • LOCATION: La ubicación de la instancia Por ejemplo, us-east1.

Por ejemplo, para crear una vinculación de etiqueta en tu instancia my-instance de Spanner con el par clave-valor de etiqueta env:prod, ejecuta el siguiente comando:

gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/my-project/instances/my-instance
--tag-value=123456789012/env/prod
--location=us-east1

Condiciones y etiquetas de IAM

Puedes usar etiquetas y condiciones de IAM para otorgar condicionalmente vinculaciones de funciones a los usuarios. Si se aplica una política de IAM con vinculaciones de funciones condicionales, cambiar o borrar la etiqueta adjunta a un recurso puede quitar el acceso del usuario a ese recurso.

Para obtener más información, consulta Descripción general de las condiciones de IAM.

Console

Si deseas usar etiquetas para otorgar a los usuarios vinculaciones de funciones de forma condicional, consulta Administra el acceso a las etiquetas.

gcloud

Para aplicar una condición basada en etiquetas a una política de IAM, asegúrate de tener los permisos necesarios y, luego, ejecuta el siguiente comando:

gcloud organizations add-iam-policy-binding ORG_ID
--role=roles/ROLE --member=PRINCIPAL
--condition=resource.matchTag('PROJECT_ID/KEY_NAME', 'VALUE_NAME')
  • ORG_ID: Es el ID de la organización.
  • ROLE: Es el nombre del rol que se asignará a la principal. El nombre de la función es la ruta completa de una función predefinida, como roles/logging.viewer, o el ID de función para una función personalizada, como organizations/{ORG_ID}/roles/logging.viewer.
  • PRINCIPAL: La principal a la que deseas agregar la vinculación de función Debe tener el formato user|group|serviceAccount:email o domain:domain. Por ejemplo, user:test-user@gmail.com, group:admins@example.com, serviceAccount:test123@example.domain.com o domain:example.domain.com.
  • PROJECT_ID: El ID del proyecto.
  • KEY_NAME: Es el nombre visible (corto) de la clave de etiqueta. Por ejemplo, env
  • VALUE_NAME: Es el nombre visible (corto) del valor de la etiqueta. Por ejemplo, prod

Este comando agrega una vinculación de política de IAM a la política de IAM de una organización. Una vinculación de política consta de un miembro, un rol y una condición opcional.

Por ejemplo, para otorgar condicionalmente a user1@example.com la función spanner.backupAdmin en todos los recursos del proyecto 123456789012 con la etiqueta env:prod, ejecuta el siguiente comando:

gcloud organizations add-iam-policy-binding my-project
--member=user1@example.com --role=roles/spanner.backupAdmin
--condition=resource.matchTag('123456789012/env', 'prod')

Enumerar las etiquetas adjuntas a una instancia

Puedes ver una lista de vinculaciones de etiquetas que la instancia hereda o adjunta directamente.

gcloud

Para obtener una lista de vinculaciones de etiquetas adjuntas a un recurso, usa el comando gcloud resource-manager tags bindings list: Si agregas la marca --effective, también obtendrás todas las vinculaciones de etiquetas heredadas por este recurso.

Para enumerar todas las vinculaciones de etiquetas adjuntas a una instancia, ejecuta el siguiente comando:

gcloud resource-manager tags bindings list
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--location=LOCATION
--effective
  • PROJECT_ID: El ID del proyecto.
  • INSTANCE_ID: El ID de la instancia
  • LOCATION: La ubicación de la instancia Por ejemplo, us-east1

Borrar una vinculación de etiqueta

Cuando quites una definición de valor o clave de etiqueta, asegúrate de que la etiqueta esté separada de la instancia. Debes borrar las vinculaciones de etiquetas existentes antes de borrar la etiqueta.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Spanner.

    Ir a Instancias de Spanner

  2. Selecciona la instancia para la que deseas borrar una vinculación de etiqueta.

  3. Haz clic en Etiquetas.

  4. En el panel Etiquetas, junto a la etiqueta que deseas desvincular, haz clic en Borrar elemento.

  5. Haz clic en Guardar.

  6. En el diálogo Confirmar, haz clic en Confirmar para desconectar la etiqueta.

    Una notificación confirmará que se actualizaron tus etiquetas.

gcloud

Para borrar una vinculación de etiqueta, ejecuta el siguiente comando:

gcloud resource-manager tags bindings delete
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/KEY_VALUE
--location=LOCATION
  • PROJECT_ID: El ID del proyecto.
  • INSTANCE_ID: El ID de la instancia
  • ORG_ID: Es el ID de la organización.
  • KEY_NAME: Es el nombre visible (corto) de la clave de etiqueta. Por ejemplo, env
  • VALUE_NAME: Es el nombre visible (corto) del valor de la etiqueta. Por ejemplo, prod
  • LOCATION: La ubicación de la instancia Por ejemplo, us-east1.

Borra una etiqueta

Después de borrar la vinculación de etiqueta, puedes borrar tu etiqueta. Para borrar las claves y los valores de las etiquetas, consulta Cómo borrar etiquetas.

¿Qué sigue?