Etiqueta tablas, vistas y conjuntos de datos
En este documento, se describe cómo usar etiquetas para aplicar de forma condicional las políticas de Identity and Access Management (IAM) a las tablas, las vistas y los conjuntos de datos de BigQuery.
También puedes usar etiquetas para denegar el acceso de forma condicional con las políticas de IAM a las tablas, las vistas y los conjuntos de datos de BigQuery (Versión preliminar). Para obtener más información, consulta Políticas de denegación.
Una etiqueta es un par clave-valor que puedes adjuntar directamente a una tabla, una vista o un conjunto de datos, o un par clave-valor que una tabla, una vista o un conjunto de datos puede heredar de otros recursos deGoogle Cloud . Puedes aplicar políticas de forma condicional en función de si un recurso tiene una etiqueta específica. Por ejemplo, puedes otorgar de forma condicional el rol de visualizador de datos de BigQuery a una principal en cualquier conjunto de datos con la etiqueta environment:dev
.
Para obtener más información sobre el uso de etiquetas en la jerarquía de recursos de Google Cloud, consulta la Descripción general de las etiquetas.
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 conjunto 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 Google Cloud . 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.
Por ejemplo, Data Catalog no puede verificar las condiciones de la etiqueta de IAM en los conjuntos de datos y las tablas de BigQuery. Supongamos que hay una política de IAM condicional que le otorga a un pasante el rol de visualizador de datos de BigQuery en los conjuntos de datos con la etiqueta
employee_type=intern
. Dado que esta es una condición de etiqueta positiva, el pasante no puede ver los conjuntos de datos mediante la búsqueda en Data Catalog, incluso si esos conjuntos de datos tienen la etiquetaemployee_type=intern
. Si la condición se cambia a una negativa, de modo que el pasante solo pueda ver los conjuntos de datos que no tienen la etiquetaemployee_type=intern
, entonces la verificación se omitiría por completo y el pasante podría ver los conjuntos de datos a los que normalmente no podría acceder en BigQuery.
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 y consola) y Terraform | API de Cloud Resource Manager o gcloud |
---|---|---|
Adjunta una etiqueta a una tabla o vista |
|
|
Quita una etiqueta de una tabla o vista |
|
|
Adjunta una etiqueta a un conjunto de datos |
|
|
Quita una etiqueta de un conjunto de datos |
|
|
Para enumerar las claves y los valores de las etiquetas en la Google Cloud consola, necesitas los siguientes permisos:
Para enumerar las claves de etiqueta que están asociadas con una organización o 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 etiqueta en BigQuery Console, haz clic en el nombre del conjunto de datos y, luego, en Editar detalles, o haz clic en el nombre de la tabla o 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 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 la etiqueta. Para ver la lista de valores de clave de etiqueta 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 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.listTagBindings
de IAM. - Para generar una lista de las etiquetas efectivas de una tabla o vista, necesitas el permiso
bigquery.tables.listEffectiveTags
de 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.listTagBindings
de 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 crearla manualmente cuando crees el recurso con la consola deGoogle Cloud .
Para obtener información sobre cómo crear claves y valores de etiqueta, consulta Crea una etiqueta y Agrega valores de etiqueta 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 Google Cloud , ve a la página BigQuery.
En el panel Explorador, selecciona el proyecto en el que deseas crear tu conjunto de datos.
Haz clic en > Crear conjunto de datos.
Ver accionesIngresa la información de tu nuevo conjunto de datos. Para obtener más detalles, 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 alcance y elige Alcance actual: Seleccionar la organización actual o Seleccionar el 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 una etiqueta nueva de forma manual, haz lo siguiente:
Haz clic en la flecha desplegable junto a Seleccionar un alcance y elige Ingresar IDs de forma manual > Organización, Proyecto o Etiquetas.
Si creas una etiqueta para tu proyecto o organización, en el diálogo, ingresa
PROJECT_ID
oORGANIZATION_ID
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 Google Cloud , 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
: El nombre de 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 clave con espacio de nombres de 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 Google Cloud , completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto Google Cloud 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.tf
recié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
-upgrade
para 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
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu Google Cloud proyecto para ver los resultados. En la consola de Google Cloud , 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 Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y elige 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 alcance y elige Alcance actual: Seleccionar la organización actual o Seleccionar el 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 una etiqueta nueva de forma manual, haz lo siguiente:
Haz clic en la flecha desplegable junto a Seleccionar un alcance y elige Ingresar IDs de forma manual > Organización, Proyecto o Etiquetas.
Si creas una etiqueta para tu proyecto o organización, en el diálogo, ingresa
PROJECT_ID
oORGANIZATION_ID
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 Google Cloud , 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 deseas etiquetar.TAG_KEY_1
: Es el nombre de clave con espacio de nombres que deseas establecer 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
: Es el nombre de clave con espacio de nombres de 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 reemplazará.
En la consola de Google Cloud , 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 deseas etiquetar.TAG_KEY_1
: Es el nombre de clave con espacio de nombres que deseas establecer 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
: Es el nombre de clave con espacio de nombres de 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/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
: 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 muestran etiquetas heredadas de los recursos superiores.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y elige 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 este:
name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123 parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset tagValue: tagValues/4567890123
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, debes desvincularla del conjunto de datos antes de borrarla. Para obtener más información, consulta Cómo borrar etiquetas.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y elige 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 desvincular todas las etiquetas de un conjunto de datos, puedes especificar tags=NULL
o tags=[]
.
En la consola de Google Cloud , 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 deseas desvincular 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 clave con espacio de nombres de la segunda etiqueta que deseas separar.TAG_VALUE_2
: Es el nombre corto del valor de la segunda etiqueta que deseas quitar.
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/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
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 Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y elige 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 alcance y elige Alcance actual: Seleccionar la organización actual o Seleccionar el 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 una etiqueta nueva de forma manual, haz lo siguiente:
Haz clic en la flecha desplegable junto a Seleccionar un alcance y elige Ingresar IDs de forma manual > Organización, Proyecto o Etiquetas.
Si creas una etiqueta para tu proyecto o organización, en el diálogo, ingresa
PROJECT_ID
oORGANIZATION_ID
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 Google Cloud , 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
: Es el nombre de clave con espacio de nombres que deseas establecer 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
: Es el nombre de clave con espacio de nombres de 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 Google Cloud , completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto Google Cloud 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.tf
recié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
-upgrade
para 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
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu Google Cloud proyecto para ver los resultados. En la consola de Google Cloud , 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 Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande el proyecto y el conjunto de datos 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 alcance y elige Alcance actual: Seleccionar la organización actual o Seleccionar el 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 una etiqueta nueva de forma manual, haz lo siguiente:
Haz clic en la flecha desplegable junto a Seleccionar un alcance y elige Ingresar IDs de forma manual > Organización, Proyecto o Etiquetas.
Si creas una etiqueta para tu proyecto o organización, en el diálogo, ingresa
PROJECT_ID
oORGANIZATION_ID
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 Google Cloud , 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 deseas etiquetar.TAG_KEY_1
: Es el nombre de clave con espacio de nombres que deseas establecer 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
: Es el nombre de clave con espacio de nombres de 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 reemplazará.
En la consola de Google Cloud , 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 deseas etiquetar.TAG_KEY_1
: Es el nombre de clave con espacio de nombres que deseas establecer 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
: Es el nombre de clave con espacio de nombres de 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/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 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 Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande el proyecto y el conjunto de datos 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 este:
name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123 parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset tagValue: tagValues/4567890123
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 quieres borrar una etiqueta, debes desvincularla de la tabla antes de borrarla. Para obtener más información, consulta Cómo borrar etiquetas.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande el proyecto y el conjunto de datos 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 desvincular todas las etiquetas de una tabla, puedes especificar tags=NULL
o tags=[]
.
En la consola de Google Cloud , 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 deseas desvincular 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 clave con espacio de nombres de la segunda etiqueta que deseas separar.TAG_VALUE_2
: Es el nombre corto del valor de la segunda etiqueta que deseas quitar.
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/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
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, clones y instantáneas de BigQuery.
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_type
y el valorintern
:En la consola de Google Cloud , ve 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
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
¿Qué sigue?
- 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 etiquetas, consulta Crea y administra etiquetas.
- 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.