Protección de Datos Sensibles puede desidentificar datos sensibles en contenido de texto, incluido el texto almacenado en estructuras de contenedores, como tablas. La desidentificación es el proceso mediante el cual se elimina la información de identificación de los datos. La API detecta datos sensibles, como la información personal identificable (IPI) y, a continuación, utiliza una transformación de desidentificación para enmascarar, eliminar u ocultar de cualquier otra forma los datos. Por ejemplo, las técnicas de desidentificación pueden incluir cualquiera de las siguientes:
- Ocultar datos sensibles sustituyendo parcial o totalmente los caracteres por un símbolo, como un asterisco (*) o una almohadilla (#).
- Sustituye cada instancia de datos sensibles por un token o una cadena de caracteres sustituta.
- Encriptar y sustituir datos sensibles con una clave generada aleatoriamente o predeterminada.
Puedes proporcionar información a la API mediante JSON a través de HTTPS, así como la CLI y varios lenguajes de programación mediante las bibliotecas de cliente de Protección de Datos Sensibles. Para configurar la CLI, consulta la guía de inicio rápido. Para obtener más información sobre cómo enviar información en formato JSON, consulta la guía de inicio rápido de JSON.
Información general sobre la API
Para desidentificar datos sensibles, usa el método content.deidentify
de Protección de Datos Sensibles.
Las llamadas a la API de desidentificación constan de tres partes:
- Los datos que se van a inspeccionar: una cadena o una estructura de tabla
(
ContentItemobjeto) que la API debe inspeccionar. Qué se debe inspeccionar: información de configuración de la detección (
InspectConfig) como los tipos de datos (o infoTypes) que se deben buscar, si se deben filtrar los resultados que superen un determinado umbral de probabilidad y si se debe devolver un número máximo de resultados.En tu objeto
InspectConfig, asegúrate de incluir los infoTypes que quieras buscar. De lo contrario, Protección de Datos Sensibles buscará un conjunto predeterminado de infoTypes (ALL_BASIC), algunos de los cuales puede que no necesites. Buscar infoTipos que no necesitas puede añadir latencia innecesariamente a tu solicitud.En tu solicitud se requiere un objeto
InspectConfig, con una excepción. Para obtener más información, consulta Transformaciones de registros en esta página.Qué hacer con los resultados de la inspección: información de configuración (
DeidentifyConfig) que define cómo quieres que se desidentifiquen los datos sensibles. Este argumento se trata con más detalle en la siguiente sección.
La API devuelve los mismos elementos que le proporcionaste en el mismo formato, pero con el texto que se haya identificado como que contiene información sensible según tus criterios anonimizado.
Especificar criterios de detección
Los detectores de tipo de información (o "infoTypes") son los mecanismos que usa Protección de Datos Sensibles para encontrar datos sensibles.
Protección de Datos Sensibles incluye varios tipos de detectores de infoTypes, que se resumen a continuación:
- Los detectores de infoType integrados están integrados en Protección de Datos Sensibles. Incluyen detectores de tipos de datos sensibles específicos de un país o una región, así como tipos de datos aplicables a nivel mundial.
- Los detectores de infoType personalizados son detectores que creas tú. Hay tres tipos de detectores de infoType personalizados:
- Los detectores de diccionario personalizado normales son listas de palabras sencillas con las que Protección de Datos Sensibles busca coincidencias. Utiliza detectores de diccionario personalizado normales cuando tengas una lista de hasta varias decenas de miles de palabras o frases. Se recomienda usar detectores de diccionario personalizado normales si no prevés que tu lista de palabras vaya a cambiar significativamente.
- Protección de Datos Sensibles genera los detectores de diccionario personalizado almacenados mediante grandes listas de palabras o frases almacenadas en Cloud Storage o BigQuery. Usa detectores de diccionarios personalizados almacenados cuando tengas una lista grande de palabras o frases (hasta decenas de millones).
- Los detectores de expresiones regulares (regex) permiten que Protección de Datos Sensibles detecte coincidencias basadas en un patrón de expresión regular.
Además, Protección de Datos Sensibles incluye el concepto de reglas de inspección, que te permiten ajustar los resultados de los análisis con lo siguiente:
- Las reglas de exclusión te permiten reducir el número de resultados devueltos añadiendo reglas a un detector de infoType integrado o personalizado.
- Las reglas de palabras de activación te permiten aumentar la cantidad o cambiar el valor de probabilidad de los resultados devueltos añadiendo reglas a un detector de infoType integrado o personalizado.
Transformaciones de desidentificación
Debe especificar una o varias transformaciones al definir la configuración de desidentificación (DeidentifyConfig).
Hay dos categorías de transformaciones:
InfoTypeTransformations: Transformaciones que solo se aplican a los valores del texto enviado que se identifican como un infoType específico.RecordTransformations: Transformaciones que solo se aplican a los valores de los datos de texto tabulares enviados que se identifican como un infoType específico o a una columna completa de datos tabulares.
Transformaciones de infoType
Puede especificar una o varias transformaciones de infoType por solicitud. En cada objeto InfoTypeTransformation, debes especificar lo siguiente:
- Uno o varios infoTypes a los que se debe aplicar una transformación (el objeto de matriz
infoTypes[]). - Una transformación primitiva (el objeto
PrimitiveTransformation).
Ten en cuenta que especificar un infoType es opcional, pero si no se especifica al menos un infoType en un argumento InspectConfig, la transformación se aplicará a todos los infoTypes integrados que no tengan una transformación proporcionada. No se recomienda hacerlo, ya que puede provocar una disminución del rendimiento y un aumento de los costes.
Transformaciones primitivas
Debe especificar al menos una transformación primitiva que se aplique a la entrada, independientemente de si la aplica solo a determinados infoTypes o a toda la cadena de texto. En las siguientes secciones se describen ejemplos de métodos de transformación que puedes usar. Para ver una lista de todos los métodos de transformación que ofrece Protección de Datos Sensibles, consulta la referencia de transformación.
replaceConfig
Si asignas el valor replaceConfig a un objeto ReplaceValueConfig
, se sustituirán los valores de entrada coincidentes por el valor que especifiques.
Por ejemplo, supongamos que ha definido replaceConfig como "[email-address]"
para todos los infoTypes EMAIL_ADDRESS y que se envía la siguiente cadena a
Protección de Datos Sensibles:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La cadena devuelta será la siguiente:
My name is Alicia Abernathy, and my email address is [email-address].
En el siguiente ejemplo de JSON y código en varios lenguajes se muestra cómo formar la solicitud a la API y qué devuelve la API DLP:
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
REST
Consulta la guía de inicio rápido de JSON para obtener más información sobre cómo usar la API DLP con JSON.
Entrada JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Salida JSON:
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is [email-address]."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
redactConfig
Si especificas
redactConfig
se oculta un valor determinado eliminándolo por completo. El mensaje redactConfig no tiene argumentos; si lo especificas, se habilita su transformación.
Por ejemplo, supongamos que ha especificado redactConfig para todos los EMAIL_ADDRESS
infoTypes y que se envía la siguiente cadena a Protección de Datos Sensibles:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La cadena devuelta será la siguiente:
My name is Alicia Abernathy, and my email address is .
En los siguientes ejemplos se muestra cómo crear la solicitud de la API y qué devuelve la API DLP:
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
REST
Entrada JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"redactConfig":{
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Salida JSON:
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"redactConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
characterMaskConfig
Si asignas el valor characterMaskConfig a un objeto CharacterMaskConfig, se enmascara parcialmente una cadena sustituyendo un número determinado de caracteres por un carácter fijo. El enmascaramiento puede empezar al principio o al final de la cadena. Esta transformación también funciona con tipos de números, como los enteros largos.
El objeto CharacterMaskConfig tiene varios argumentos propios:
maskingCharacter: carácter que se usa para enmascarar cada carácter de un valor sensible. Por ejemplo, puedes especificar un asterisco (*) o una almohadilla (#) para ocultar una serie de números, como los de una tarjeta de crédito.numberToMask: número de caracteres que se van a enmascarar. Si no defines este valor, se enmascararán todos los caracteres coincidentes.reverseOrder: indica si se deben enmascarar los caracteres en orden inverso. Si se asigna el valor true areverseOrder, los caracteres de los valores coincidentes se enmascaran desde el final hacia el principio del valor. Si se asigna el valor "false", el enmascaramiento empezará al principio del valor.charactersToIgnore[]: uno o varios caracteres que se omitirán al enmascarar valores. Por ejemplo, especifica un guion aquí para dejar los guiones en su sitio al enmascarar un número de teléfono. También puedes especificar un grupo de caracteres comunes (CharsToIgnore) que se ignorarán al enmascarar.
Por ejemplo, supongamos que ha configurado characterMaskConfig para que se enmascare con "#" en los infotipos de EMAIL_ADDRESS, excepto en los caracteres "." y "@". Si se envía la siguiente cadena a Protección de Datos Sensibles:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La cadena devuelta será la siguiente:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
A continuación, se muestran ejemplos de cómo usar la API DLP para desidentificar datos sensibles mediante técnicas de enmascaramiento.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
PHP
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
C#
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
REST
En el siguiente ejemplo de JSON se muestra cómo crear la solicitud de la API y qué devuelve la API DLP:
Entrada JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"reverseOrder":false,
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Salida JSON:
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ##########@#######.###."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
cryptoHashConfig
Si asignas a cryptoHashConfig un objeto CryptoHashConfig, se seudonimiza un valor de entrada
generando un valor sustituto mediante un cifrado hash.
Este método sustituye el valor de entrada por un "resumen" o valor hash cifrado.
La digestión se calcula tomando el hash SHA-256 del valor introducido.
La clave criptográfica que se usa para crear el hash es un objeto CryptoKey y debe tener un tamaño de 32 o 64 bytes.
El método genera una representación codificada en base64 de la salida cifrada. Por el momento, solo se pueden cifrar valores de cadena y enteros.
Por ejemplo, supongamos que ha especificado cryptoHashConfig para todos los
EMAIL_ADDRESS infoTypes y que el objeto CryptoKey consta de una clave generada aleatoriamente (a
TransientCryptoKey).
A continuación, se envía la siguiente cadena a Protección de Datos Sensibles:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La cadena devuelta generada criptográficamente tendrá el siguiente aspecto:
My name is Alicia Abernathy, and my email address is 41D1567F7F99F1DC2A5FAB886DEE5BEE.
Por supuesto, la cadena hexadecimal se generará de forma criptográfica y será diferente de la que se muestra aquí.
dateShiftConfig
Si se asigna un objeto DateShiftConfig a dateShiftConfig, se realiza un desplazamiento de fecha en un valor de entrada de fecha, desplazando las fechas un número aleatorio de días.
Las técnicas de cambio de fechas modifican aleatoriamente un conjunto de fechas, pero conservan la secuencia y la duración de un periodo. Las fechas de cambio suelen estar relacionadas con una persona o una entidad. Es decir, quieres cambiar todas las fechas de una persona concreta con la misma diferencia horaria, pero usar una diferencia horaria distinta para cada una de las demás personas.
Para obtener más información sobre el cambio de fecha, consulta el artículo sobre el concepto de cambio de fecha.
A continuación, se muestra un ejemplo de código en varios lenguajes que explica cómo usar la API DLP para desidentificar fechas mediante el desplazamiento de fechas.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Protección de Datos Sensibles, consulta el artículo sobre las bibliotecas de cliente de Protección de Datos Sensibles.
Para autenticarte en Protección de Datos Sensibles, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.