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:

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
  • Permiso bigquery.tables.createTagBinding en la tabla o vista
  • Permiso resourcemanager.tagValueBindings.create en el valor de la etiqueta
  • Permiso bigquery.tables.create para adjuntar una etiqueta cuando se crea una tabla o vista
  • Permiso bigquery.tables.update para adjuntar una etiqueta cuando se actualiza una tabla o vista
  • Permiso bigquery.tables.createTagBinding en la tabla o vista
  • Permiso resourcemanager.tagValueBindings.create en el valor de la etiqueta
Cómo quitar una etiqueta de una tabla o vista
  • Permiso bigquery.tables.deleteTagBinding en la tabla o vista
  • Permiso resourcemanager.tagValueBindings.delete en el valor de la etiqueta
  • Permiso bigquery.tables.update para quitar una etiqueta cuando se actualiza una tabla o vista
  • Permiso bigquery.tables.deleteTagBinding en la tabla o vista
  • Permiso resourcemanager.tagValueBindings.delete en el valor de la etiqueta
Adjunta una etiqueta a un conjunto de datos
  • Permiso bigquery.datasets.createTagBinding en el conjunto de datos
  • Permiso resourcemanager.tagValueBindings.create en el valor de la etiqueta
  • Permiso bigquery.datasets.create para adjuntar una etiqueta cuando se crea un conjunto de datos
  • Permiso bigquery.datasets.update para adjuntar una etiqueta cuando se actualiza un conjunto de datos
  • Permiso bigquery.datasets.createTagBinding en el conjunto de datos
  • Permiso resourcemanager.tagValueBindings.create en el valor de la etiqueta
Cómo quitar una etiqueta de un conjunto de datos
  • Permiso bigquery.datasets.deleteTagBinding en el conjunto de datos
  • Permiso resourcemanager.tagValueBindings.delete en el valor de la etiqueta
  • Permiso bigquery.datasets.update para quitar una etiqueta cuando se actualiza un conjunto de datos
  • Permiso bigquery.datasets.deleteTagBinding en el conjunto de datos
  • Permiso resourcemanager.tagValueBindings.delete en el valor de la etiqueta

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.list en el nivel superior de la clave de etiqueta y el permiso resourcemanager.tagKeys.get para 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.list en el nivel superior del valor de la etiqueta y el permiso resourcemanager.tagValues.get para 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.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 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

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

    Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.

  3. En el panel Explorador, selecciona el proyecto en el que deseas crear tu conjunto de datos.

  4. Haz clic en Ver acciones > Crear conjunto de datos.

  5. Ingresa la información de tu nuevo conjunto de datos. Para obtener más información, consulta Crea conjuntos de datos.

  6. Expande la sección Etiquetas.

    1. Para aplicar una etiqueta existente, haz lo siguiente:

      1. 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.

      2. En Clave 1 y Valor 1, elige los valores adecuados de las listas.

    2. Para ingresar manualmente una etiqueta nueva, haz lo siguiente:

      1. Haz clic en la flecha desplegable junto a Selecciona un permiso y elige Ingresar IDs manualmente > Organización, Proyecto o Etiquetas.

      2. Si creas una etiqueta para tu proyecto u organización, ingresa el PROJECT_ID o el ORGANIZATION_ID en el diálogo y, luego, haz clic en Guardar.

      3. En Clave 1 y Valor 1, elige los valores adecuados de las listas.

    3. Opcional: Para agregar etiquetas adicionales a la tabla, haz clic en Agregar etiqueta y sigue los pasos anteriores.

  7. Haz clic en Crear conjunto de datos.

SQL

Usa la sentencia CREATE SCHEMA.

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. 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 proyecto
    • DATASET_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.

  3. 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:


# Create tag keys and values
data "google_project" "default" {}

resource "google_tags_tag_key" "env_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "env2"
}

resource "google_tags_tag_key" "department_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "department2"
}

resource "google_tags_tag_value" "env_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.env_tag_key.name}"
  short_name = "prod"
}

resource "google_tags_tag_value" "department_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.department_tag_key.name}"
  short_name = "sales"
}

# Create a dataset
resource "google_bigquery_dataset" "default" {
  dataset_id                      = "my_dataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days

  # Attach tags to the dataset
  resource_tags = {
    (google_tags_tag_key.env_tag_key.namespaced_name) : google_tags_tag_value.env_tag_value.short_name,
    (google_tags_tag_key.department_tag_key.namespaced_name) : google_tags_tag_value.department_tag_value.short_name
  }
}

Para aplicar tu configuración de Terraform en un proyecto de Cloud de Confiance , completa los pasos de las siguientes secciones.

Prepara Cloud Shell

  1. Inicia Cloud Shell
  2. 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).

  1. 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 denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  4. Guarda los cambios.
  5. 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

  1. 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.

  2. 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!”.

  3. 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

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

  3. En el panel Explorador, expande tu proyecto, haz clic en Conjuntos de datos y, luego, selecciona un conjunto de datos.

  4. En la sección Información del conjunto de datos, haz clic en Editar detalles.

  5. Expande la sección Etiquetas.

    1. Para aplicar una etiqueta existente, haz lo siguiente:

      1. 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.

      2. En Clave 1 y Valor 1, elige los valores adecuados de las listas.

    2. Para ingresar manualmente una etiqueta nueva, haz lo siguiente:

      1. Haz clic en la flecha desplegable junto a Selecciona un permiso y elige Ingresar IDs manualmente > Organización, Proyecto o Etiquetas.

      2. Si creas una etiqueta para tu proyecto u organización, ingresa el PROJECT_ID o el ORGANIZATION_ID en el diálogo y, luego, haz clic en Guardar.

      3. En Clave 1 y Valor 1, elige los valores adecuados de las listas.

    3. Opcional: Para agregar etiquetas adicionales a la tabla, haz clic en Agregar etiqueta y sigue los pasos anteriores.

  6. 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.

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. 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 proyecto
    • DATASET_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.

  3. 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.

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. 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 proyecto
    • DATASET_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.

  3. 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á, como tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: el ID completo del conjunto de datos, incluido el nombre de dominio de la API (//bigquery.googleapis.com/) para identificar el tipo de recurso. Por ejemplo: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
  • LOCATION: 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

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

  3. 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/4567890123 o 1234567/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

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

  3. En el panel Explorador, expande tu proyecto, haz clic en Conjuntos de datos y, luego, selecciona un conjunto de datos.

  4. En la sección Información del conjunto de datos, haz clic en Editar detalles.

  5. En la sección Etiquetas, haz clic en Borrar elemento junto a la etiqueta que deseas borrar.

  6. 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=[].

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. 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 proyecto
    • DATASET_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.

  3. 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 es 556741164180/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á, como tagValues/4567890123 o 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: el ID completo del conjunto de datos, incluido el nombre de dominio de la API (//bigquery.googleapis.com/) para identificar el tipo de recurso. Por ejemplo, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
  • LOCATION: La ubicación de tu conjunto de datos.

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

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

  3. En el panel Explorador, expande tu proyecto, haz clic en Conjuntos de datos y, luego, selecciona un conjunto de datos.

  4. En la sección Información del conjunto de datos, haz clic en Crear tabla.

  5. Ingresa la información de la nueva tabla. Para obtener más información, consulta Crea y usa tablas.

  6. Expande la sección Etiquetas.

    1. Para aplicar una etiqueta existente, haz lo siguiente:

      1. 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.

      2. En Clave 1 y Valor 1, elige los valores adecuados de las listas.

    2. Para ingresar manualmente una etiqueta nueva, haz lo siguiente:

      1. Haz clic en la flecha desplegable junto a Selecciona un permiso y elige Ingresar IDs manualmente > Organización, Proyecto o Etiquetas.

      2. Si creas una etiqueta para tu proyecto u organización, ingresa el PROJECT_ID o el ORGANIZATION_ID en el diálogo y, luego, haz clic en Guardar.

      3. En Clave 1 y Valor 1, elige los valores adecuados de las listas.

    3. Opcional: Para agregar etiquetas adicionales a la tabla, haz clic en Agregar etiqueta y sigue los pasos anteriores.

  7. Haz clic en Crear tabla.

SQL

Usa la sentencia CREATE TABLE.

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. 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 proyecto
    • DATASET_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.

  3. 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:

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:


# Create tag keys and values
data "google_project" "default" {}

resource "google_tags_tag_key" "env_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "env3"
}

resource "google_tags_tag_key" "department_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "department3"
}

resource "google_tags_tag_value" "env_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.env_tag_key.name}"
  short_name = "prod"
}

resource "google_tags_tag_value" "department_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.department_tag_key.name}"
  short_name = "sales"
}

# Create a dataset
resource "google_bigquery_dataset" "default" {
  dataset_id                      = "MyDataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days
}

# Create a table
resource "google_bigquery_table" "default" {
  dataset_id  = google_bigquery_dataset.default.dataset_id
  table_id    = "mytable"
  description = "table description"

  # Attach tags to the table
  resource_tags = {
    (google_tags_tag_key.env_tag_key.namespaced_name) : google_tags_tag_value.env_tag_value.short_name,
    (google_tags_tag_key.department_tag_key.namespaced_name) : google_tags_tag_value.department_tag_value.short_name
  }
}

Para aplicar tu configuración de Terraform en un proyecto de Cloud de Confiance , completa los pasos de las siguientes secciones.

Prepara Cloud Shell

  1. Inicia Cloud Shell
  2. 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).

  1. 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 denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  4. Guarda los cambios.
  5. 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

  1. 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.

  2. 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!”.

  3. 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

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

  3. En el panel Explorador, expande tu proyecto y, luego, haz clic en Conjuntos de datos.

  4. Haz clic en Overview > Tables y, luego, selecciona una tabla.

  5. Haz clic en la pestaña Detalles y, luego, en Editar detalles.

  6. Expande la sección Etiquetas.

    1. Para aplicar una etiqueta existente, haz lo siguiente:

      1. 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.

      2. En Clave 1 y Valor 1, elige los valores adecuados de las listas.

    2. Para ingresar manualmente una etiqueta nueva, haz lo siguiente:

      1. Haz clic en la flecha desplegable junto a Selecciona un permiso y elige Ingresar IDs manualmente > Organización, Proyecto o Etiquetas.

      2. Si creas una etiqueta para tu proyecto u organización, ingresa el PROJECT_ID o el ORGANIZATION_ID en el diálogo y, luego, haz clic en Guardar.

      3. En Clave 1 y Valor 1, elige los valores adecuados de las listas.

    3. Opcional: Para agregar etiquetas adicionales a la tabla, haz clic en Agregar etiqueta y sigue los pasos anteriores.

  7. 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.

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. 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 proyecto
    • DATASET_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.

  3. 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.

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. 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 proyecto
    • DATASET_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.

  3. 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á, como tagValues/4567890123 o 1234567/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

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

  3. En el panel Explorador, expande tu proyecto y, luego, haz clic en Conjuntos de datos.

  4. 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/4567890123 o 1234567/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

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haz clic en Explorar.

    Botón destacado del panel Explorador.

  3. En el panel Explorador, expande tu proyecto y, luego, haz clic en Conjuntos de datos.

  4. Haz clic en Overview > Tables y, luego, selecciona una tabla.

  5. Haz clic en la pestaña Detalles y, luego, en Editar detalles.

  6. En la sección Etiquetas, haz clic en Borrar elemento junto a la etiqueta que deseas borrar.

  7. 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=[].

  1. En la consola de Cloud de Confiance , ve a la página BigQuery.

    Ir a BigQuery

  2. 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 proyecto
    • DATASET_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.

  3. 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á, como tagValues/4567890123 o 1234567/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.

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

    Ejemplo de cómo crear valores y clave de etiqueta

  2. En la consola de Cloud de Confiance , dirígete a la página IAM.

    Ir a IAM

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

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

  5. Haz clic en Agregar condición:

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

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

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

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

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

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

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

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

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

  13. Para adjuntar el valor de etiqueta intern al conjunto de datos anonymousData, usa la línea de comandos para ejecutar el comando gcloud 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

  1. Instala Google Cloud CLI.

  2. Configura gcloud CLI para usar tu identidad federada.

    Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.

  3. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  4. 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:

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

  1. Ejecuta el comando gcloud resource-manager tags keys create:

    gcloud resource-manager tags keys create TAG_KEY \
        --parent=projects/PROJECT_ID \
        --purpose=DATA_GOVERNANCE
    

    Reemplaza 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, usa organizations/ORGANIZATION_ID en lugar de projects/PROJECT_ID.

API

  1. Envía una solicitud POST al extremo tagKeys:

    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"}' \
      --compressed
    

    Reemplaza 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, usa organizations/ORGANIZATION_ID en lugar de projects/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

  1. Ejecuta el comando gcloud resource-manager tags keys list para obtener el nombre con espacio de nombres de la clave de etiqueta:

    gcloud resource-manager tags keys list --parent=projects/PROJECT_ID
    
  2. Ejecuta el comando gcloud resource-manager tags values create para crear un valor nuevo:

    gcloud resource-manager tags values create TAG_VALUE \
        --parent=PROJECT_ID/TAG_KEY
    

    Reemplaza 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 tu ORGANIZATION_ID.

API

  1. 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.

  2. Envía una solicitud POST al extremo tagValues con 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"}' \
      --compressed
    

    Reemplaza 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 tu ORGANIZATION_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 es tagKeys/4567890123, el ID de la clave de la etiqueta es 4567890123.

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:

Diagrama del flujo de trabajo para el control de acceso a nivel de la columna con etiquetas de Administración de datos.

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 tu ORGANIZATION_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 tu ORGANIZATION_ID en 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

  1. 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_ID
    

    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 tu ORGANIZATION_ID en 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

  1. 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.json
    
  2. Edita el archivo de esquema para agregar el objeto dataGovernanceTagsInfo a 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"
      }
    ]
    
  3. 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_ID
    

    También puedes usar el comando bq update para 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

  1. Recupera el recurso de tabla actual con el método tables.get.

  2. Modifica el recurso de la tabla para incluir el campo dataGovernanceTagsInfo de la columna de destino.

  3. Llama al método tables.update o tables.patch con 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 tu ORGANIZATION_ID en lugar del formato dataGovernanceTag.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

  1. 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' \
        --compressed
    
  2. Envía una solicitud PATCH con la lista actualizada de beneficiarios y el etag del 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 ETAG por el valor etag que devolvió la solicitud GET en el paso anterior.

    También puedes usar el método addGrantees para 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"
    
  3. 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.list o 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?