Conjuntos de datos de etiquetas

En esta página, se describe cómo usar etiquetas para aplicar de forma condicional las políticas de Identity and Access Management (IAM) a los conjuntos de datos de BigQuery.

Una etiqueta es un par clave-valor que puedes adjuntar directamente a un conjunto de datos o que un conjunto de datos puede heredar de otros recursos de Google Cloud. Puedes aplicar políticas de forma condicional en función de si un recurso tiene una etiqueta específica. Por ejemplo, puedes otorgar de forma condicional el rol de visualizador de datos de BigQuery a una principal en cualquier conjunto de datos con la etiqueta environment:dev.

Para obtener más información sobre el uso de etiquetas en la jerarquía de recursos de Google Cloud, consulta la Descripción general de las etiquetas.

Permisos necesarios

Para usar etiquetas en BigQuery, necesitas los siguientes permisos:

  • Para adjuntar una etiqueta a un conjunto de datos, necesitas el permiso bigquery.datasets.createTagBinding de IAM en el conjunto de datos y el permiso resourcemanager.tagValueBindings.create a nivel de la organización en el valor de la etiqueta que deseas adjuntar.
  • Para quitar una etiqueta de un conjunto de datos, necesitas el permiso bigquery.datasets.deleteTagBinding de IAM en el conjunto de datos y el permiso resourcemanager.tagValueBindings.delete a nivel de organización en el valor de la etiqueta que deseas borrar. .
  • Para obtener una lista de las etiquetas adjuntas a un conjunto de datos, necesitas el permiso bigquery.datasets.listTagBindings de IAM.

Los siguientes roles predefinidos de IAM incluyen todos los permisos de BigQuery necesarios:

  • Propietario de datos de BigQuery (roles/bigquery.dataOwner)
  • BigQuery Admin (roles/bigquery.admin)

Los permisos de Resource Manager se incluyen en el rol de usuario de etiquetas (roles/resourcemanager.tagUser).

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 valores de etiquetas.

Adjunta etiquetas a un conjunto de datos

Después de crear una etiqueta, puedes adjuntarla a un conjunto de datos. Solo puedes adjuntar un valor de etiqueta a un conjunto de datos para cualquier clave de etiqueta determinada.

Para adjuntar una etiqueta a un conjunto de datos mediante la línea de comandos, crea un recurso de vinculación de etiquetas con el comando gcloud alpha resource-manager tags bindings create:

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

Reemplaza lo siguiente:

  • TAGVALUE_NAME: El ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se adjuntará, como tagValues/4567890123 o 1234567/my_tag_key/my_tag_value
  • RESOURCE_ID: El ID completo del conjunto de datos, incluido el nombre de dominio de la API (//bigquery.googleapis.com/) para identificar el tipo de recurso, por ejemplo, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
  • LOCATION: La ubicación de tu conjunto de datos

Obtén una lista de las etiquetas adjuntas a un conjunto de datos

Con los siguientes pasos, se proporciona una lista de vinculaciones de etiquetas adjuntas directamente a un conjunto de datos. No se muestran etiquetas heredadas de los recursos superiores.

Console

  1. Ve a la página de BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.

    Las etiquetas aparecen en el panel Información del conjunto de datos.

gcloud

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

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

Reemplaza lo siguiente:

  • RESOURCE_ID: El ID completo del conjunto de datos, incluido el nombre de dominio de la API (//bigquery.googleapis.com/) para identificar el tipo de recurso, por ejemplo, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset

  • LOCATION: La ubicación de tu conjunto de datos

El resultado es similar a este:

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

Desvincula etiquetas de un conjunto de datos

Para desconectar una etiqueta de un recurso, borra el recurso de vinculación de etiquetas. Si necesitas borrar una etiqueta, primero debes desvincularla.

Para desvincular una etiqueta de un conjunto de datos mediante la línea de comandos, borra la vinculación de la etiqueta con el comando gcloud alpha resource-manager tags bindings delete:

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

Reemplaza lo siguiente:

  • TAGVALUE_NAME: El ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se adjuntará, como tagValues/4567890123 o 1234567/my_tag_key/my_tag_value
  • RESOURCE_ID: El ID completo del conjunto de datos, incluido el nombre de dominio de la API (//bigquery.googleapis.com/) para identificar el tipo de recurso, por ejemplo, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
  • LOCATION: La ubicación de tu conjunto de datos

Borrar etiquetas

Debes borrar todos los recursos de vinculación de etiquetas existentes antes de borrar la clave o el valor de la etiqueta. Para borrar claves y valores de etiqueta, consulta Borra etiquetas.

Ejemplo

Imagina que eres administrador de una organización. Los analistas de datos son miembros del grupo analistas@example.com, que tiene el rol de IAM de visualizador de datos de BigQuery en el proyecto userData. Se contrata un pasante de analista de datos y, de acuerdo con la política de la empresa, solo debe tener permiso para ver el conjunto de datos anonymousData en el proyecto userData. Puedes controlar su acceso mediante etiquetas.

  1. Crea una etiqueta con la clave employee_type y el valor intern:

    Ejemplo de cómo crear valores y clave de etiqueta

  2. En la consola, ve a la página IAM.

    Ir a IAM

  3. Ubica la fila que contiene el pasante cuyo acceso al conjunto de datos deseas restringir y haz clic en Editar principal en esa fila.

  4. En el menú Rol, selecciona Visualizador de conjunto de datos de BigQuery.

  5. Haz clic en Agregar condición:

  6. En los campos Título y Descripción, ingresa los valores que describen la condición de IAM que deseas crear.

  7. En la pestaña Creador de condiciones, haz clic en Agregar.

  8. En el menú Tipo de condición, selecciona Recurso y, luego, Etiqueta.

  9. En el menú Operador, selecciona tiene el valor.

  10. En el campo Ruta de valor, ingresa la ruta de valor de etiqueta en el formato ORGANIZATION/TAG_KEY/TAG_VALUE, por ejemplo, example.org/employee_type/intern.

    Ejemplo de una condición de IAM mediante el uso de etiquetas

    Esta condición de IAM restringe el acceso del pasante a los conjuntos de datos que tienen la etiqueta intern.

  11. Para guardar la condición, haz clic en Guardar.

  12. Para guardar todos los cambios que realizaste en el panel Editar permisos, haz clic en Guardar.

  13. A fin de adjuntar el valor de etiqueta intern al conjunto de datos anonymousData, usa la línea de comandos para ejecutar el comando gcloud alpha resource-manager tags bindings create:

    gcloud alpha resource-manager tags bindings create \
    --tag-value=tagValues/4567890123 \
    --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \
    --location=US
    

Limitaciones

  • Si borras un valor de etiqueta, BigQuery no borra de forma automática las vinculaciones de etiqueta que usan ese valor. El ID del valor de etiqueta es necesario para borrar una vinculación de etiqueta después de que se borra el valor de etiqueta. Si no conoces el ID del valor de etiqueta, la única forma de quitar la vinculación es borrar todo el conjunto de datos.

  • Puedes adjuntar un máximo de 10 etiquetas a un conjunto de datos.

¿Qué sigue?