Usa etiquetas para administrar el acceso a los buckets de registros

En este documento, se describe cómo usar etiquetas para administrar tus buckets de registros de Cloud Logging. Las etiquetas, que se crean a nivel de la organización o del proyecto, te permiten anotar tus recursos. También puedes otorgar roles de Identity and Access Management (IAM) de manera condicional o denegar permisos de IAM de forma condicional en función de si un recurso tiene una etiqueta específica. Para obtener información sobre las etiquetas, consulta Descripción general de las etiquetas.

Por ejemplo, si usas BigQuery para analizar tus datos de Facturación de Cloud, puedes adjuntar la etiqueta project:production a los buckets de registros que almacenan datos de registros de recursos de producción y la etiqueta project:development a los buckets de registros que almacenan datos de registros de recursos de desarrollo. Luego, puedes consultar los datos de Facturación de Cloud con etiquetas y ver un desglose de tus costos entre el desarrollo y la producción.

Las etiquetas se pueden adjuntar de forma explícita a los buckets de registros o heredarse de su organización, carpetas y proyectos principales.

Antes de comenzar

Para comenzar a administrar tus buckets de registros con etiquetas, haz lo siguiente:

  1. Asegúrate de haber creado una etiqueta y configurado sus valores. Usas Resource Manager para administrar las definiciones de etiquetas. Para obtener información sobre cómo crear y administrar etiquetas, consulta Crea y administra etiquetas.
  2. Para obtener los permisos que necesitas para administrar tus buckets de registros con etiquetas, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto o la organización:

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

    Estos roles predefinidos contienen los permisos necesarios para administrar tus buckets de registros con etiquetas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para administrar tus buckets de registros con etiquetas:

    • Agrega o quita etiquetas de los buckets de registros:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • resourcemanager.projects.get
      • logging.buckets.createTagbinding
      • logging.buckets.deleteTagBinding
    • Visualiza las etiquetas adjuntas a los buckets de registros:
      • resourcemanager.tagValues.{get,list}
      • resourcemanager.tagKeys.{get,list}
      • logging.buckets.listTagBindings
      • logging.buckets.listEffectiveTags

    También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

  3. Para obtener el permiso que necesitas para administrar buckets de registros, pídele a tu administrador que te otorgue el rol de IAM Escritor de configuración de registros (roles/logging.configWriter) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    Este rol predefinido contiene el permiso logging.buckets.list, que se requiere para administrar buckets de registros.

    También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.

Adjunta etiquetas a un bucket de registros

Para adjuntar una etiqueta a un bucket de registros, haz lo siguiente:

Google Cloud console

  1. En la consola de Google Cloud , ve a la página Explorador de registros:

    Ir al Almacenamiento de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Ubica el bucket de registros al que deseas adjuntar una etiqueta.

  3. En el bucket de registros, haz clic en Más y, luego, en Editar etiquetas.

  4. En el diálogo, en la sección Etiquetas directas, selecciona el recurso en el que se creó la etiqueta para ubicarla. Por ejemplo, para usar una etiqueta que se creó a nivel del proyecto, elige Seleccionar proyecto actual como el alcance.

    También puedes buscar manualmente el ID del proyecto, la organización o la etiqueta seleccionando la opción Entrada manual.

  5. Selecciona el par clave-valor adecuado y, luego, haz clic en Guardar.

  6. Aparecerá un diálogo en el que se confirmarán los cambios. Haz clic en Confirmar para finalizar los cambios.

gcloud

Para adjuntar una etiqueta a un bucket de registros, crea una vinculación de etiqueta ejecutando el comando gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

En el comando anterior, realiza los siguientes reemplazos:

  • TAG_VALUE_ID: Es el ID permanente o el nombre con espacio de nombres del valor de la etiqueta. Por ejemplo, tagValues/4567890123 Para obtener más información sobre los identificadores de etiquetas, consulta Identificadores y definiciones de etiquetas.

  • BUCKET_NAME: Es el nombre del bucket de registros. Por ejemplo, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION: Es la ubicación del bucket de registros.

API

Para adjuntar una etiqueta a un bucket de registros, usa el método tagBindings.create.

Visualiza las etiquetas adjuntas a un bucket de registros

Para ver las etiquetas adjuntas a un bucket de registros, haz lo siguiente:

Google Cloud console

  1. En la consola de Google Cloud , ve a la página Explorador de registros:

    Ir al Almacenamiento de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Ubica el bucket de registros cuyas etiquetas deseas ver.

    En la columna Etiquetas, se muestra una etiqueta asociada al bucket de registros. Para ver todas las etiquetas asociadas con el bucket de registros, haz clic en el botón Más para expandir la lista de etiquetas.

gcloud

Ejecuta el comando gcloud resource-manager tags bindings list:

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

En el comando anterior, realiza los siguientes reemplazos:

  • BUCKET_NAME: Es el nombre del bucket de registros. Por ejemplo, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION: Es la ubicación del bucket de registros.

Opcional: Para ver las etiquetas heredadas por el bucket de registros, agrega la marca --effective. Si agregas esta marca, se mostrará una respuesta similar a la siguiente:

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

Si todas las etiquetas se adjuntan de forma explícita al bucket de registros y no se heredan etiquetas, el campo inherited es falso y se omite.

API

Para obtener una lista de las vinculaciones de etiquetas de un bucket, usa el método tagBindings.list.

Quita etiquetas de un bucket de registros

Para quitar las etiquetas adjuntas a un bucket de registros, debes borrar la vinculación de etiqueta adjunta al bucket de registros. Para borrar una etiqueta, debes quitarla de todos los recursos adjuntos.

Google Cloud console

  1. En la consola de Google Cloud , ve a la página Explorador de registros:

    Ir al Almacenamiento de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Ubica el bucket de registros cuya etiqueta deseas quitar.

  3. En el bucket de registros, haz clic en Más y, luego, en Editar etiquetas.

  4. En el cuadro de diálogo, mantén el puntero sobre la etiqueta que deseas quitar y haz clic en Borrar elemento. Haz clic en Guardar para guardar los cambios.

  5. Aparecerá un diálogo en el que se confirmarán los cambios. Haz clic en Confirmar para finalizar los cambios.

gcloud

Ejecuta el comando gcloud resource-manager tags bindings delete:

gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=BUCKET_NAME \
--location=LOCATION

En el comando anterior, realiza los siguientes reemplazos:

  • TAG_VALUE_ID: Es el ID permanente o el nombre con espacio de nombres del valor de la etiqueta. Por ejemplo, tagValues/4567890123 Para obtener más información sobre los identificadores de etiquetas, consulta Identificadores y definiciones de etiquetas.

  • BUCKET_NAME: Es el nombre del bucket de registros. Por ejemplo, //logging.googleapis.com/projects/BUCKET_PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID

  • LOCATION: Es la ubicación del bucket de registros.

API

Para quitar una etiqueta en un bucket de registros, usa el método tagBindings.delete.

Limitaciones

  • No puedes usar los permisos de roles de IAM para controlar qué buckets de registros ve una principal cuando enumera los buckets de registros en un proyecto de Google Cloud . Un principal verá una lista completa o una lista vacía. Sin embargo, puedes usar las concesiones de roles de IAM con condiciones de IAM para restringir las acciones que una principal puede realizar en un bucket de registros. Por ejemplo, puedes restringir si un principal puede borrar un bucket de registros específico.

  • Si usas las exportaciones de datos de Facturación de Cloud con BigQuery, es posible que las etiquetas tarden hasta una hora en usarse en la exportación. Si se agregó o quitó una etiqueta en un plazo de una hora, o si el bucket de registros existe desde hace menos de una hora, es posible que no aparezca en la exportación.

Roles personalizados y concesiones de roles con condiciones de IAM

Si planeas usar roles personalizados de IAM y adjuntar condiciones de IAM a las asignaciones de roles, es posible que debas crear varios roles personalizados. Algunos permisos de IAM se invalidan cuando se adjunta una condición de IAM a un otorgamiento de rol.

En el caso de Cloud Logging, los siguientes permisos de IAM se invalidan cuando una concesión de rol contiene una condición de IAM:

  • logging.buckets.list
  • logging.buckets.create

Por lo tanto, es posible que debas crear un rol con los permisos list y create y otro rol que contenga otros permisos específicos del bucket. Por ejemplo, puedes crear un rol que contenga los permisos logging.buckets.delete y logging.buckets.update.

Cuando otorgues el rol que contiene los permisos list y create, no adjuntes una condición de IAM al otorgamiento del rol. Cuando otorgas el rol que contiene los permisos delete y update, puedes agregar una condición de IAM que restrinja el otorgamiento a los recursos con una etiqueta específica.

¿Qué sigue?