Etiquetar tablas, vistas y conjuntos de datos
En este documento se describe cómo usar etiquetas para aplicar de forma condicional políticas de gestión de identidades y accesos (IAM) a tablas, vistas y conjuntos de datos de BigQuery.
También puedes usar etiquetas para denegar el acceso de forma condicional con políticas de gestión de identidades y accesos a tablas, vistas y conjuntos de datos de BigQuery (versión preliminar). Para obtener más información, consulta las políticas de denegación.
Una etiqueta es un par clave-valor que puedes asociar directamente a una tabla, una vista o un conjunto de datos, o bien un par clave-valor que una tabla, una vista o un conjunto de datos pueden heredar de otrosGoogle Cloud recursos. Puedes aplicar políticas de forma condicional en función de si un recurso tiene una etiqueta específica. Por ejemplo, puedes conceder de forma condicional el rol Lector de datos de BigQuery a una entidad de 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, consulta el artículo Descripción general de las etiquetas. Google Cloud
Para conceder permisos a muchos recursos de BigQuery relacionados al mismo tiempo, incluidos los recursos que aún no existen, puedes usar condiciones de gestión de identidades y accesos.
Limitaciones
Las etiquetas de tabla no se admiten en las tablas de BigQuery Omni, las tablas de conjuntos de datos ocultos ni las tablas temporales. Las etiquetas de conjuntos de datos no se admiten en conjuntos de datos de BigQuery Omni. Además, las consultas entre regiones de BigQuery Omni no usan etiquetas durante las comprobaciones de control de acceso de las tablas de otras regiones.
Puede adjuntar un máximo de 50 etiquetas a una tabla o a un conjunto de datos.
Todas las tablas a las que se hace referencia en una consulta con comodín deben tener exactamente el mismo conjunto de claves y valores de etiquetas.
Los usuarios con acceso condicional a un conjunto de datos o a una tabla no pueden modificar los permisos de ese recurso a través de la consola de Google Cloud . Las modificaciones de permisos solo se admiten a través de la herramienta bq y la API de BigQuery.
Algunos servicios ajenos a BigQuery no pueden verificar correctamente las condiciones de las etiquetas de gestión de identidades y accesos. Si la condición de la etiqueta es positiva, lo que significa que a un usuario se le asigna un rol en un recurso solo si ese recurso tiene una etiqueta concreta, se le deniega el acceso al recurso independientemente de las etiquetas que tenga. Si la condición de la etiqueta es negativa, es decir, si a un usuario se le concede un rol en un recurso solo si ese recurso no tiene una etiqueta concreta, no se comprueba la condición de la etiqueta.
Por ejemplo, Data Catalog no puede verificar las condiciones de las etiquetas de gestión de identidades y accesos en conjuntos de datos y tablas de BigQuery. Supongamos que hay una política de gestión de identidades y accesos condicional que otorga a un becario el rol Lector de datos de BigQuery en conjuntos de datos con la etiqueta
employee_type=intern
. Como se trata de una condición de etiqueta positiva, el becario no puede ver los conjuntos de datos buscando en Data Catalog, aunque esos conjuntos de datos tengan la etiquetaemployee_type=intern
. Si la condición de la etiqueta se cambiara a una negativa, de forma que el becario solo pudiera ver los conjuntos de datos que no tuvieran la etiquetaemployee_type=intern
, la comprobación se omitiría por completo y el becario podría ver los conjuntos de datos a los que normalmente no podría acceder en BigQuery.
Roles obligatorios
Debe asignar roles de gestión de identidades y accesos que den a los usuarios los permisos necesarios para realizar cada tarea de este documento.
Los dos roles de gestión de identidades y accesos predefinidos siguientes incluyen todos los permisos de BigQuery necesarios:
- Propietario de datos de BigQuery (
roles/bigquery.dataOwner
) - Administrador de BigQuery (
roles/bigquery.admin
)
Los permisos de Resource Manager para añadir y quitar etiquetas se incluyen en el rol Usuario de etiquetas (roles/resourcemanager.tagUser
).
Permisos obligatorios
Para usar etiquetas en BigQuery, necesitas los siguientes permisos:
Operación | Interfaces de BigQuery (API, CLI y consola) y Terraform | API de Cloud Resource Manager o gcloud |
---|---|---|
Asociar una etiqueta a una tabla o una vista |
|
|
Quitar una etiqueta de una tabla o una vista |
|
|
Asociar una etiqueta a un conjunto de datos |
|
|
Quitar una etiqueta de un conjunto de datos |
|
|
Para enumerar las claves y los valores de las etiquetas en la consola Google Cloud , necesitas los siguientes permisos:
Para enumerar las claves de etiquetas asociadas a una organización o un proyecto superior, necesitas el permiso
resourcemanager.tagKeys.list
en el nivel superior de la clave de etiqueta y el permisoresourcemanager.tagKeys.get
para cada clave de etiqueta. Para ver la lista de claves de etiquetas en la consola de BigQuery, haga clic en el nombre del conjunto de datos y, a continuación, en Editar detalles. También puede hacer clic en el nombre de la tabla o de la vista y, a continuación, en Detalles > Editar detalles.Para mostrar los valores de las etiquetas de las claves asociadas a una organización o un proyecto de nivel superior, necesitas el permiso
resourcemanager.tagValues.list
en el nivel superior del valor de la etiqueta y el permisoresourcemanager.tagValues.get
para cada valor de etiqueta. Para ver la lista de valores de clave de etiqueta en la consola de BigQuery, haga clic en el nombre del conjunto de datos y, a continuación, en Editar detalles. También puede hacer clic en el nombre de la tabla o de la vista y, a continuación, en Detalles > Editar detalles.
Para usar etiquetas en la API Cloud Resource Manager o en gcloud, necesitas los siguientes permisos:
- Para enumerar las etiquetas asociadas a una tabla o una vista con la API Cloud Resource Manager o la CLI de gcloud, necesitas el permiso
bigquery.tables.listTagBindings
de gestión de identidades y accesos. - Para ver las etiquetas efectivas de una tabla o una vista, necesitas el permiso de gestión de identidades y accesos
bigquery.tables.listEffectiveTags
. - Para enumerar las etiquetas asociadas a un conjunto de datos con la API Cloud Resource Manager o la CLI de gcloud, necesitas el permiso de gestión de identidades y accesos
bigquery.datasets.listTagBindings
. - Para ver la lista de etiquetas activas de un conjunto de datos, necesitas el permiso de gestión de identidades y accesos
bigquery.datasets.listEffectiveTags
.
Crear claves y valores de etiquetas
Puede crear una etiqueta antes de asociarla a un recurso de BigQuery o crearla manualmente al crear el recurso mediante laGoogle Cloud consola.
Para obtener información sobre cómo crear claves y valores de etiquetas, consulta los artículos Crear una etiqueta y Añadir valores de etiquetas de la documentación de Resource Manager.
Etiquetar conjuntos de datos
En las siguientes secciones se describe cómo adjuntar etiquetas a conjuntos de datos nuevos y ya creados, cómo enumerar las etiquetas adjuntas a un conjunto de datos y cómo desvincular etiquetas de un conjunto de datos.
Asignar etiquetas al crear un conjunto de datos
Una vez que hayas creado una etiqueta, podrás asociarla a un nuevo conjunto de datos de BigQuery. Solo puede asociar un valor de etiqueta a un conjunto de datos para una clave de etiqueta determinada. Puede adjuntar un máximo de 50 etiquetas a un conjunto de datos.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, selecciona el proyecto en el que quieras crear el conjunto de datos.
Haz clic en > Crear conjunto de datos.
Ver accionesIntroduce la información del nuevo conjunto de datos. Para obtener más información, consulta Crear conjuntos de datos.
Despliega la sección Etiquetas.
Para aplicar una etiqueta ya creada, sigue estos pasos:
Haz clic en la flecha desplegable situada junto a Seleccionar ámbito y elige una de las siguientes opciones: Ámbito actual: Seleccionar organización actual o Seleccionar proyecto actual.
También puede hacer clic en Seleccionar ámbito para buscar un recurso o ver una lista de los recursos actuales.
En Clave 1 y Valor 1, elija los valores adecuados de las listas.
Para introducir manualmente una etiqueta nueva, sigue estos pasos:
Haz clic en la flecha desplegable situada junto a Seleccionar un ámbito y elige Introducir IDs manualmente > Organización, Proyecto o Etiquetas.
Si vas a crear una etiqueta para tu proyecto u organización, introduce el
PROJECT_ID
o elORGANIZATION_ID
en el cuadro de diálogo y, a continuación, haz clic en Guardar.En Clave 1 y Valor 1, elija los valores adecuados de las listas.
Opcional: Para añadir más etiquetas a la tabla, haz clic en Añadir etiqueta y sigue los pasos anteriores.
Haz clic en Crear conjunto de datos.
SQL
Usa la instrucción CREATE SCHEMA
.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE SCHEMA PROJECT_ID.DATASET_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.DATASET_ID
: el ID del conjunto de datos que vas a crear.TAG_KEY_1
: el nombre de clave con espacio de nombres que quieras definir como la primera etiqueta del 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
: el nombre de la clave con espacio de nombres de la segunda etiqueta.TAG_VALUE_2
: el nombre abreviado del valor de la segunda etiqueta.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar 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
Haz los cambios siguientes:
TAG
: la etiqueta que vas a asignar al nuevo conjunto de datos. Las etiquetas se separan con 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 vas a crear un conjunto de datos.DATASET_ID
: el ID del nuevo conjunto de datos.
Terraform
Usa el recurso google_bigquery_dataset
.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se crea un conjunto de datos llamado my_dataset
y, a continuación, se le asignan etiquetas rellenando el campo resource_tags
:
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar 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 en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
API
Llama al método datasets.insert
y añade tus etiquetas al campo resource_tags
.
Asociar etiquetas a un conjunto de datos
Una vez que hayas creado una etiqueta, podrás asociarla a un conjunto de datos. Solo puedes asociar un valor de etiqueta a un conjunto de datos por cada clave de etiqueta.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
En la sección Información del conjunto de datos, haz clic en
Editar detalles.Despliega la sección Etiquetas.
Para aplicar una etiqueta ya creada, sigue estos pasos:
Haz clic en la flecha desplegable situada junto a Seleccionar ámbito y elige una de las siguientes opciones: Ámbito actual: Seleccionar organización actual o Seleccionar proyecto actual.
También puede hacer clic en Seleccionar ámbito para buscar un recurso o ver una lista de los recursos actuales.
En Clave 1 y Valor 1, elija los valores adecuados de las listas.
Para introducir manualmente una etiqueta nueva, sigue estos pasos:
Haz clic en la flecha desplegable situada junto a Seleccionar un ámbito y elige Introducir IDs manualmente > Organización, Proyecto o Etiquetas.
Si vas a crear una etiqueta para tu proyecto u organización, introduce el
PROJECT_ID
o elORGANIZATION_ID
en el cuadro de diálogo y, a continuación, haz clic en Guardar.En Clave 1 y Valor 1, elija los valores adecuados de las listas.
Opcional: Para añadir más etiquetas a la tabla, haz clic en Añadir etiqueta y sigue los pasos anteriores.
Haz clic en Guardar.
SQL
Usa la instrucción ALTER SCHEMA SET OPTIONS
.
En el siguiente ejemplo se sobrescriben todas las etiquetas de un conjunto de datos.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.DATASET_ID
: el ID del conjunto de datos que contiene la tabla.TABLE_ID
: el nombre de la tabla que vas a etiquetar.TAG_KEY_1
: el nombre de clave con espacio de nombres que quieras definir como la primera etiqueta de 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
: el nombre de la clave con espacio de nombres de la segunda etiqueta.TAG_VALUE_2
: el nombre abreviado del valor de la segunda etiqueta.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
En el siguiente ejemplo se usa el operador +=
para adjuntar etiquetas a un conjunto de datos sin sobrescribir las etiquetas que ya tenga. Si una etiqueta ya tiene esa clave, se sobrescribirá.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER SCHEMA PROJECT_ID.DATASET_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.DATASET_ID
: el ID del conjunto de datos que contiene la tabla.TABLE_ID
: el nombre de la tabla que vas a etiquetar.TAG_KEY_1
: el nombre de clave con espacio de nombres que quieras definir como la primera etiqueta de 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
: el nombre de la clave con espacio de nombres de la segunda etiqueta.TAG_VALUE_2
: el nombre abreviado del valor de la segunda etiqueta.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Usa el comando bq update
con la marca --add_tags
:
bq update \ --add_tags=TAG \ PROJECT_ID:DATASET_ID
Haz los cambios siguientes:
TAG
: la etiqueta que vas a asociar al conjunto de datos. Las etiquetas se separan con 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.DATASET_ID
: el ID del conjunto de datos.
gcloud
Para asociar 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
Haz los cambios siguientes:
TAG_VALUE_NAME
: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se va a adjuntar, comotagValues/4567890123
o1234567/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
Añade etiquetas al campo resource_tags
del conjunto de datos y, a continuación, aplica la configuración actualizada mediante el recurso google_bigquery_dataset
. Para obtener más información, consulta el ejemplo de Terraform en Asociar etiquetas al crear un conjunto de datos.
API
Llama al método datasets.get
para obtener el recurso del conjunto de datos, incluido el campo resource_tags
. Añade tus etiquetas al campo resource_tags
y envía el recurso de conjunto de datos actualizado mediante el método datasets.update
.
Mostrar las etiquetas asociadas a un conjunto de datos
En los pasos siguientes se muestra una lista de enlaces de etiquetas asociados directamente a un conjunto de datos. Estos métodos no devuelven etiquetas que se hayan heredado de recursos superiores.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
Las etiquetas aparecen en la sección Información del conjunto de datos.
bq
Para ver una lista de las etiquetas asociadas a un conjunto de datos, usa el comando bq show
.
bq show PROJECT_ID:DATASET_ID
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto que contiene tu conjunto de datos.DATASET_ID
: el ID del conjunto de datos del que quieres obtener la lista de etiquetas.
gcloud
Para obtener una lista de las vinculaciones de etiquetas asociadas a un recurso, usa el comando gcloud resource-manager tags bindings list
:
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID \ --location=LOCATION
Haz los cambios siguientes:
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 debería ser similar al 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
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 haya ejecutado 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 las etiquetas vinculadas al conjunto de datos en el campo resource_tags
.
Vistas
Usa la vista INFORMATION_SCHEMA.SCHEMATA_OPTIONS
.
Por ejemplo, la siguiente consulta muestra todas las etiquetas asociadas a todos los conjuntos de datos de una región. Esta consulta devuelve 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 matrices de objetos STRUCT
que representan las etiquetas asociadas a cada conjunto de datos. En el caso de los conjuntos de datos sin etiquetas asignadas, la columna option_value
devuelve un array vacío.
SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS WHERE option_name='tags'
Haz los cambios siguientes:
REGION
: la región en la que se encuentran tus conjuntos de datos.
Desasociar etiquetas de un conjunto de datos
Para separar una etiqueta de un recurso, elimina el recurso de vinculación de etiquetas. Si vas a eliminar una etiqueta, debes desvincularla del conjunto de datos antes de eliminarla. Para obtener más información, consulta Eliminar etiquetas.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y 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
Eliminar elemento junto a la etiqueta que quieras eliminar.Haz clic en Guardar.
SQL
Usa la instrucción ALTER SCHEMA SET OPTIONS
.
En el siguiente ejemplo se desvinculan etiquetas de un conjunto de datos mediante el operador -=
. Para
desvincular todas las etiquetas de un conjunto de datos, puedes especificar tags=NULL
o tags=[]
.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.DATASET_ID
: el ID del conjunto de datos que contiene la tabla.TABLE_ID
: el nombre de la tabla de la que vas a desvincular las etiquetas.TAG_KEY_1
: el nombre de clave con espacio de nombres de la primera etiqueta que quieras separar. Por ejemplo,'my-project/env'
o'556741164180/department'
.TAG_VALUE_1
: el nombre corto del valor de la etiqueta que quieres desvincular. Por ejemplo,'prod'
o'sales'
.TAG_KEY_2
: el nombre de la clave con espacio de nombres de la segunda etiqueta que vas a separar.TAG_VALUE_2
: el nombre abreviado del valor de la segunda etiqueta que vas a desvincular.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Usa el comando bq update
con la marca --remove_tags
:
bq update \ --remove_tags=REMOVED_TAG \ PROJECT_ID:DATASET_ID
Haz los cambios siguientes:
REMOVED_TAG
: la etiqueta que quiere quitar del conjunto de datos. Las etiquetas se separan con comas. Solo acepta claves sin pares de valores. Por ejemplo,556741164180/env,myProject/department
. Cada etiqueta debe tener el nombre de clave con espacio de nombres.PROJECT_ID
: el ID del proyecto que contiene tu conjunto de datos.DATASET_ID
: el ID del conjunto de datos del que se van a separar las etiquetas.
También puedes usar el comando bq update
con la marca --clear_all_tags
para quitar todas las etiquetas de un conjunto de datos:
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, elimina 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
Haz los cambios siguientes:
TAG_VALUE_NAME
: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se va a separar, comotagValues/4567890123
o1234567/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
Quite las etiquetas del campo resource_tags
del conjunto de datos y, a continuación, aplique la configuración actualizada mediante 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
. Elimina tus etiquetas del campo resource_tags
y vuelve a enviar el recurso de conjunto de datos actualizado con el método datasets.update
.
Etiquetar tablas
En las siguientes secciones se describe cómo adjuntar etiquetas a tablas nuevas y ya creadas, cómo enumerar las etiquetas adjuntas a una tabla y cómo separar etiquetas de una tabla.
Adjuntar etiquetas al crear una tabla
Una vez que hayas creado una etiqueta, podrás asociarla a una tabla nueva. Solo puede asociar un valor de etiqueta a una tabla para una clave de etiqueta determinada. Puedes adjuntar un máximo de 50 etiquetas a una tabla.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, despliega tu proyecto y selecciona un conjunto de datos.
En la sección Información del conjunto de datos, haga clic en
Crear tabla.Introduce la información de la nueva tabla. Para obtener más información, consulta el artículo Crear y usar tablas.
Despliega la sección Etiquetas.
Para aplicar una etiqueta ya creada, sigue estos pasos:
Haz clic en la flecha desplegable situada junto a Seleccionar ámbito y elige una de las siguientes opciones: Ámbito actual: Seleccionar organización actual o Seleccionar proyecto actual.
También puede hacer clic en Seleccionar ámbito para buscar un recurso o ver una lista de los recursos actuales.
En Clave 1 y Valor 1, elija los valores adecuados de las listas.
Para introducir manualmente una etiqueta nueva, sigue estos pasos:
Haz clic en la flecha desplegable situada junto a Seleccionar un ámbito y elige Introducir IDs manualmente > Organización, Proyecto o Etiquetas.
Si vas a crear una etiqueta para tu proyecto u organización, introduce el
PROJECT_ID
o elORGANIZATION_ID
en el cuadro de diálogo y, a continuación, haz clic en Guardar.En Clave 1 y Valor 1, elija los valores adecuados de las listas.
Opcional: Para añadir más etiquetas a la tabla, haz clic en Añadir etiqueta y sigue los pasos anteriores.
Haz clic en Crear tabla.
SQL
Usa la instrucción CREATE TABLE
.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.DATASET_ID
: el ID del conjunto de datos en el que vas a crear la tabla.TABLE_ID
: el nombre de la nueva tabla.TAG_KEY_1
: el nombre de clave con espacio de nombres que quieras definir como la primera etiqueta de 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
: el nombre de la clave con espacio de nombres de la segunda etiqueta.TAG_VALUE_2
: el nombre abreviado del valor de la segunda etiqueta.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar 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
Haz los cambios siguientes:
SCHEMA
: la definición de esquema insertada.TAG
: la etiqueta que vas a adjuntar a la nueva tabla. Las etiquetas se separan con 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 vas a crear una tabla.DATASET_ID
: el ID del conjunto de datos en el que vas a crear una tabla.TABLE_ID
: 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. Para obtener más información, consulta Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se crea una tabla llamada mytable
y, a continuación, se le asignan etiquetas rellenando el campo resource_tags
:
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar 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 en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
API
Llama al
método tables.insert
con un recurso de tabla definido.
Incluya las etiquetas en el campo resource_tags
.
Asignar etiquetas a una tabla ya creada
Una vez que hayas creado una etiqueta, puedes adjuntarla a una tabla. Solo puede asociar un valor de etiqueta a una tabla para una clave de etiqueta determinada.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y tu conjunto de datos y, a continuación, selecciona una tabla.
Haga clic en la pestaña Detalles y, a continuación, en
Editar detalles.Despliega la sección Etiquetas.
Para aplicar una etiqueta ya creada, sigue estos pasos:
Haz clic en la flecha desplegable situada junto a Seleccionar ámbito y elige una de las siguientes opciones: Ámbito actual: Seleccionar organización actual o Seleccionar proyecto actual.
También puede hacer clic en Seleccionar ámbito para buscar un recurso o ver una lista de los recursos actuales.
En Clave 1 y Valor 1, elija los valores adecuados de las listas.
Para introducir manualmente una etiqueta nueva, sigue estos pasos:
Haz clic en la flecha desplegable situada junto a Seleccionar un ámbito y elige Introducir IDs manualmente > Organización, Proyecto o Etiquetas.
Si vas a crear una etiqueta para tu proyecto u organización, introduce el
PROJECT_ID
o elORGANIZATION_ID
en el cuadro de diálogo y, a continuación, haz clic en Guardar.En Clave 1 y Valor 1, elija los valores adecuados de las listas.
Opcional: Para añadir más etiquetas a la tabla, haz clic en Añadir etiqueta y sigue los pasos anteriores.
Haz clic en Guardar.
SQL
Usa la instrucción ALTER TABLE SET OPTIONS
.
En el siguiente ejemplo se sobrescriben todas las etiquetas de una tabla.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.DATASET_ID
: el ID del conjunto de datos que contiene la tabla.TABLE_ID
: el nombre de la tabla que vas a etiquetar.TAG_KEY_1
: el nombre de clave con espacio de nombres que quieras definir como la primera etiqueta de 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
: el nombre de la clave con espacio de nombres de la segunda etiqueta.TAG_VALUE_2
: el nombre abreviado del valor de la segunda etiqueta.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
En el siguiente ejemplo se usa el operador +=
para adjuntar una etiqueta a una tabla sin sobrescribir las etiquetas que ya tenga. Si una etiqueta ya tiene esa clave, se sobrescribirá.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.DATASET_ID
: el ID del conjunto de datos que contiene la tabla.TABLE_ID
: el nombre de la tabla que vas a etiquetar.TAG_KEY_1
: el nombre de clave con espacio de nombres que quieras definir como la primera etiqueta de 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
: el nombre de la clave con espacio de nombres de la segunda etiqueta.TAG_VALUE_2
: el nombre abreviado del valor de la segunda etiqueta.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar 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
Haz los cambios siguientes:
TAG
: la etiqueta que vas a adjuntar a la tabla. Las etiquetas se separan con 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 la tabla.DATASET_ID
: el ID del conjunto de datos que contiene tu tabla.TABLE_ID
: el ID de la tabla que vas a actualizar.
gcloud
Para asociar una etiqueta a una tabla mediante la línea de comandos, crea un recurso de enlace de etiqueta 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
Haz los cambios siguientes:
TAG_VALUE_NAME
: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se va a adjuntar, comotagValues/4567890123
o1234567/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 la tabla.
Terraform
Añade etiquetas al campo resource_tags
de la tabla y, a continuación, aplica la configuración actualizada con el recurso google_bigquery_table
. Para obtener más información, consulta el ejemplo de Terraform en Asignar etiquetas al crear una tabla.
API
Llama al
método tables.update
con un recurso de tabla definido.
Incluya las etiquetas en el campo resource_tags
.
Mostrar las etiquetas asociadas a una tabla
Puedes enumerar las etiquetas que están asociadas directamente a una tabla. En este proceso no se muestran las etiquetas que se heredan de los recursos superiores.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y tu conjunto de datos y, a continuación, selecciona una tabla.
Las etiquetas se muestran 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto que contiene la 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 las vinculaciones de etiquetas asociadas a un recurso, usa el comando gcloud resource-manager tags bindings list
:
gcloud resource-manager tags bindings list \ --parent=RESOURCE_ID \ --location=LOCATION
Haz los cambios siguientes:
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 debería ser similar al 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
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 haya ejecutado el archivo de configuración de Terraform de la tabla.
terraform state show google_bigquery_table.default
API
Llama 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, la siguiente consulta muestra todas las etiquetas asociadas a todas las tablas de un conjunto de datos. Esta consulta devuelve 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 matrices de objetos STRUCT
que representan las etiquetas asociadas a cada conjunto de datos. En las tablas sin etiquetas asignadas, la columna option_value
devuelve un array vacío.
SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name='tags'
Sustituye DATASET_ID
por el ID del conjunto de datos
que contiene tu tabla.
Desasociar etiquetas de una tabla
Para quitar una asociación de etiquetas de una tabla, elimina la vinculación de etiquetas. Si vas a eliminar una etiqueta, debes desvincularla de la tabla antes de eliminarla. Para obtener más información, consulta Eliminar etiquetas.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y tu conjunto de datos y, a continuación, selecciona una tabla.
Haga clic en la pestaña Detalles y, a continuación, en
Editar detalles.En la sección Etiquetas, haz clic en
Eliminar elemento junto a la etiqueta que quieras eliminar.Haz clic en Guardar.
SQL
Usa la instrucción ALTER TABLE SET OPTIONS
.
En el siguiente ejemplo se desvinculan etiquetas de una tabla mediante el operador -=
. Para desvincular todas las etiquetas de una tabla, puede especificar tags=NULL
o tags=[]
.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID SET OPTIONS ( tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.DATASET_ID
: el ID del conjunto de datos que contiene la tabla.TABLE_ID
: el nombre de la tabla de la que vas a desvincular las etiquetas.TAG_KEY_1
: el nombre de clave con espacio de nombres de la primera etiqueta que quieras separar. Por ejemplo,'my-project/env'
o'556741164180/department'
.TAG_VALUE_1
: el nombre corto del valor de la etiqueta que quieres desvincular. Por ejemplo,'prod'
o'sales'
.TAG_KEY_2
: el nombre de la clave con espacio de nombres de la segunda etiqueta que vas a separar.TAG_VALUE_2
: el nombre abreviado del valor de la segunda etiqueta que vas a desvincular.
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar 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
Haz los cambios siguientes:
TAG_KEYS
: las claves de etiqueta que vas a separar 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 la tabla.DATASET_ID
: el ID del conjunto de datos que contiene tu tabla.TABLE_ID
: el ID de la tabla que vas a 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 la asociación de una etiqueta de una tabla mediante la línea de comandos, elimina el enlace 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
Haz los cambios siguientes:
TAG_VALUE_NAME
: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se va a eliminar, comotagValues/4567890123
o1234567/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
Elimina las etiquetas del campo resource_tags
de la tabla y, a continuación, aplica la configuración actualizada con el recurso google_bigquery_table
.
API
Llama al
método tables.update
con un recurso de tabla definido
y quita las etiquetas del campo resource_tags
. Para quitar todas las etiquetas, elimina el campo resource_tags
.
Etiquetar otros recursos similares a tablas
Del mismo modo, puedes etiquetar vistas, vistas materializadas, clones y copias de BigQuery.
Eliminar etiquetas
No puedes eliminar una etiqueta si una tabla, una vista o un conjunto de datos hace referencia a ella. Debe separar todos los recursos de vinculación de etiquetas antes de eliminar la clave o el valor de la etiqueta. Para eliminar claves y valores de etiquetas, consulta la sección Eliminar etiquetas.
Ejemplo
Supongamos que eres administrador de una organización. Todos tus analistas de datos son miembros del grupo analysts@example.com, que tiene el rol de gestión de identidades y accesos Lector de datos de BigQuery en el proyecto userData
. Se contrata a un becario analista de datos y, según la política de la empresa, solo debería tener permiso para ver el conjunto de datos anonymousData
del proyecto userData
.
Puedes controlar su acceso mediante etiquetas.
Crea una etiqueta con la clave
employee_type
y el valorintern
:En la consola, ve a la página Gestión de identidades y accesos. Google Cloud
Busque la fila que contiene al interno cuyo acceso al conjunto de datos quiera restringir y haga clic en
Editar principal en esa fila.En el menú Rol, selecciona Lector de datos de BigQuery.
Haz clic en Añadir condición.
En los campos Título y Descripción, introduce valores que describan la condición de la etiqueta de gestión de identidades y accesos que quieras crear.
En la pestaña Creador de condiciones, haz clic en Añadir.
En el menú Tipo de condición, selecciona Recurso y, a continuación, Etiqueta.
En el menú Operador, selecciona tiene valor.
En el campo Ruta del valor, introduce la ruta del valor de la etiqueta con el formato
ORGANIZATION/TAG_KEY/TAG_VALUE
. Por ejemplo,example.org/employee_type/intern
.Esta condición de etiqueta de gestión de identidades y accesos restringe el acceso del becario a los conjuntos de datos que tienen la etiqueta
intern
.Para guardar la condición de la etiqueta, haga clic en Guardar.
Para guardar los cambios que hayas hecho en el panel Editar permisos, haz clic en Guardar.
Para asociar el valor de la etiqueta
intern
al 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
Siguientes pasos
- Para obtener una descripción general de las etiquetas en Google Cloud, consulta Descripción general de las etiquetas.
- Para obtener más información sobre cómo usar las etiquetas, consulta el artículo Crear y gestionar etiquetas.
- Para obtener información sobre cómo controlar el acceso a los recursos de BigQuery con las condiciones de gestión de identidades y accesos, consulta el artículo Controlar el acceso con las condiciones de gestión de identidades y accesos.