El k-mapa es muy similar al k-anonimato, excepto que este supone que lo más probable es que el atacante no sepa quién está en el conjunto de datos. Usa el k-mapa si tu conjunto de datos es relativamente pequeño o si el esfuerzo que conlleva la generalización de atributos es demasiado alto.
Al igual que el k-anonimato, el k-mapa requiere que determines qué columnas de tu base de datos son cuasi identificadores. De esta manera, indicas cuáles son los datos que un atacante tiene más probabilidad de usar para reidentificar a las personas. Además, calcular un valor de k-mapa requiere un conjunto de datos de reidentificación: una tabla más grande con la que puedas comparar filas en el conjunto de datos original.
En este tema, se muestra cómo calcular los valores de k-mapa para un conjunto de datos con Sensitive Data Protection. Para obtener más información sobre el k-mapa o el análisis de riesgos en general, consulta el tema del concepto de análisis de riesgos antes de continuar.
Antes de comenzar
Antes de continuar, asegúrate de haber hecho lo siguiente:
- Accede a tu Cuenta de Google.
- En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud. Ir al selector de proyectos
- Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información para confirmar que tienes habilitada la facturación para tu proyecto.
- Habilita la protección de datos sensibles. Habilita la protección de datos sensibles
- Selecciona un conjunto de datos de BigQuery para analizar. La protección de datos sensibles calcula la métrica k-mapa mediante el análisis de una tabla de BigQuery.
- Determina los tipos de conjuntos de datos que deseas usar para modelar el conjunto de datos de ataque. Para obtener más información, consulta la página de referencia del objeto
KMapEstimationConfig
, así como los Términos y técnicas del análisis de riesgos.
Calcula las estimaciones de k-mapa
Puedes estimar los valores de k-mapa con Sensitive Data Protection, que usa un modelo estadístico para estimar un conjunto de datos de reidentificación. Esto contrasta con los otros métodos de análisis de riesgos, en los que el conjunto de datos de ataque se conoce de forma explícita. Según el tipo de datos, la Protección de datos sensibles usa conjuntos de datos disponibles de forma pública (por ejemplo, del Censo de EE.UU.) o un modelo estadístico personalizado (por ejemplo, una o más tablas de BigQuery que especifiques), o extrapola la distribución de valores en tu conjunto de datos de entrada. Para obtener más información, consulta la página de referencia del objeto KMapEstimationConfig
.
Para calcular una estimación de k-mapa con la Protección de datos sensibles, primero configura el trabajo de riesgo. Escribe una solicitud para el recurso projects.dlpJobs
, en el que PROJECT_ID indica el identificador del proyecto:
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs
La solicitud contiene un objeto RiskAnalysisJobConfig
, que se compone de lo siguiente:
Un objeto
PrivacyMetric
. Aquí es donde debes especificar que deseas calcular k-mapa. Para ello, especifica un objetoKMapEstimationConfig
que contiene lo siguiente:quasiIds[]
: Obligatorio. Los campos (objetosTaggedField
) que se consideran cuasi identificadores para analizar y usar en el cálculo del k-mapa. No puede haber dos columnas con la misma etiqueta. Pueden ser cualquiera de los siguientes:- Un infoType: esto hace que Sensitive Data Protection use el conjunto de datos públicos relevante como un modelo estadístico de población, incluidos los códigos postales de EE.UU., los códigos regionales, las edades y los géneros.
- Un Infotipo personalizado: una etiqueta personalizada en la que se indica una tabla auxiliar (un objeto
AuxiliaryTable
) que contiene información estadística sobre los posibles valores de esta columna. - La etiqueta
inferred
: si no se indica una etiqueta semántica, especificainferred
. La Protección de datos sensibles infiere el modelo estadístico a partir de la distribución de valores en los datos de entrada.
regionCode
: Un código regional ISO 3166-1 alfa-2 para que la Protección de datos sensibles use en el modelado estadístico. Este valor es obligatorio si ninguna columna está etiquetada con un Infotipo específico de una región (por ejemplo, un código postal de EE.UU.) o un código regional.auxiliaryTables[]
: tablas auxiliares (objetosAuxiliaryTable
) para usar en el análisis. Cada etiqueta personalizada que se usa para etiquetar una columna de cuasi identificadores (dequasiIds[]
) debe aparecer en una sola columna de una tabla auxiliar.
Un objeto
BigQueryTable
. Incluye todo lo siguiente para especificar la tabla de BigQuery que se analizará:projectId
: el ID del proyecto que contiene la tabla.datasetId
: el ID del conjunto de datos de la tabla.tableId
: el nombre de la tabla.
Un conjunto de uno o más objetos
Action
, que representan acciones para ejecutar, en el orden dado, cuando finaliza el trabajo. Cada objetoAction
puede contener una de las siguientes acciones:- Objeto
SaveFindings
: Guarda los resultados del análisis de riesgos en una tabla de BigQuery. - Objeto
PublishToPubSub
: Publica una notificación en un tema de Pub/Sub.
- Objeto
PublishSummaryToCscc
: Guarda un resumen de los resultados en Security Command Center. - Objeto
PublishFindingsToCloudDataCatalog
: Guarda los resultados en Data Catalog. - Objeto
JobNotificationEmails
: Te envía un correo electrónico con los resultados. - Objeto
PublishToStackdriver
: Guarda los resultados en Google Cloud Observability.
- Objeto
Ejemplos de código
A continuación, se muestra un ejemplo de código en varios lenguajes que demuestra cómo usar la Protección de datos sensibles para calcular un valor de k-mapa.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta las Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta las Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta las Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Visualiza los resultados del trabajo de k-mapa
Para recuperar los resultados del trabajo de análisis de riesgo K-mapa mediante la API de REST, envía la siguiente solicitud GET al recurso projects.dlpJobs
. Reemplaza PROJECT_ID por el ID del proyecto y JOB_ID por el identificador del trabajo del que deseas obtener los resultados.
El ID de trabajo se mostró cuando iniciaste el trabajo y también se puede recuperar si enumeras todos los trabajos.
GET https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs/JOB_ID
La solicitud muestra un objeto JSON que contiene una instancia del trabajo. Los resultados del análisis se encuentran dentro de la clave "riskDetails"
, en un objeto AnalyzeDataSourceRiskDetails
. Para obtener más información, consulta la referencia de la API del recurso DlpJob
.
¿Qué sigue?
- Obtén información para calcular el valor de k-anonimato para un conjunto de datos.
- Obtén información para calcular el valor de l-diversidad para un conjunto de datos.
- Obtén más información para calcular el valor δ-presencia de un conjunto de datos.