Controla el acceso con etiquetas
En este documento, se describe cómo usar etiquetas con los recursos de BigQuery para el control de acceso.
Una etiqueta es un par clave-valor que puedes adjuntar a un recurso de Cloud de Confiance by S3NS. Puedes usar etiquetas con BigQuery de las siguientes maneras:
- Otorgar o denegar políticas de forma condicional: Puedes adjuntar etiquetas a las tablas, las vistas y los conjuntos de datos de BigQuery, y usar Identity and Access Management (IAM) para otorgar roles de forma condicional o denegar el acceso (vista previa) a esos recursos según sus etiquetas. Para obtener más información sobre las políticas de denegación, consulta Políticas de denegación.
- Control de acceso a nivel de columna: Puedes adjuntar etiquetas de administración de datos (vista previa) a las columnas de la tabla y usarlas con políticas de datos para restringir el acceso a los datos de las columnas.
Puedes adjuntar etiquetas directamente a un recurso, o bien las etiquetas se pueden heredar de los recursos superiores en la jerarquía de recursos Cloud de Confiance .
En este documento, se explica cómo usar etiquetas con IAM para otorgar o denegar acceso de forma condicional a las tablas, las vistas y los conjuntos de datos de BigQuery.
Para obtener más información sobre el uso de etiquetas en la jerarquía de recursos de Cloud de Confiance by S3NS, consulta la Descripción general de las etiquetas.
Para otorgar permisos a muchos recursos de BigQuery relacionados al mismo tiempo, incluidos los recursos que aún no existen, considera usar las Condiciones de IAM.
Limitaciones
Las etiquetas de tabla no son compatibles con las tablas de BigQuery Omni, las tablas de conjuntos de datos ocultos ni las tablas temporales. Las etiquetas de conjuntos de datos no son compatibles con los conjuntos de datos de BigQuery Omni. Además, las consultas entre regiones en BigQuery Omni no usan etiquetas durante las verificaciones de control de acceso de las tablas en otras regiones.
Puedes adjuntar un máximo de 50 etiquetas a una tabla o un conjunto de datos.
Todas las tablas a las que se hace referencia en una consulta comodín deben tener exactamente el mismo conjunto de claves y valores de etiqueta.
Los usuarios con acceso condicional a un conjunto de datos o una tabla no pueden modificar los permisos de ese recurso a través de la consola de Cloud de Confiance . Las modificaciones de permisos solo se admiten a través de la herramienta bq y la API de BigQuery.
Algunos servicios fuera de BigQuery no pueden verificar las condiciones de la etiqueta de IAM de forma correcta. Si la condición de la etiqueta es positiva, es decir, se le otorga a un usuario una función en un recurso solo si ese recurso tiene una etiqueta en particular, entonces el acceso se niega al recurso, sin importar a qué etiquetas se adjunten. Si la condición de la etiqueta es negativa, lo que significa que se otorga a un usuario una función en un recurso solo si ese recurso no tiene una etiqueta en particular, entonces la condición de la etiqueta no se verifica.
Roles obligatorios
Debes otorgar roles de IAM que otorguen a los usuarios los permisos necesarios para realizar cada tarea de este documento.
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 para agregar y quitar etiquetas se incluyen en el rol de usuario de etiquetas (roles/resourcemanager.tagUser).
Permisos necesarios
Para usar etiquetas en BigQuery, necesitas los siguientes permisos:
| Operación | Interfaces de BigQuery (API, CLI, consola) y Terraform | API de Cloud Resource Manager o gcloud |
|---|---|---|
| Adjunta una etiqueta a una tabla o vista |
|
|
| Cómo quitar una etiqueta de una tabla o vista |
|
|
| Adjunta una etiqueta a un conjunto de datos |
|
|
| Cómo quitar una etiqueta de un conjunto de datos |
|
|
Para enumerar las claves y los valores de clave de las etiquetas en la consola de Cloud de Confiance , necesitas los siguientes permisos:
Para enumerar las claves de etiqueta que están asociadas con una organización o proyecto principal, necesitas el permiso
resourcemanager.tagKeys.listen el nivel superior de la clave de etiqueta y el permisoresourcemanager.tagKeys.getpara cada clave de etiqueta. Para ver la lista de claves de etiquetas en la consola de BigQuery, haz clic en el nombre del conjunto de datos y, luego, en Editar detalles, o bien haz clic en el nombre de la tabla o la vista y, luego, en Detalles > Editar detalles.Para enumerar los valores de las etiquetas de las claves asociadas con una organización o un proyecto principal, necesitas el permiso
resourcemanager.tagValues.listen el nivel superior del valor de la etiqueta y el permisoresourcemanager.tagValues.getpara cada valor de la etiqueta. Para ver la lista de valores de claves de etiquetas en la consola de BigQuery, haz clic en el nombre del conjunto de datos y, luego, en Editar detalles, o bien haz clic en el nombre de la tabla o la vista y, luego, en Detalles > Editar detalles.
Para usar etiquetas en la API de Cloud Resource Manager o gcloud, necesitas los siguientes permisos:
- Para obtener una lista de las etiquetas adjuntas a una tabla o vista con la API de Cloud Resource Manager o gcloud CLI, necesitas el permiso
bigquery.tables.listTagBindingsde IAM. - Para generar una lista de las etiquetas efectivas de una tabla o vista, necesitas el permiso
bigquery.tables.listEffectiveTagsde IAM. - Para obtener una lista de las etiquetas adjuntas a un conjunto de datos con la API de Cloud Resource Manager o gcloud CLI, necesitas el permiso
bigquery.datasets.listTagBindingsde IAM. - Para enumerar las etiquetas eficaces para un conjunto de datos, necesitas el permiso de IAM
bigquery.datasets.listEffectiveTags.
Crea claves y valores de etiqueta
Puedes crear una etiqueta antes de adjuntarla a un recurso de BigQuery o puedes crear una etiqueta de forma manual cuando creas el recurso con laCloud de Confiance consola.
Para obtener información sobre cómo crear claves y valores de etiquetas, consulta Crea una etiqueta y Agrega valores de etiquetas en la documentación de Resource Manager.
Conjuntos de datos de etiquetas
En las siguientes secciones, se describe cómo adjuntar etiquetas a conjuntos de datos nuevos y existentes, enumerar las etiquetas adjuntas a un conjunto de datos y desconectar etiquetas de un conjunto de datos.
Adjunta etiquetas cuando crees una tabla nueva
Después de crear una etiqueta, puedes adjuntarla a un nuevo conjunto de datos de BigQuery. Solo puedes adjuntar un valor de etiqueta a un conjunto de datos para cualquier clave de etiqueta determinada. Puedes adjuntar un máximo de 50 etiquetas a un conjunto de datos.
Console
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar.

Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
En el panel Explorador, selecciona el proyecto en el que deseas crear tu conjunto de datos.
Haz clic en Ver acciones > Crear conjunto de datos.
Ingresa la información de tu nuevo conjunto de datos. Para obtener más información, consulta Crea conjuntos de datos.
Expande la sección Etiquetas.
Para aplicar una etiqueta existente, haz lo siguiente:
Haz clic en la flecha desplegable junto a Seleccionar permiso y elige Permiso actual: Seleccionar organización actual o Seleccionar proyecto actual.
Como alternativa, haz clic en Seleccionar alcance para buscar un recurso o ver una lista de los recursos actuales.
En Clave 1 y Valor 1, elige los valores adecuados de las listas.
Para ingresar manualmente una etiqueta nueva, haz lo siguiente:
Haz clic en la flecha desplegable junto a Selecciona un permiso y elige Ingresar IDs manualmente > Organización, Proyecto o Etiquetas.
Si creas una etiqueta para tu proyecto u organización, ingresa el
PROJECT_IDo elORGANIZATION_IDen el diálogo y, luego, haz clic en Guardar.En Clave 1 y Valor 1, elige los valores adecuados de las listas.
Opcional: Para agregar etiquetas adicionales a la tabla, haz clic en Agregar etiqueta y sigue los pasos anteriores.
Haz clic en Crear conjunto de datos.
SQL
Usa la sentencia CREATE SCHEMA.
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente oración:
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoDATASET_ID: Es el ID del conjunto de datos que crearás.TAG_KEY_1: Es el nombre de la clave con espacio de nombres que deseas establecer como la primera etiqueta en el conjunto de datos, por ejemplo,'my-project/env'o'556741164180/department'.TAG_VALUE_1: El nombre corto del valor de la etiqueta, por ejemplo,'prod'o'sales'.TAG_KEY_2: Es el nombre de la clave con espacio de nombres para la segunda etiqueta.TAG_VALUE_2: Es el nombre corto del valor de la segunda etiqueta.
Haz clic en Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Usa el comando bq mk --dataset con la marca --add_tags:
bq mk --dataset \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Reemplaza lo siguiente:
TAG: Es la etiqueta que estás adjuntando al conjunto de datos nuevo. Si hay varias etiquetas, estas están separadas por comas. Por ejemplo,556741164180/env:prod,myProject/department:sales. Cada etiqueta debe tener el nombre de clave con espacio de nombres y el nombre corto del valor.PROJECT_ID: el ID del proyecto en el que creas un conjunto de datos.DATASET_ID: Es el ID del conjunto de datos nuevo.
Terraform
Usa el
recurso google_bigquery_dataset.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
En el siguiente ejemplo, se crea un conjunto de datos llamado my_dataset y, luego, se le adjuntan
etiquetas; para ello, se completa el campo resource_tags:
Para aplicar tu configuración de Terraform en un proyecto de Cloud de Confiance , completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto Cloud de Confiance predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf, por ejemplo,main.tf. En este instructivo, el archivo se denominamain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tfrecién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgradepara usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yescuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto Cloud de Confiance para ver los resultados. En la consola de Cloud de Confiance , navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
API
Llama al método datasets.insert y agrega tus etiquetas al campo resource_tags.
Adjunta etiquetas a un conjunto de datos existente
Después de crear una etiqueta, puedes adjuntarla a un conjunto de datos existente. Solo puedes adjuntar un valor de etiqueta a un conjunto de datos para cualquier clave de etiqueta determinada.
Console
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, expande tu proyecto, haz clic en Conjuntos de datos y, luego, selecciona un conjunto de datos.
En la sección Información del conjunto de datos, haz clic en Editar detalles.
Expande la sección Etiquetas.
Para aplicar una etiqueta existente, haz lo siguiente:
Haz clic en la flecha desplegable junto a Seleccionar permiso y elige Permiso actual: Seleccionar organización actual o Seleccionar proyecto actual.
Como alternativa, haz clic en Seleccionar alcance para buscar un recurso o ver una lista de los recursos actuales.
En Clave 1 y Valor 1, elige los valores adecuados de las listas.
Para ingresar manualmente una etiqueta nueva, haz lo siguiente:
Haz clic en la flecha desplegable junto a Selecciona un permiso y elige Ingresar IDs manualmente > Organización, Proyecto o Etiquetas.
Si creas una etiqueta para tu proyecto u organización, ingresa el
PROJECT_IDo elORGANIZATION_IDen el diálogo y, luego, haz clic en Guardar.En Clave 1 y Valor 1, elige los valores adecuados de las listas.
Opcional: Para agregar etiquetas adicionales a la tabla, haz clic en Agregar etiqueta y sigue los pasos anteriores.
Haz clic en Guardar.
SQL
Usa la sentencia ALTER SCHEMA SET OPTIONS.
En el siguiente ejemplo, se reemplazan todas las etiquetas de un conjunto de datos existente.
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente oración:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoDATASET_ID: Es el ID del conjunto de datos que contiene la tabla.TABLE_ID: Es el nombre de la tabla que etiquetarás.TAG_KEY_1: El nombre de la clave con espacio de nombres que deseas establecer como la primera etiqueta en la tabla, por ejemplo,'my-project/env'o'556741164180/department'.TAG_VALUE_1: El nombre corto del valor de la etiqueta, por ejemplo,'prod'o'sales'.TAG_KEY_2: Es el nombre de la clave con espacio de nombres para la segunda etiqueta.TAG_VALUE_2: Es el nombre corto del valor de la segunda etiqueta.
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
En el siguiente ejemplo, se usa el operador += para adjuntar etiquetas a un conjunto de datos sin reemplazar las etiquetas existentes. Si una etiqueta existente tiene la misma clave, se reemplaza.
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente oración:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoDATASET_ID: Es el ID del conjunto de datos que contiene la tabla.TABLE_ID: Es el nombre de la tabla que etiquetarás.TAG_KEY_1: El nombre de la clave con espacio de nombres que deseas establecer como la primera etiqueta en la tabla, por ejemplo,'my-project/env'o'556741164180/department'.TAG_VALUE_1: El nombre corto del valor de la etiqueta, por ejemplo,'prod'o'sales'.TAG_KEY_2: Es el nombre de la clave con espacio de nombres para la segunda etiqueta.TAG_VALUE_2: Es el nombre corto del valor de la segunda etiqueta.
Haz clic en Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Usa el comando bq update con la marca --add_tags:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Reemplaza lo siguiente:
TAG: Es la etiqueta que adjuntas al conjunto de datos. Si hay varias etiquetas, estas están separadas por comas. Por ejemplo,556741164180/env:prod,myProject/department:sales. Cada etiqueta debe tener el nombre de clave con espacio de nombres y el nombre corto del valor.PROJECT_ID: El ID del proyecto en el que se encuentra el conjunto de datos existente.DATASET_ID: el ID del conjunto de datos existente.
gcloud
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 resource-manager tags bindings create:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
Reemplaza lo siguiente:
TAG_VALUE_NAME: El ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se adjuntará, comotagValues/4567890123o1234567/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: Es la ubicación de tu conjunto de datos.
Terraform
Agrega etiquetas al campo resource_tags del conjunto de datos y, luego, aplica la
configuración actualizada con el recurso google_bigquery_dataset. Para
obtener más información, consulta el ejemplo de Terraform en
Adjunta etiquetas cuando crees un conjunto de datos nuevo.
API
Llama al método datasets.get para obtener el recurso del conjunto de datos, incluido el campo resource_tags. Agrega las etiquetas al campo resource_tags y pasa el recurso del conjunto de datos actualizado mediante el método datasets.update.
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. Estos métodos no devuelven etiquetas heredadas de los recursos principales.
Console
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, expande tu proyecto, haz clic en Conjuntos de datos y, luego, selecciona un conjunto de datos.
Las etiquetas aparecen en la sección Información del conjunto de datos.
bq
Para enumerar las etiquetas adjuntas a un conjunto de datos, usa el comando bq show.
bq show PROJECT_ID:DATASET_ID
Reemplaza lo siguiente:
PROJECT_ID: El ID del proyecto que contiene este conjunto de datos.DATASET_ID: El ID del conjunto de datos cuyas etiquetas deseas enumerar.
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: 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 lo siguiente:
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
Puedes enumerar las etiquetas heredadas por los conjuntos de datos de BigQuery con gcloud resource-manager tags bindings list. También puedes usar la opción --filter en el atributo namespacedTagValue para filtrar etiquetas según el ID del proyecto, el valor de la etiqueta o la clave de la etiqueta.
gcloud resource-manager tags bindings list \
--parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID \
--effective \
--filter=namespacedTagValue:TAG_FILTER
Reemplaza lo siguiente :
PROJECT_ID: Es el ID del proyecto que contiene tu conjunto de datos.DATASET_ID: el ID del conjunto de datos.TAG_FILTER: Especifica un valor para filtrar las etiquetas heredadas según una de las siguientes opciones:Filtra las etiquetas por ID del proyecto. Por ejemplo,
myproject.Filtra los valores de la etiqueta especificando el ID permanente o el nombre con espacio de nombres del valor de la etiqueta. Por ejemplo,
tagValues/4567890123o1234567/my_tag_key/my_tag_value.Filtra las claves de etiquetas especificando el nombre visible de la clave de etiqueta. Por ejemplo:
tagkey.
Terraform
Usa el comando terraform state show para enumerar los atributos del
conjunto de datos, incluido el campo resource_tags. Ejecuta este comando
en el directorio en el que se ejecutó el archivo de configuración de Terraform del conjunto
de datos.
terraform state show google_bigquery_dataset.default
API
Llama al método datasets.get para obtener el recurso del conjunto de datos. El recurso de conjunto de datos incluye etiquetas adjuntas al conjunto de datos en el campo resource_tags.
Vistas
Usa la vista INFORMATION_SCHEMA.SCHEMATA_OPTIONS.
Por ejemplo, en la siguiente consulta, se muestran todas las etiquetas adjuntas a todos los conjuntos de datos de una región. Esta consulta muestra una tabla con columnas que incluyen schema_name (los nombres de los conjuntos de datos), option_name (siempre 'tags'), object_type (siempre ARRAY<STRUCT<STRING, STRING>>) y option_value, que contiene arreglos de objetos STRUCT que representan etiquetas asociadas con cada conjunto de datos. Para los conjuntos de datos sin etiquetas asignadas, la columna option_value muestra un array vacío.
SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name='tags'
Reemplaza lo siguiente:
REGION: la región en la que se encuentran los conjuntos de datos.
Desvincula etiquetas de un conjunto de datos
Para desconectar una etiqueta de un recurso, borra el recurso de vinculación de etiquetas. Si vas a borrar una etiqueta, primero debes desvincularla del conjunto de datos. Para obtener más información, consulta Cómo borrar etiquetas.
Console
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, expande tu proyecto, haz clic en Conjuntos de datos y, luego, selecciona un conjunto de datos.
En la sección Información del conjunto de datos, haz clic en Editar detalles.
En la sección Etiquetas, haz clic en Borrar elemento junto a la etiqueta que deseas borrar.
Haz clic en Guardar.
SQL
Usa la sentencia ALTER SCHEMA SET OPTIONS.
En el siguiente ejemplo, se separan etiquetas de un conjunto de datos con el operador -=. Para separar todas las etiquetas de un conjunto de datos, puedes especificar tags=NULL o tags=[].
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente oración:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoDATASET_ID: Es el ID del conjunto de datos que contiene la tabla.TABLE_ID: Es el nombre de la tabla de la que desvinculas las etiquetas.TAG_KEY_1: El nombre de clave con espacio de nombres de la primera etiqueta que deseas desconectar, por ejemplo,'my-project/env'o'556741164180/department'.TAG_VALUE_1: El nombre corto del valor de la etiqueta que deseas desconectar, por ejemplo,'prod'o'sales'.TAG_KEY_2: Es el nombre de la clave con espacio de nombres de la segunda etiqueta que desvinculas.TAG_VALUE_2: Es el nombre corto del valor de la segunda etiqueta que desvinculas.
Haz clic en Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Usa el comando bq update con la marca --remove_tags:
bq update \ --remove_tags=REMOVED_TAG \ PROJECT_ID:DATASET_ID
Reemplaza lo siguiente:
REMOVED_TAG: la etiqueta que quitas del conjunto de datos. Si hay varias etiquetas, estas están separadas por comas. Solo acepta claves sin pares de valores. Un ejemplo es556741164180/env,myProject/department. Cada clave de etiqueta debe tener el nombre de clave con espacio de nombres.PROJECT_ID: es el ID del proyecto que contiene tu conjunto de datos.DATASET_ID: el ID del conjunto de datos del que se desconectarán las etiquetas.
Como alternativa, si deseas quitar todas las etiquetas de un conjunto de datos, usa el comando bq update con la marca --clear_all_tags:
bq update \ --clear_all_tags PROJECT_ID:DATASET_ID
gcloud
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 resource-manager tags bindings delete:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
Reemplaza lo siguiente:
TAG_VALUE_NAME: El ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se desconectará, comotagValues/4567890123o1234567/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.
Terraform
Quita tus etiquetas del campo resource_tags del conjunto de datos y, luego, aplica
la configuración actualizada con el recurso google_bigquery_dataset.
API
Llama al método datasets.get para obtener el recurso del conjunto de datos, incluido el campo resource_tags. Quita tus etiquetas del campo resource_tags y pasa el recurso del conjunto de datos actualizado mediante el método datasets.update.
Etiqueta tablas
En las siguientes secciones, se describe cómo adjuntar etiquetas a tablas nuevas y existentes, enumerar las etiquetas adjuntas a una tabla y desacoplar etiquetas de una tabla.
Adjunta etiquetas cuando crees una tabla nueva
Después de crear una etiqueta, puedes adjuntarla a una tabla nueva. Solo puedes adjuntar un valor de etiqueta a una tabla para cualquier clave de etiqueta determinada. Puedes adjuntar un máximo de 50 etiquetas a una tabla.
Console
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, expande tu proyecto, haz clic en Conjuntos de datos y, luego, selecciona un conjunto de datos.
En la sección Información del conjunto de datos, haz clic en Crear tabla.
Ingresa la información de la nueva tabla. Para obtener más información, consulta Crea y usa tablas.
Expande la sección Etiquetas.
Para aplicar una etiqueta existente, haz lo siguiente:
Haz clic en la flecha desplegable junto a Seleccionar permiso y elige Permiso actual: Seleccionar organización actual o Seleccionar proyecto actual.
Como alternativa, haz clic en Seleccionar alcance para buscar un recurso o ver una lista de los recursos actuales.
En Clave 1 y Valor 1, elige los valores adecuados de las listas.
Para ingresar manualmente una etiqueta nueva, haz lo siguiente:
Haz clic en la flecha desplegable junto a Selecciona un permiso y elige Ingresar IDs manualmente > Organización, Proyecto o Etiquetas.
Si creas una etiqueta para tu proyecto u organización, ingresa el
PROJECT_IDo elORGANIZATION_IDen el diálogo y, luego, haz clic en Guardar.En Clave 1 y Valor 1, elige los valores adecuados de las listas.
Opcional: Para agregar etiquetas adicionales a la tabla, haz clic en Agregar etiqueta y sigue los pasos anteriores.
Haz clic en Crear tabla.
SQL
Usa la sentencia CREATE TABLE.
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente oración:
CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoDATASET_ID: Es el ID del conjunto de datos en el que crearás la tabla.TABLE_ID: Es el nombre de la tabla nueva.TAG_KEY_1: El nombre de la clave con espacio de nombres que deseas establecer como la primera etiqueta en la tabla, por ejemplo,'my-project/env'o'556741164180/department'.TAG_VALUE_1: El nombre corto del valor de la etiqueta, por ejemplo,'prod'o'sales'.TAG_KEY_2: Es el nombre de la clave con espacio de nombres para la segunda etiqueta.TAG_VALUE_2: Es el nombre corto del valor de la segunda etiqueta.
Haz clic en Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Usa el comando bq mk --table con la marca --add_tags:
bq mk --table \ --schema=SCHEMA \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
Reemplaza lo siguiente:
SCHEMA: es la definición de esquema intercalado.TAG: Es la etiqueta que estás adjuntando a la tabla nueva. Si hay varias etiquetas, estas están separadas por comas. Por ejemplo,556741164180/env:prod,myProject/department:sales. Cada etiqueta debe tener el nombre de clave con espacio de nombres y el nombre corto del valor.PROJECT_ID: el ID del proyecto en el que creas una tabla.DATASET_ID: el ID del conjunto de datos en el que creas una tabla.TABLE_ID: Es el ID de la tabla nueva.
Terraform
Usa el recurso google_bigquery_table.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
En el siguiente ejemplo, se crea una tabla llamada mytable y, luego, se le adjuntan
etiquetas; para ello, se completa el campo resource_tags:
Para aplicar tu configuración de Terraform en un proyecto de Cloud de Confiance , completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto Cloud de Confiance predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf, por ejemplo,main.tf. En este instructivo, el archivo se denominamain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tfrecién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgradepara usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yescuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto Cloud de Confiance para ver los resultados. En la consola de Cloud de Confiance , navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
API
Realiza una llamada al método tables.insert con un recurso de tabla definido. Incluye las etiquetas en el campo resource_tags.
Adjunta etiquetas a una tabla existente
Después de crear una etiqueta, puedes adjuntarla a una tabla existente. Solo puedes adjuntar un valor de etiqueta a una tabla para cualquier clave de etiqueta determinada.
Console
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, expande tu proyecto y, luego, haz clic en Conjuntos de datos.
Haz clic en Overview > Tables y, luego, selecciona una tabla.
Haz clic en la pestaña Detalles y, luego, en Editar detalles.
Expande la sección Etiquetas.
Para aplicar una etiqueta existente, haz lo siguiente:
Haz clic en la flecha desplegable junto a Seleccionar permiso y elige Permiso actual: Seleccionar organización actual o Seleccionar proyecto actual.
Como alternativa, haz clic en Seleccionar alcance para buscar un recurso o ver una lista de los recursos actuales.
En Clave 1 y Valor 1, elige los valores adecuados de las listas.
Para ingresar manualmente una etiqueta nueva, haz lo siguiente:
Haz clic en la flecha desplegable junto a Selecciona un permiso y elige Ingresar IDs manualmente > Organización, Proyecto o Etiquetas.
Si creas una etiqueta para tu proyecto u organización, ingresa el
PROJECT_IDo elORGANIZATION_IDen el diálogo y, luego, haz clic en Guardar.En Clave 1 y Valor 1, elige los valores adecuados de las listas.
Opcional: Para agregar etiquetas adicionales a la tabla, haz clic en Agregar etiqueta y sigue los pasos anteriores.
Haz clic en Guardar.
SQL
Usa la sentencia ALTER TABLE SET OPTIONS.
En el siguiente ejemplo, se reemplazan todas las etiquetas de una tabla existente.
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente oración:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoDATASET_ID: Es el ID del conjunto de datos que contiene la tabla.TABLE_ID: Es el nombre de la tabla que etiquetarás.TAG_KEY_1: El nombre de la clave con espacio de nombres que deseas establecer como la primera etiqueta en la tabla, por ejemplo,'my-project/env'o'556741164180/department'.TAG_VALUE_1: El nombre corto del valor de la etiqueta, por ejemplo,'prod'o'sales'.TAG_KEY_2: Es el nombre de la clave con espacio de nombres para la segunda etiqueta.TAG_VALUE_2: Es el nombre corto del valor de la segunda etiqueta.
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
En el siguiente ejemplo, se usa el operador += para adjuntar una etiqueta a una tabla sin reemplazar las etiquetas existentes. Si una etiqueta existente tiene la misma clave, se reemplaza.
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente oración:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoDATASET_ID: Es el ID del conjunto de datos que contiene la tabla.TABLE_ID: Es el nombre de la tabla que etiquetarás.TAG_KEY_1: El nombre de la clave con espacio de nombres que deseas establecer como la primera etiqueta en la tabla, por ejemplo,'my-project/env'o'556741164180/department'.TAG_VALUE_1: El nombre corto del valor de la etiqueta, por ejemplo,'prod'o'sales'.TAG_KEY_2: Es el nombre de la clave con espacio de nombres para la segunda etiqueta.TAG_VALUE_2: Es el nombre corto del valor de la segunda etiqueta.
Haz clic en Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Usa el comando bq update con la marca --add_tags:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID.TABLE_ID
Reemplaza lo siguiente:
TAG: Es la etiqueta que adjuntas a la tabla. Si hay varias etiquetas, estas están separadas por comas. Por ejemplo,556741164180/env:prod,myProject/department:sales. Cada etiqueta debe tener el nombre de clave con espacio de nombres y el nombre corto del valor.PROJECT_ID: el ID del proyecto que contiene tu tabla.DATASET_ID: el ID del conjunto de datos que contiene tu tabla.TABLE_ID: el ID de la tabla que deseas actualizar.
gcloud
Para adjuntar una etiqueta a una tabla mediante la línea de comandos, crea un recurso de vinculación de etiquetas con el comando gcloud resource-manager tags bindings create:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
Reemplaza lo siguiente:
TAG_VALUE_NAME: El ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se adjuntará, comotagValues/4567890123o1234567/my_tag_key/my_tag_value.RESOURCE_ID: el ID completo de la tabla, 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/tables/my_tableLOCATION: La ubicación de tu tabla.
Terraform
Agrega etiquetas al campo resource_tags de la tabla y, luego, aplica la
configuración actualizada con el recurso google_bigquery_table. Para
obtener más información, consulta el ejemplo de Terraform en
Adjunta etiquetas cuando crees una tabla nueva.
API
Realiza una llamada al método tables.update con un recurso de tabla definido. Incluye las etiquetas en el campo resource_tags.
Enumera las etiquetas adjuntas a una tabla
Puedes enumerar las etiquetas que se adjuntan directamente a una tabla. Este proceso no enumera las etiquetas heredadas de los recursos superiores.
Console
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, expande tu proyecto y, luego, haz clic en Conjuntos de datos.
Haz clic en Overview > Tables y, luego, selecciona una tabla.
Las etiquetas se pueden ver en la pestaña Detalles.
bq
Usa el comando bq show y busca la columna tags. Si no hay etiquetas en la tabla, no se muestra la columna tags.
bq show \ PROJECT_ID:DATASET_ID.TABLE_ID
Reemplaza lo siguiente:
PROJECT_ID: el ID del proyecto que contiene tu tabla.DATASET_ID: el ID del conjunto de datos que contiene tu tabla.TABLE_ID: el ID de tu tabla.
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: el ID completo de la tabla, 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/tables/my_table.LOCATION: La ubicación de tu conjunto de datos.
El resultado es similar a lo siguiente:
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
Puedes enumerar las etiquetas heredadas por las tablas de BigQuery con gcloud resource-manager tags bindings list. También puedes usar la opción --filter en el atributo namespacedTagValue para filtrar etiquetas según el ID del proyecto, el valor de la etiqueta o la clave de la etiqueta.
gcloud resource-manager tags bindings list \
--parent=//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID \
--effective \
--filter=namespacedTagValue:TAG_FILTER
Reemplaza lo siguiente :
PROJECT_ID: Es el ID del proyecto que contiene tu conjunto de datos.DATASET_ID: el ID del conjunto de datos.TAG_FILTER: Especifica un valor para filtrar las etiquetas heredadas según una de las siguientes opciones:Filtra las etiquetas por ID del proyecto. Por ejemplo,
myproject.Filtra los valores de la etiqueta especificando el ID permanente o el nombre con espacio de nombres del valor de la etiqueta. Por ejemplo,
tagValues/4567890123o1234567/my_tag_key/my_tag_value.Filtra las claves de etiquetas especificando el nombre visible de la clave de etiqueta. Por ejemplo:
tagkey.
Terraform
Usa el comando terraform state show para enumerar los atributos de la
tabla, incluido el campo resource_tags. Ejecuta este comando
en el directorio en el que se ejecutó el archivo de configuración de Terraform de
la tabla.
terraform state show google_bigquery_table.default
API
Realiza una llamada al método tables.get con un recurso de tabla definido y busca el campo resource_tags.
Vistas
Usa la vista INFORMATION_SCHEMA.TABLE_OPTIONS.
Por ejemplo, en la siguiente consulta, se muestran todas las etiquetas adjuntas a todas las tablas en un conjunto de datos. Esta consulta muestra una tabla con columnas que incluyen schema_name (el nombre del conjunto de datos), option_name (siempre 'tags'), object_type (siempre ARRAY<STRUCT<STRING, STRING>>) y option_value, que contiene arreglos de objetos STRUCT que representan etiquetas asociadas con cada conjunto de datos. Para las tablas sin etiquetas asignadas, la columna option_value muestra un array vacío.
SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name='tags'
Reemplaza DATASET_ID por el ID del conjunto de datos que contiene tu tabla.
Desconecta etiquetas de una tabla
Para quitar una asociación de etiqueta de una tabla, borra la vinculación de etiqueta. Si borras una etiqueta, primero debes desvincularla de la tabla. Para obtener más información, consulta Cómo borrar etiquetas.
Console
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, expande tu proyecto y, luego, haz clic en Conjuntos de datos.
Haz clic en Overview > Tables y, luego, selecciona una tabla.
Haz clic en la pestaña Detalles y, luego, en Editar detalles.
En la sección Etiquetas, haz clic en Borrar elemento junto a la etiqueta que deseas borrar.
Haz clic en Guardar.
SQL
Usa la sentencia ALTER TABLE SET OPTIONS.
En el siguiente ejemplo, se separan etiquetas de una tabla con el operador -=. Para separar todas las etiquetas de una tabla, puedes especificar tags=NULL o tags=[].
En la consola de Cloud de Confiance , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente oración:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Reemplaza lo siguiente:
PROJECT_ID: el ID de tu proyectoDATASET_ID: Es el ID del conjunto de datos que contiene la tabla.TABLE_ID: Es el nombre de la tabla de la que desvinculas las etiquetas.TAG_KEY_1: El nombre de clave con espacio de nombres de la primera etiqueta que deseas desconectar, por ejemplo,'my-project/env'o'556741164180/department'.TAG_VALUE_1: El nombre corto del valor de la etiqueta que deseas desconectar, por ejemplo,'prod'o'sales'.TAG_KEY_2: Es el nombre de la clave con espacio de nombres de la segunda etiqueta que desvinculas.TAG_VALUE_2: Es el nombre corto del valor de la segunda etiqueta que desvinculas.
Haz clic en Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Para quitar algunas etiquetas de una tabla, usa el comando bq update con la marca --remove_tags:
bq update \ --remove_tags=TAG_KEYS \ PROJECT_ID:DATASET_ID.TABLE_ID
Reemplaza lo siguiente:
TAG_KEYS: las claves de etiqueta que desconectas de la tabla, separadas por comas. Por ejemplo,556741164180/env,myProject/department. Cada clave de etiqueta debe tener el nombre de clave con espacio de nombres.PROJECT_ID: el ID del proyecto que contiene tu tabla.DATASET_ID: el ID del conjunto de datos que contiene tu tabla.TABLE_ID: el ID de la tabla que deseas actualizar.
Para quitar todas las etiquetas de una tabla, usa el comando bq update con la marca --clear_all_tags:
bq update \ --clear_all_tags \ PROJECT_ID:DATASET_ID.TABLE_ID
gcloud
Para quitar una asociación de etiqueta de una tabla mediante la línea de comandos, borra la vinculación de etiqueta con el comando gcloud resource-manager tags bindings delete:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION
Reemplaza lo siguiente:
TAG_VALUE_NAME: El ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se eliminará, comotagValues/4567890123o1234567/my_tag_key/my_tag_value.RESOURCE_ID: el ID completo de la tabla, 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/tables/my_table.LOCATION: La ubicación de tu conjunto de datos.
Terraform
Quita tus etiquetas del campo resource_tags de la tabla y, luego, aplica
la configuración actualizada con el recurso google_bigquery_table.
API
Realiza una llamada al método tables.update con un recurso de tabla definido y quita las etiquetas en el campo resource_tags. Para quitar todas las etiquetas, quita el campo resource_tags.
Etiqueta otros recursos similares a tablas
De manera similar, puedes etiquetar vistas, vistas materializadas, copias y copias instantáneas de BigQuery.
Columnas de etiquetas
Puedes etiquetar las columnas de la tabla con etiquetas de administración de datos para el control de acceso a nivel de columna y el enmascaramiento de datos.
Borrar etiquetas
No puedes borrar una etiqueta si una tabla, una vista o un conjunto de datos hace referencia a ella. Debes desconectar 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 todos miembros del grupo analysts@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.
Crea una etiqueta con la clave
employee_typey el valorintern:
En la consola de Cloud de Confiance , dirígete a la página IAM.
Ubica la fila que contiene el pasante cuyo acceso al conjunto de datos deseas restringir y haz clic en Editar principal en esa fila.
En el menú Rol, selecciona Visualizador de datos de BigQuery.
Haz clic en Agregar condición:
En los campos Título y Descripción, ingresa los valores que describen la condición de etiqueta de IAM que deseas crear.
En la pestaña Creador de condiciones, haz clic en Agregar.
En el menú Tipo de condición, selecciona Recurso y, luego, Etiqueta.
En el menú Operador, selecciona tiene el valor.
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.
Esta condición de etiqueta de IAM restringe el acceso del pasante a los conjuntos de datos que tienen la etiqueta
intern.Para guardar la condición de etiqueta, haz clic en Guardar.
Para guardar los cambios que realizaste en el panel Editar permisos, haz clic en Guardar.
Para adjuntar el valor de etiqueta
internal conjunto de datosanonymousData, usa la línea de comandos para ejecutar el comandogcloud resource-manager tags bindings create. Por ejemplo:gcloud resource-manager tags bindings create \ --tag-value=tagValues/4567890123 \ --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \ --location=US
Controla el acceso a las columnas con etiquetas de administración de datos
Puedes aplicar la seguridad a nivel de la columna y el enmascaramiento de datos en BigQuery con etiquetas de administración de datos. Las etiquetas de administración de datos son un tipo de etiqueta de Resource Manager que puedes adjuntar a columnas sensibles y usar en las políticas de datos de BigQuery para otorgar acceso condicional a tus usuarios.
Configura la seguridad a nivel de la columna creando etiquetas de administración de datos y adjuntándolas a las columnas de BigQuery. Luego, crea políticas de datos de BigQuery que hagan referencia a estas etiquetas. Estas políticas aplican reglas de enmascaramiento de datos o otorgan acceso a datos sin procesar a usuarios específicos, lo que garantiza que solo las entidades principales autorizadas vean los datos sensibles.
Para obtener más información, consulta Introducción al control de acceso a nivel de columna y Introducción al enmascaramiento de datos.
Antes de comenzar a usar las etiquetas de administración
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init - Para crear y administrar etiquetas de administración de datos, debes usar la edición Enterprise de BigQuery.
Roles obligatorios para las etiquetas de administración de datos
Para obtener los permisos que necesitas para controlar el acceso a las columnas con etiquetas de administración de datos, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Crea etiquetas de administración de datos:
- Administrador de etiquetas (
roles/resourcemanager.tagAdmin) en el proyecto o la organización - Visualizador de la organización (
roles/resourcemanager.organizationViewer) en la organización
- Administrador de etiquetas (
-
Adjunta o quita etiquetas de las columnas:
- Propietario de datos de BigQuery (
roles/bigquery.dataOwner) en la tabla - Usuario de etiquetas (
roles/resourcemanager.tagUser) en la organización, el proyecto o el valor de la etiqueta
- Propietario de datos de BigQuery (
-
Crear y administrar políticas de datos: Administrador de BigQuery (
roles/bigquerydatapolicy.admin) en el proyecto
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.
Crea etiquetas de administración de datos
Crea la clave de la etiqueta de administración de datos y sus valores.
Crea una clave de etiqueta
Para crear una clave para una etiqueta de administración de datos, configura el campo purpose en DATA_GOVERNANCE cuando crees la clave de etiqueta. Establecer este propósito categoriza la etiqueta para la seguridad a nivel de la columna o el enmascaramiento de datos, y la distingue de las etiquetas de recursos generales en BigQuery.
gcloud
Ejecuta el comando
gcloud resource-manager tags keys create:gcloud resource-manager tags keys create TAG_KEY \ --parent=projects/PROJECT_ID \ --purpose=DATA_GOVERNANCEReemplaza lo siguiente:
TAG_KEY: Es el nombre corto de la clave de etiqueta.PROJECT_ID: Es el ID de tu proyecto de Cloud de Confiance by S3NS. Para proporcionar una organización en lugar de un proyecto, usaorganizations/ORGANIZATION_IDen lugar deprojects/PROJECT_ID.
API
Envía una solicitud
POSTal extremotagKeys:curl --request POST \ "https://cloudresourcemanager.googleapis.com/v3/tagKeys" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{"shortName":"TAG_KEY","parent":"projects/PROJECT_ID","purpose":"DATA_GOVERNANCE"}' \ --compressedReemplaza lo siguiente:
TAG_KEY: Es el nombre corto de la clave de etiqueta.PROJECT_ID: Es el ID de tu proyecto de Cloud de Confiance by S3NS. Para proporcionar una organización en lugar de un proyecto, usaorganizations/ORGANIZATION_IDen lugar deprojects/PROJECT_ID.
Cómo crear un valor de etiqueta
Para agregar uno o más valores a una clave de etiqueta, sigue estos pasos.
gcloud
Ejecuta el comando
gcloud resource-manager tags keys listpara obtener el nombre con espacio de nombres de la clave de etiqueta:gcloud resource-manager tags keys list --parent=projects/PROJECT_IDEjecuta el comando
gcloud resource-manager tags values createpara crear un valor nuevo:gcloud resource-manager tags values create TAG_VALUE \ --parent=PROJECT_ID/TAG_KEYReemplaza lo siguiente:
TAG_VALUE: Es el nombre corto especificado por el usuario del valor de la etiqueta.PROJECT_ID: Es el ID de tu proyecto de Cloud de Confiance by S3NS. Para proporcionar una organización en lugar de un proyecto, usa tuORGANIZATION_ID.
API
Obtén el nombre con espacio de nombres para la clave de etiqueta:
curl --request GET \ "https://cloudresourcemanager.googleapis.com/v3/tagKeys/namespaced?name=PROJECT_ID/TAG_KEY" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json'La respuesta contiene el campo
name, por ejemplo,tagKeys/4567890123.Envía una solicitud
POSTal extremotagValuescon el nombre de la clave de la etiqueta:curl --request POST \ "https://cloudresourcemanager.googleapis.com/v3/tagValues" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{"shortName":"TAG_VALUE","parent":"tagKeys/TAG_KEY_ID"}' \ --compressedReemplaza lo siguiente:
TAG_VALUE: Es el nombre corto especificado por el usuario del valor de la etiqueta.PROJECT_ID: Es el ID de tu proyecto de Cloud de Confiance by S3NS. Para proporcionar una organización en lugar de un proyecto, usa tuORGANIZATION_ID.TAG_KEY_ID: Es el nombre con espacio de nombres de la clave de la etiqueta del paso 1. Por ejemplo, si el nombre de la clave de la etiqueta estagKeys/4567890123, el ID de la clave de la etiqueta es4567890123.
Crea valores de etiquetas jerárquicos
De manera opcional, puedes crear un valor de etiqueta secundario que esté asociado a un valor de etiqueta principal y crear un árbol jerárquico de valores de etiqueta de administración de datos. La jerarquía puede tener 5 niveles de profundidad, como se muestra en el siguiente diagrama:
gcloud
Para crear un valor de etiqueta secundario, ejecuta el comando gcloud resource-manager tags values create y especifica un valor de etiqueta principal en la marca --parent:
gcloud resource-manager tags values create CHILD_TAG_VALUE \
--parent=PROJECT_ID/TAG_KEY/PARENT_TAG_VALUE
Reemplaza lo siguiente:
CHILD_TAG_VALUE: Es el nombre corto del valor de la etiqueta secundaria que creas.PROJECT_ID: Es el ID de tu proyecto de Cloud de Confiance by S3NS . Para proporcionar una organización en lugar de un proyecto, usa tuORGANIZATION_ID.TAG_KEY: Es el nombre corto de la clave de etiqueta que es principal del valor de la etiqueta.PARENT_TAG_VALUE: Es el nombre corto del valor de la etiqueta principal.
API
Para crear un valor de etiqueta secundaria, usa el nombre del recurso del valor de etiqueta principal (por ejemplo, tagValues/123456789012) en el campo parent:
curl --request POST \
"https://cloudresourcemanager.googleapis.com/v3/tagValues" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"shortName":"CHILD_TAG_VALUE","parent":"tagValues/PARENT_TAG_VALUE_ID"}' \
--compressed
Reemplaza lo siguiente:
CHILD_TAG_VALUE: Es el nombre corto del valor de la etiqueta secundaria que creas.PARENT_TAG_VALUE_ID: Es el ID numérico del valor de la etiqueta principal.
Adjunta etiquetas de administración de datos a las columnas de BigQuery
Adjunta las etiquetas de administración de datos que creaste a las columnas de BigQuery que deseas proteger.
SQL
Crea una tabla nueva con una columna etiquetada
Para adjuntar etiquetas de administración de datos cuando crees una tabla nueva, usa la declaración CREATE TABLE. Para especificar la etiqueta, configura la opción data_governance_tags en la columna.
CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID (
COLUMN_NAME INT64 OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")])
);
Reemplaza lo siguiente:
PROJECT_ID: Es el ID de tu proyecto de Cloud de Confiance by S3NS . Para proporcionar una organización en lugar de un proyecto como elemento superior de tu etiqueta, usa tuORGANIZATION_IDen lugar del formato de clave de etiqueta (ORGANIZATION_ID/TAG_KEY).DATASET_ID: Es el ID del conjunto de datos en el que reside la tabla.TABLE_ID: Es el ID de la tabla que estás creando.COLUMN_NAME: Es el nombre de la columna que deseas etiquetar.TAG_KEY: Es la clave de la etiqueta que deseas aplicar.TAG_VALUE: Es el valor de la etiqueta que deseas aplicar.
Agrega una etiqueta a una tabla existente
Para adjuntar etiquetas de administración de datos a una columna en una tabla existente, usa la declaración ALTER TABLE para establecer la opción data_governance_tags en la columna.
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
ALTER COLUMN COLUMN_NAME SET OPTIONS (data_governance_tags=[("PROJECT_ID/TAG_KEY", "TAG_VALUE")]);
CLI de bq
Crea una tabla nueva con una columna etiquetada
Para crear un archivo de esquema JSON local que defina la etiqueta, ejecuta el comando
bq mk:bq mk \ --table \ --project_id=PROJECT_ID \ --description="description of my table" \ --schema=SCHEMA_FILE.json \ DATASET_ID.TABLE_IDReemplaza lo siguiente:
PROJECT_ID: Es el ID de tu proyecto de Cloud de Confiance by S3NS. Para proporcionar una organización en lugar de un proyecto como elemento superior de tu etiqueta, usa tuORGANIZATION_IDen lugar del formato de clave de etiqueta (ORGANIZATION_ID/TAG_KEY).DATASET_ID: Es el ID del conjunto de datos en el que reside la tabla.TABLE_ID: Es el ID de la tabla que estás creando.
Agrega una etiqueta a una tabla existente
Para agregar una etiqueta a una tabla existente, primero exporta su esquema a un archivo local:
bq show \ --project_id=PROJECT_ID \ --schema \ --format=prettyjson \ DATASET_ID.TABLE_ID > SCHEMA_FILE.jsonEdita el archivo de esquema para agregar el objeto
dataGovernanceTagsInfoa la columna. Por ejemplo:[ { "description": "my sensitive column", "mode": "NULLABLE", "name": "Column_X", "type": "INT64", "dataGovernanceTagsInfo": { "dataGovernanceTags": { "PROJECT_ID/TAG_KEY": "TAG_VALUE" } } }, { "mode": "REQUIRED", "name": "column2", "type": "FLOAT" } ]Actualiza la tabla para adjuntar etiquetas a la columna sensible con el comando
bq update:bq update \ --project_id=PROJECT_ID \ --schema=SCHEMA_FILE.json \ DATASET_ID.TABLE_IDTambién puedes usar el comando
bq updatepara quitar etiquetas existentes y adjuntar etiquetas nuevas.
API
Crea una tabla nueva con una columna etiquetada
Usa el método tables.insert. Incluye el campo dataGovernanceTagsInfo en el cuerpo de la solicitud.
```json
{
"schema": {
"fields": [
{
"name": "Column_X",
"type": "INT64",
"description": "sensitive column",
"dataGovernanceTagsInfo": {
"dataGovernanceTags": {
"PROJECT_ID/TAG_KEY": "TAG_VALUE"
}
}
}
]
}
}
```
Agrega una etiqueta a una tabla existente
Recupera el recurso de tabla actual con el método
tables.get.Modifica el recurso de la tabla para incluir el campo
dataGovernanceTagsInfode la columna de destino.Llama al método
tables.updateotables.patchcon el recurso de tabla actualizado.
Crea y administra políticas de datos
Crea y administra políticas de datos de BigQuery que hagan referencia a etiquetas de administración de datos para aplicar reglas de enmascaramiento o políticas de acceso a los datos sin procesar.
Después de crear una política de datos para una columna etiquetada, solo los usuarios especificados en esa política podrán acceder a la columna, siempre que también tengan acceso a la tabla. A todos los demás usuarios se les deniega el acceso.
Crea políticas de datos
API
Crea una política de datos que use una regla de enmascaramiento SHA256 predefinida o crea una política de acceso a los datos sin procesar.
Crea una política de datos con una regla de enmascaramiento SHA256 predefinida
Para crear una política de datos con una regla de enmascaramiento SHA256 predefinida, envía una solicitud POST al extremo dataPolicies:
curl --request POST \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"dataPolicy":{"dataPolicyType":"DATA_MASKING_POLICY","dataMaskingPolicy":{"predefinedExpression":"SHA256"},"grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
--compressed
Reemplaza lo siguiente:
PROJECT_ID: Es el ID de tu proyecto de Cloud de Confiance by S3NS. Para proporcionar una organización en lugar de un proyecto como elemento superior de tu etiqueta, usa tuORGANIZATION_IDen lugar del formatodataGovernanceTag.key(ORGANIZATION_ID/TAG_KEY).LOCATION: Es la región en la que crearás la política de datos. Para obtener más información, consulta las ubicaciones de las políticas de datos.EMAIL_ADDRESS: Es la dirección de correo electrónico del usuario al que se le otorgará acceso.TAG_KEY: Es el nombre corto de la clave de etiqueta.TAG_VALUE: Es un nombre corto especificado por el usuario para el valor de la etiqueta.POLICY_ID: Es el ID de la política de datos.
Crea una política de acceso a los datos sin procesar
Para crear una política de acceso a los datos sin procesar, establece dataPolicyType en RAW_DATA_ACCESS_POLICY:
curl --request POST \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"dataPolicy":{"dataPolicyType":"RAW_DATA_ACCESS_POLICY","grantees": ["principal://goog/subject/EMAIL_ADDRESS"],"dataGovernanceTag":{"key":"PROJECT_ID/TAG_KEY","value":"TAG_VALUE"}},"dataPolicyId":"POLICY_ID"}' \
--compressed
Actualiza las políticas de datos
Actualiza una política de datos existente para otorgar acceso a usuarios adicionales.
API
Para agregar usuarios actualizando directamente una política, primero obtén la política actual y su
etag:curl --request GET \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --compressedEnvía una solicitud
PATCHcon la lista actualizada de beneficiarios y eletagdel paso anterior:curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"], "etag": "ETAG" }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID?updateMask=grantees"Reemplaza
ETAGpor el valoretagque devolvió la solicitudGETen el paso anterior.También puedes usar el método
addGranteespara agregar usuarios a una política:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"] }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:addGrantees"Para quitar usuarios de una política, usa el método
removeGrantees:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "grantees": ["principal://goog/subject/user1@example.com","principal://iam.googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS"] }' \ "https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID:removeGrantees"
Borra las políticas de datos
API
Para borrar una política de datos, envía una solicitud DELETE al extremo dataPolicies:
curl --request DELETE \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies/POLICY_ID" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed
Enumera las políticas de datos
API
Para enumerar las políticas de datos que hacen referencia a una clave de etiqueta, envía una solicitud GET al extremo dataPolicies con un parámetro filter:
curl --request GET \
"https://bigquerydatapolicy.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dataPolicies?filter=dataGovernanceTag:PROJECT_ID/TAG_KEY" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--compressed
Interacciones con otras funciones
En esta sección, se describe cómo interactúan las etiquetas de administración de datos con otras funciones de BigQuery.
| Función | Interacción |
|---|---|
| Esquema de información | Las etiquetas de administración de datos adjuntas a las columnas se incluyen en las vistas
INFORMATION_SCHEMA.COLUMNS
y INFORMATION_SCHEMA.COLUMN_FIELD_PATHS. |
| Copia de tabla | Las copias de tablas entre regiones están inhabilitadas para las tablas que tienen funciones de seguridad a nivel de la columna, incluidas las tablas con etiquetas de administración de datos. |
| Viaje en el tiempo | El acceso a los datos históricos de la tabla se rige por las políticas de acceso y las etiquetas adjuntas a la tabla. |
Configura un proyecto de política de datos predeterminado
Cuando accedes a columnas protegidas por etiquetas de administración de datos, BigQuery evalúa de forma predeterminada solo las políticas de datos del proyecto en el que se encuentra la tabla. Las políticas de datos definidas en otros proyectos no se aplican, a menos que un administrador configure un proyecto de política de datos predeterminado a nivel de la organización.
Si se configuró un proyecto de política de datos predeterminado para tu organización, BigQuery evalúa las políticas de datos del proyecto de la tabla y las del proyecto de política de datos predeterminado cuando determina el acceso a las columnas.
Si un usuario está sujeto a políticas de datos en conflicto tanto en el proyecto de la tabla como en el proyecto de la política de datos predeterminada, prevalecerán las políticas de datos del proyecto de la tabla.
Para establecer o ver la opción default_data_policy_projects a nivel de la organización con DDL o vistas de default_data_policy_projects, consulta Configuración de administración de datos en la documentación de configuración predeterminada.INFORMATION_SCHEMA
Limitaciones de las etiquetas de administración de datos
- Las tablas de BigQuery Omni no admiten etiquetas de administración de datos en las columnas.
- Puedes usar la consola de Cloud de Confiance by S3NS para ver las etiquetas de administración de datos en las columnas, pero no para vincularlas o desvincularlas.
- Puedes vincular una etiqueta por columna y hasta 1,000 etiquetas únicas por tabla.
- Si consultas una columna etiquetada con la API de BigQuery Storage Read, las llamadas a
tabledata.listo las tablas comodín, recibirás un error de acceso denegado, a menos que una política de datos te otorgue acceso. - En el caso de los campos
STRUCT, solo puedes aplicar etiquetas de administración de datos a los campos de hoja. - Puedes borrar los valores de las etiquetas que se adjuntan a las columnas. Si borras un valor de etiqueta, la vinculación de etiqueta persistirá en la columna, pero, como el valor de etiqueta ya no existe, es posible que se pierda el acceso a la columna.
Soluciona problemas relacionados con las etiquetas de administración de datos
En esta sección, se describe cómo solucionar problemas comunes cuando se controla el acceso a columnas con etiquetas de administración de datos.
Nombres de etiquetas con formato incorrecto
Cuando creas etiquetas, defines un nombre corto (por ejemplo, ssn). Sin embargo, cuando adjuntas etiquetas a las columnas de tu esquema o las usas en condiciones, la clave de la etiqueta debe usar el formato con espacio de nombres (PROJECT_ID/TAG_KEY o ORGANIZATION_ID/TAG_KEY), mientras que el valor de la etiqueta sigue usando el nombre corto. Si solo se proporciona el nombre corto de la clave de la etiqueta, se produce un error Invalid tagKey o Invalid
tagValue.
Aplicación de políticas entre proyectos
De forma predeterminada, solo se evalúan las políticas de datos del proyecto de la tabla. Las políticas de otros proyectos no se aplican, a menos que se configure un proyecto de política de datos predeterminado a nivel de la organización. Para obtener más información sobre cómo configurar y evaluar políticas entre proyectos, consulta Configura un proyecto de política de datos predeterminado.
¿Qué sigue?
- Para obtener una descripción general de las etiquetas en Cloud de Confiance by S3NS, consulta Descripción general de las etiquetas.
- Para obtener más información sobre cómo usar etiquetas, consulta Crea y administra etiquetas.
- Obtén más información para aplicar políticas en las columnas.
- Para obtener información sobre cómo controlar el acceso a los recursos de BigQuery con condiciones de IAM, consulta Controla el acceso con Condiciones de IAM.