Enmascara datos de columnas

En este documento, se muestra cómo implementar el enmascaramiento de datos para ocultar de forma selectiva datos sensibles. Si implementas el enmascaramiento de datos, puedes proporcionar diferentes niveles de visibilidad para diferentes grupos de usuarios. Para obtener información general, consulta Introducción al enmascaramiento de datos.

Para implementar el enmascaramiento de datos, agrega una política de datos a una columna. Para agregar una política de enmascaramiento de datos a una columna, debes completar los siguientes pasos:

  1. Crea una taxonomía con al menos una etiqueta de política.
  2. Opcional: Otorga el rol de lector detallado de Data Catalog a uno o más principales en una o más etiquetas de política que creaste.
  3. Crea hasta tres políticas de datos para la etiqueta de política, para asignar reglas de enmascaramiento y principales (que representen usuarios o grupos) a esa etiqueta.
  4. Establece la etiqueta de política en una columna. Eso asigna las políticas de datos asociadas con la etiqueta de política a la columna seleccionada.
  5. Asigna usuarios a los que deberían tener acceso a los datos enmascarados en la función de lector enmascarado de BigQuery. Como práctica recomendada, asigna el rol de lector enmascarado de BigQuery a nivel de política de datos. Si asignas la función a nivel de proyecto o superior, se otorgan los permisos a los usuarios a todas las políticas de datos del proyecto, lo que puede generar problemas causados por el exceso de permisos.

Puedes usar la consola de Google Cloud o la API de políticas de datos de BigQuery para trabajar con políticas de datos.

Cuando hayas completado estos pasos, los usuarios que ejecutan consultas en la columna obtienen datos sin enmascarar, datos enmascarados o un error de acceso denegado, según los grupos a los que pertenecen y los roles que se les otorgaron. Para obtener más información, consulta Cómo interactúan los roles de lector enmascarado y de lector detallado.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Data Catalog and BigQuery Data Policy APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Data Catalog and BigQuery Data Policy APIs.

    Enable the APIs

  8. BigQuery se habilita de forma automática en proyectos nuevos, pero es posible que debas activarlo en un proyecto preexistente.

    Enable the BigQuery API.

    Enable the API

  9. Si creas una política de datos que haga referencia a una rutina de enmascaramiento personalizada, crea la UDF de enmascaramiento asociada para que esté disponible en los siguientes pasos.

Crear taxonomías

La cuenta de servicio o el usuario que crea una taxonomía debe tener el rol de administrador de etiquetas de política de Data Catalog.

Consola

  1. Abre la página Taxonomías de etiquetas de política en la consola de Google Cloud.

    Abrir la página Taxonomías de etiquetas de política

  2. Haz clic en Crear taxonomía.
  3. En la página Nueva taxonomía, sigue estos pasos:

    1. En Nombre de taxonomía, ingresa el nombre de la taxonomía que deseas crear.
    2. En Descripción, ingresa una descripción.
    3. Si es necesario, cambia el proyecto que aparece en Proyecto.
    4. Si es necesario, cambia la ubicación que aparece en Ubicación.
    5. En Etiquetas de política, ingresa un nombre y una descripción para la etiqueta de política.
    6. Si quieres agregar una etiqueta de política secundaria para una etiqueta de política, haz clic en Agregar subetiqueta.
    7. Para agregar una nueva etiqueta de política al mismo nivel que otra, haz clic en + Agregar etiqueta de política.
    8. Sigue agregando etiquetas de política y etiquetas de política secundarias según sea necesario para tu taxonomía.
    9. Cuando termines de crear etiquetas de política para tu jerarquía, haz clic en Crear.

API

Para usar las taxonomías existentes, llama a taxonomies.import en lugar de realizar los dos primeros pasos del siguiente procedimiento.

  1. Llama a taxonomies.create para crear una taxonomía.
  2. Llama a taxonomies.policytag.create para crear una etiqueta de política.

Trabaja con etiquetas de política

Para obtener más información sobre cómo trabajar con etiquetas de política, cómo verlas o actualizarlas, consulta Trabaja con etiquetas de política. Si deseas obtener prácticas recomendadas, consulta Prácticas recomendadas para usar etiquetas de política en BigQuery.

Crea políticas de datos

La cuenta de servicio o el usuario que crea una política de datos debe tener los permisos bigquery.dataPolicies.create, bigquery.dataPolicies.setIamPolicy y datacatalog.taxonomies.get.

Si creas una política de datos que hace referencia a una rutina de enmascaramiento personalizada, también necesitas permisos de rutina.

Estos permisos están incluidos en los roles de Administrador de BigQuery y Propietario de datos de BigQuery.

Puedes crear hasta nueve políticas de datos para una etiqueta de política. Una de estas políticas está reservada para la configuración de control de acceso a nivel de columna.

Consola

  1. Abre la página Taxonomías de etiquetas de política en la consola de Google Cloud.

    Abrir la página Taxonomías de etiquetas de política

  2. Haz clic en el nombre de la taxonomía que deseas abrir.
  3. Selecciona una etiqueta de política.
  4. Haz clic en Administrar políticas de datos.
  5. En Nombre de la política de datos, escribe un nombre para la política de datos. El nombre de la política de datos debe ser único dentro del proyecto en el que reside la política de datos.
  6. Para la Regla de enmascaramiento, elige una regla de enmascaramiento predefinida o una rutina de enmascaramiento personalizada. Si seleccionas una rutina de enmascaramiento personalizada, asegúrate de tener los permisos bigquery.routines.get y bigquery.routines.list a nivel de proyecto.
  7. En Principal, escribe el nombre de uno o más usuarios o grupos a los que deseas otorgar acceso enmascarado a la columna. Ten en cuenta que a todos los usuarios y grupos que ingreses aquí se les otorga el rol de lector enmascarado de BigQuery.
  8. Haz clic en Enviar.

API

  1. Realiza una llamada al método create. Pasa un recurso DataPolicy que cumpla con los siguientes requisitos:

    • El campo dataPolicyType está configurado como DATA_MASKING_POLICY.
    • En el campo dataMaskingPolicy, se identifica la regla de enmascaramiento de datos o la rutina que se usará.
    • El campo dataPolicyId proporciona un nombre para la política de datos que es única dentro del proyecto en el que reside la política de datos.
  2. Llama al método setIamPolicy y pasa un Policy. El Policy debe identificar a los principales que tienen acceso a los datos enmascarados y especificar roles/bigquerydatapolicy.maskedReader para el campo role.

Establecer etiquetas de política en las columnas

Para establecer una política de datos en una columna, debes adjuntar la etiqueta de política asociada con la política de datos a la columna.

La cuenta de servicio o el usuario que establece una etiqueta de política necesita los permisos datacatalog.taxonomies.get y bigquery.tables.setCategory. datacatalog.taxonomies.get se incluye en los roles de administrador de etiquetas de política de Data Catalog y visualizador de proyectos. bigquery.tables.setCategory se incluye en las funciones de administrador de BigQuery (roles/bigquery.admin) y propietario de datos de BigQuery (roles/bigquery.dataOwner).

Para ver taxonomías y etiquetas de políticas en todos los proyectos de una organización en la consola de Google Cloud, los usuarios necesitan el permiso resourcemanager.organizations.get, que se incluye en el rol de visualizador de la organización.

Consola

Para establecer la etiqueta de política, modifica un esquema con la consola de Google Cloud.

  1. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  2. En el Explorador de BigQuery, ubica y selecciona la tabla que deseas actualizar. Se abrirá el esquema de esa tabla.

  3. Haz clic en Editar esquema.

  4. En la pantalla Esquema actual, selecciona la columna de destino y haz clic en Agregar etiqueta de política.

  5. En la pantalla Agrega una etiqueta de política, ubica y selecciona la etiqueta de política que deseas aplicar a la columna.

  6. Haz clic en Seleccionar. Tu pantalla debería verse así:

    Editar esquema

  7. Haz clic en Guardar.

bq

  1. Escribe el esquema en un archivo local.

    bq show --schema --format=prettyjson \
       project-id:dataset.table > schema.json
    

    Donde:

    • project-id es el ID del proyecto.
    • dataset es el nombre del conjunto de datos que contiene la tabla que deseas actualizar.
    • table es el nombre de la tabla que deseas actualizar.
  2. Modifica el archivo schema.json para establecer una etiqueta de política en una columna. Para el valor del campo names de policyTags, usa el nombre de recurso de etiqueta de política.

    [
     ...
     {
       "name": "ssn",
       "type": "STRING",
       "mode": "REQUIRED",
       "policyTags": {
         "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"]
       }
     },
     ...
    ]
    
  3. Actualiza el esquema.

    bq update \
       project-id:dataset.table schema.json
    

API

En el caso de las tablas existentes, llama a tables.patch o, en el caso de las tablas nuevas, llama a tables.insert. Usa la propiedad schema del objeto Table que pases para establecer una etiqueta de política en la definición de esquema. Consulta el esquema de ejemplo de la línea de comandos para ver cómo configurar una etiqueta de política.

Cuando se trabaja con una tabla existente, se prefiere el método tables.patch, ya que el método tables.update reemplaza todo el recurso de tabla.

Aplicar control de acceso

Cuando creas una política de datos para una etiqueta de política, el control de acceso se aplica de forma automática. Todas las columnas a las que se aplica esa etiqueta de política muestran datos enmascarados en respuesta a consultas de usuarios que tienen el rol de lector enmascarado.

Para detener la aplicación del control de acceso, primero debes borrar todas las políticas de datos asociadas con las etiquetas de política en la taxonomía. Para obtener más información, consulta Aplica el control de acceso.

Verifica los permisos de IAM en una política de datos

Para ver qué permisos tienes en una política de datos, llama al método testIamPermissions.

Actualiza las políticas de datos

La cuenta de servicio o el usuario que actualiza una política de datos debe tener el permiso bigquery.dataPolicies.update. Si actualizas la etiqueta de política con la que está asociada la política de datos, también necesitas el permiso datacatalog.taxonomies.get.

Si actualizas las principales asociadas con la política de datos, necesitas el permiso bigquery.dataPolicies.setIamPolicy.

Los permisos bigquery.dataPolicies.update y bigquery.dataPolicies.setIamPolicy se incluyen en los roles de administrador de BigQuery y propietario de datos de BigQuery. El permiso datacatalog.taxonomies.get se incluye en los roles de administrador de Data Catalog y visualizador de Data Catalog.

Consola

  1. Abre la página Taxonomías de etiquetas de política en la consola de Google Cloud.

    Abrir la página Taxonomías de etiquetas de política

  2. Haz clic en el nombre de la taxonomía que deseas abrir.
  3. Selecciona una etiqueta de política.
  4. Haz clic en Administrar políticas de datos.
  5. De manera opcional, cambia la regla de enmascaramiento.
  6. Opcional: Agrega o quita principales.
  7. Haz clic en Enviar.

API

Para cambiar la regla de enmascaramiento de datos, llama al método patch y pasa un recurso DataPolicy con un campo dataMaskingPolicy actualizado.

Para cambiar los principales asociados con una política de datos, llama al método setIamPolicy y pasa una Policy que se actualice. Las principales que tienen acceso a los datos enmascarados.

Borra las políticas de datos

La cuenta de servicio o el usuario que crea una política de datos debe tener el permiso bigquery.dataPolicies.delete. Este permiso se incluye en los roles de Administrador de BigQuery y Propietario de datos de BigQuery.

Consola

  1. Abre la página Taxonomías de etiquetas de política en la consola de Google Cloud.

    Abrir la página Taxonomías de etiquetas de política

  2. Haz clic en el nombre de la taxonomía que deseas abrir.
  3. Selecciona una etiqueta de política.
  4. Haz clic en Administrar políticas de datos.
  5. Haz clic en junto a la política de datos que deseas borrar.
  6. Haz clic en Enviar.
  7. Haz clic en Confirmar.

API

Para borrar una política de datos, llama al método delete.