En este tema, se describen las técnicas, o transformaciones, de desidentificación disponibles en Cloud DLP.
Tipos de técnicas de desidentificación
La elección de la transformación de desidentificación que desees usar depende del tipo de datos que deseas desidentificar y con qué propósito lo haces. Las técnicas de desidentificación que admite Cloud DLP se dividen en las siguientes categorías generales:
- Ocultamiento: Borra de forma parcial o completa un valor sensible detectado.
- Reemplazo: Reemplaza un valor sensible detectado por un valor subrogado especificado.
- Enmascaramiento: Reemplaza una cantidad de caracteres de un valor sensible por un carácter subrogado especificado, como un hash (#) o un asterisco (*).
- Asignación de tokens basada en criptografía: Encripta el valor original de los datos sensibles mediante el uso de una clave criptográfica. Cloud DLP admite varios tipos de asignación de tokens, incluidas las transformaciones que se pueden revertir o “reidentificar”.
- Agrupamiento: “Generaliza” un valor sensible mediante su reemplazo por un rango de valores. Por ejemplo, reemplaza una edad específica por un rango de edades o reemplaza temperaturas por rangos que correspondan a “Caliente”, “Medio” y “Frío”.
- Cambio de fechas: Cambia los valores sensibles de fecha por una cantidad de tiempo aleatoria.
- Extracción de tiempo: Extrae o conserva partes específicas de valores de fecha y hora.
En el resto de este tema, se describe cada tipo diferente de transformación de desidentificación y se proporcionan ejemplos de su uso.
Métodos de transformación
En la siguiente tabla, se enumeran las transformaciones que proporciona Cloud DLP para desidentificar datos sensibles:
Transformación | Objeto | Descripción | Se puede revertir1 | Integridad referencial2 | Tipo de entrada |
---|---|---|---|---|---|
Ocultamiento | RedactConfig |
Quita un valor y lo oculta. | Cualquiera | ||
Reemplazo | ReplaceValueConfig |
Reemplaza cada valor de entrada con un valor determinado. | Cualquiera | ||
Reemplazo con Infotipo | ReplaceWithInfoTypeConfig |
Reemplaza un valor de entrada con el nombre de su Infotipo. | Cualquiera | ||
Enmascaramiento con caracteres | CharacterMaskConfig |
Enmascara una string por completo o parcialmente mediante el reemplazo de un número determinado de caracteres con un carácter fijo especificado. | Cualquiera | ||
Seudonimización mediante el reemplazo de un valor de entrada con un hash criptográfico | CryptoHashConfig |
Reemplaza valores de entrada con una string hexadecimal de 32 bytes mediante una clave de encriptación de datos. Para obtener más información, consulta la documentación conceptual de seudonimización. | ✔ | Strings o números enteros | |
Seudonimización mediante el reemplazo por token de preservación de formato criptográfico | CryptoReplaceFfxFpeConfig |
Reemplaza un valor de entrada con un token, o valor sustituto, de la misma longitud mediante la encriptación de preservación de formato (FPE) con el modo de operación FFX. Esto permite que la salida se use en sistemas con validación de formato en función de la longitud. Esto es útil para los sistemas heredados en los que se debe mantener la longitud de la string.
Importante: Para las entradas que varían en su longitud o que tienen una longitud superior a 32 bytes, usa CryptoDeterministicConfig .
Para mantener la seguridad, el Instituto Nacional de Normas y Tecnología recomienda usar los siguientes límites:
|
✔ | ✔ | Strings o números enteros con una cantidad limitada de caracteres y una longitud uniforme. El alfabeto debe estar compuesto al menos por 2 caracteres y no debe contener más de 95. |
Seudonimización mediante el reemplazo por token criptográfico | CryptoDeterministicConfig |
Reemplaza un valor de entrada por un token o un valor subrogado de la misma longitud mediante el uso de AES en modo de vector de inicialización sintética (AES-SIV). Este método de transformación, a diferencia de la asignación de token con preservación de formato, no tiene límites en los grupos de caracteres de string compatibles, genera tokens idénticos para cada instancia de un valor de entrada idéntico y usa subrogados para habilitar la reidentificación con la clave de encriptación original. | ✔ | ✔ | Cualquiera |
Valores de bucket con base en rangos de tamaño fijos | FixedSizeBucketingConfig |
Enmascara los valores de entrada y los reemplaza por depósitos, o rangos dentro de los cuales se encuentra el valor de entrada. | Cualquiera | ||
Valores de bucket con base en rangos de tamaño personalizados | BucketingConfig |
Valores de entrada de depósito con base en rangos configurables por el usuario y valores de reemplazo. | Cualquiera | ||
Cambio de fechas | DateShiftConfig |
Cambia las fechas por un número de días al azar, con la opción de ser coherente en el mismo contexto. | ✔ Conserva la secuencia y la duración |
Fechas y horarios | |
Extracción de datos de tiempo | TimePartConfig |
Extrae o conserva una parte de los valores de Date , Timestamp y TimeOfDay . |
Fechas y horarios |
Pies de página
content.reidentify
.Ocultamiento
Si solo quieres quitar datos sensibles de tu contenido de entrada, Cloud DLP admite una transformación de ocultamiento (RedactConfig
en la API de DLP).
Por ejemplo, supongamos que deseas realizar un ocultamiento simple de todos los Infotipos EMAIL_ADDRESS
y que la siguiente string se envía a Cloud DLP:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La string obtenida será la que se muestra a continuación:
My name is Alicia Abernathy, and my email address is .
En el siguiente ejemplo y código JSON en varios lenguajes, se muestra cómo formar la solicitud a la API y lo que muestra la API de Cloud DLP:
Protocolo
Entrada de 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 de 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"
}
]
}
}
Java
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Python
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Reemplazo
Las transformaciones de reemplazo sustituyen cada valor de entrada por un valor de token determinado o por el nombre de su Infotipo.
Reemplazo básico
La transformación de reemplazo básico (ReplaceValueConfig
en la API de DLP) reemplaza los valores de datos sensibles detectados por un valor que especifiques. Por ejemplo, supongamos que le indicaste a Cloud DLP que use “[fake@example.com]” para reemplazar todos los Infotipos EMAIL_ADDRESS
detectados y que la siguiente string se envía a Cloud DLP:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Se mostrará la siguiente string:
My name is Alicia Abernathy, and my email address is [fake@example.com].
En el siguiente ejemplo y código JSON en varios lenguajes, se muestra cómo formar la solicitud a la API y lo que muestra la API de Cloud DLP:
Protocolo
Para obtener más información sobre cómo usar la API de Cloud DLP con JSON, consulta la guía de inicio rápido de JSON.
Entrada de 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 de 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"
}
]
}
}
Java
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Node.js
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Python
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Reemplazo del Infotipo
También puedes especificar un reemplazo del Infotipo (ReplaceWithInfoTypeConfig
en la API de DLP). Esta transformación hace lo mismo que la transformación de reemplazo básico, pero reemplaza cada valor de datos sensibles detectado por el Infotipo del valor detectado.
Por ejemplo, supongamos que le indicaste a Cloud DLP que detecte las direcciones de correo electrónico y los apellidos, y que reemplace cada valor detectado por el Infotipo del valor. Debes enviar la siguiente string a Cloud DLP:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Se mostrará la siguiente string:
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
Enmascaramiento
Puedes configurar Cloud DLP para que enmascare de forma total o parcial un valor sensible detectado (CharacterMaskConfig
en la API de DLP) si reemplazas cada carácter por un único carácter de enmascaramiento fijo, como un asterisco (*) o un hash (#). El enmascaramiento puede comenzar en el principio o el final de la string. Esta transformación también funciona con los tipos de número como los números enteros largos.
La transformación de enmascaramiento de Cloud DLP tiene las siguientes opciones que puedes especificar:
- Carácter de enmascaramiento (el argumento
maskingCharacter
en la API de DLP): Es el carácter que se usa para enmascarar cada carácter de un valor sensible. Por ejemplo, puedes especificar un asterisco (*) o un signo de dólar ($) para enmascarar una serie de números, como los del número de una tarjeta de crédito. - El número de caracteres que se debe enmascarar (
numberToMask
): Si no especificas este valor, se enmascararán todos los caracteres. - Si se debe invertir el orden (
reverseOrder
): Indica si se deben enmascarar los caracteres en orden inverso. Invertir el orden hace que los caracteres de los valores coincidentes se enmascaren desde el final hacia el principio del valor. - Caracteres que se deben ignorar (
charactersToIgnore
): Son uno o más caracteres que se deben omitir cuando se enmascaran valores. Por ejemplo, puedes indicarle a Cloud DLP que se conserven los guiones en su lugar cuando se enmascare un número de teléfono. También puedes especificar un grupo de caracteres comunes (CharsToIgnore
) para que se los ignore cuando se enmascara.
Supongamos que envías la siguiente string a Cloud DLP y le indicas que use la transformación de enmascaramiento de caracteres en las direcciones de correo electrónico:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Si se envía el carácter de enmascaramiento a “#”, se configuran los caracteres que se deben ignorar como el grupo de caracteres común y se mantiene el resto de la configuración predeterminada, Cloud DLP mostrará lo siguiente:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
En los siguientes ejemplos de código y JSON, se demuestra cómo funciona la transformación de enmascaramiento.
Protocolo
Entrada de 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 de 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"
}
]
}
}
Java
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Node.js
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Python
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Comienza a usarlo
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
PHP
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
C#
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Transformaciones de asignación de tokens basada en criptografía
Las transformaciones de asignación de tokens basada en criptografía (también conocida como “seudonimización”) son métodos de desidentificación que reemplazan los valores originales de los datos sensibles por valores encriptados. Cloud DLP admite los siguientes tipos de asignación de tokens, incluidas las transformaciones que se pueden revertir y permiten la reidentificación:
- Hashing criptográfico: Si se le otorga una
CryptoKey
, Cloud DLP usa un código de autenticación de mensajes basado en SHA-256 (HMAC-SHA-256) en el valor de entrada y, luego, reemplaza el valor de entrada por el valor de hash codificado en Base64. - Encriptación de preservación de formato: Reemplaza un valor de entrada por un token que se generó mediante la encriptación de preservación de formato (FPE) con el modo de operación FFX. Este método de transformación produce un token que está limitado al mismo alfabeto que el valor de entrada y tiene la misma longitud que este. La FPE también admite la reidentificación si se otorga la clave de encriptación original.
- Encriptación determinista: Reemplaza un valor de entrada por un token que se generó mediante el uso de AES en modo de vector de inicialización sintética (AES-SIV). Este método de transformación no tiene límites en los grupos de caracteres de string compatibles, genera tokens idénticos para cada instancia de un valor de entrada idéntico y usa valores subrogados a fin de habilitar la reidentificación si se otorga la clave de encriptación original.
Hashing criptográfico
La transformación de hashing criptográfico (CryptoHashConfig
en la API de DLP) toma un valor de entrada (un dato sensible que detectó Cloud DLP) y lo reemplaza por un valor de hash. El valor de hash se genera mediante el uso de un código de autenticación de mensajes basado en SHA-256 (HMAC-SHA-256) en el valor de entrada con una CryptoKey
.
Cloud DLP genera una representación codificada en Base64 del valor de hash de entrada de hash, en lugar del valor original.
Antes de usar la transformación de hashing criptográfico, ten en cuenta lo siguiente:
- El valor de entrada no está encriptado, pero tiene un hash.
- Esta transformación no se puede revertir. Es decir, si se otorga la clave criptográfica original y el valor de salida de hash de la transformación, no hay manera de restablecer el valor original.
- Por el momento, solo se puede generar un hash en los valores de número entero y string.
- La salida con un hash de la transformación siempre tiene la misma longitud, según el tamaño de la clave criptográfica. Por ejemplo, si usas la transformación de hashing criptográfico en números de teléfono de 10 dígitos, cada número de teléfono se reemplazará por un valor de hash codificado en Base64 de longitud fija.
Encriptación de preservación de formato
El método de transformación de encriptación de preservación de formato (FPE) (CryptoReplaceFfxFpeConfig
en la API de DLP) toma un valor de entrada (un dato sensible que detectó Cloud DLP), lo encripta mediante el uso de la encriptación de preservación de formato en el modo FFX y una CryptoKey
y, luego, reemplaza el valor original por el valor encriptado o token.
El valor de entrada debe cumplir las siguientes condiciones:
- Debe constar de al menos dos caracteres (o la string vacía).
- Se debe codificar como ASCII.
- Debe estar compuesto por los caracteres que especifica un “alfabeto”, que es el conjunto de entre 2 y 95 caracteres permitidos en el valor de entrada. Para obtener más información, consulta el campo del alfabeto en
CryptoReplaceFfxFpeConfig
.
El token generado tiene las siguientes características:
- Es el valor de entrada encriptado.
- Conserva el grupo de caracteres (“alfabeto”) y la longitud del valor de entrada luego de la encriptación.
- Se calcula mediante la encriptación de preservación de formato en el modo FFX que está vinculada con la clave criptográfica especificada.
- No es necesariamente único, ya que cada instancia del mismo valor de entrada genera el mismo token cuando se desidentifica. Esto habilita la integridad referencial y, por lo tanto, permite una búsqueda más eficiente de los datos desidentificados. Puedes cambiar este comportamiento si realizas “ajustes” de contexto, como se describe en Contextos.
Si hay varias instancias de un valor de entrada en el contenido de origen, cada una generará el mismo token cuando se desidentifique. La FPE conserva la longitud y el espacio del alfabeto (el grupo de caracteres), que tiene un límite de 95 caracteres. Puedes cambiar este comportamiento si realizas “ajustes” de contexto, lo que puede mejorar la seguridad. La adición de un ajuste de contexto a la transformación permite que Cloud DLP desidentifique varias instancias del mismo valor de entrada como tokens diferentes. Si no necesitas conservar la longitud y el espacio del alfabeto de los valores originales, usa la encriptación determinista, que se describe a continuación.
Cloud DLP calcula el token de reemplazo mediante el uso de una clave criptográfica. Debes proporcionar esta clave de una de las siguientes tres maneras:
- Incorpórala sin encriptar en la solicitud a la API.
- Solicita que Cloud DLP la genere.
- Incorpórala ya encriptada en la solicitud a la API. Para esta opción, la clave se une (encripta) mediante una clave de Cloud Key Management Service (Cloud KMS).
Para crear una clave unida de Cloud KMS, envía una solicitud que contenga un valor de campo de texto simple de 16, 24 o 32 bytes al método projects.locations.keyRings.cryptoKeys.encrypt
de Cloud KMS. La clave unida es el valor en el campo de texto cifrado de la respuesta del método.
El valor es una string codificada en base64 predeterminada. Para establecer este valor en Cloud DLP, debe estar decodificado en una string de bytes. En los siguientes fragmentos de código, se destaca cómo realizar esto en varios lenguajes. A continuación de estos fragmentos, se proporcionan ejemplos de extremo a extremo.
Java
KmsWrappedCryptoKey.newBuilder()
.setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedKey)))
Python
# The wrapped key is Base64-encoded, but the library expects a binary
# string, so decode it here.
import base64
wrapped_key = base64.b64decode(wrapped_key)
PHP
// Create the wrapped crypto key configuration object
$kmsWrappedCryptoKey = (new KmsWrappedCryptoKey())
->setWrappedKey(base64_decode($wrappedKey))
->setCryptoKeyName($keyName);
C#
WrappedKey = ByteString.FromBase64(wrappedKey)
Para obtener más información sobre la encriptación y la desencriptación de datos mediante Cloud KMS, consulta Encripta y desencripta datos.
A continuación, se observa el código de muestra en varios lenguajes, lo que explica cómo usar Cloud DLP para desidentificar datos sensibles mediante el reemplazo de un valor de entrada por un token.
Java
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Node.js
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Python
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Comienza a usarlo
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
PHP
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
C#
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Encriptación determinista
El método de transformación de encriptación determinista, CryptoDeterministicConfig
en la API de DLP, toma un valor de entrada (un dato sensible que detectó Cloud DLP), lo encripta mediante el uso de AES-SIV con una CryptoKey
y, luego, reemplaza el valor original por una representación codificada en Base64 del valor encriptado.
El uso de la transformación de encriptación determinista permite una búsqueda más eficiente de los datos encriptados.
El valor de entrada debe cumplir las siguientes condiciones:
- Debe tener una longitud mínima de 1 carácter.
- No debe tener limitaciones de grupo de caracteres.
El token generado tiene las siguientes características:
- Es una representación codificada en Base64 del valor encriptado.
- No conserva el grupo de caracteres (“alfabeto”) ni la longitud del valor de entrada luego de la encriptación.
- Se calcula mediante la encriptación AES en modo SIV (AES-SIV) con una
CryptoKey
. - No es necesariamente único, ya que cada instancia del mismo valor de entrada genera el mismo token cuando se desidentifica. Esto permite realizar búsquedas más eficientes de los datos encriptados. Puedes cambiar este comportamiento si realizas “ajustes” de contexto, como se describe en Contextos.
- Se genera con un prefijo agregado en el formato
[SURROGATE_TYPE]([LENGTH]):
, en el que[SURROGATE_TYPE]
representa un Infotipo subrogado que describe el valor de entrada y[LENGTH]
indica la longitud de caracteres. El valor subrogado permite que el token se vuelva a identificar mediante la clave de encriptación original que se usó para la desidentificación.
A continuación, se muestra un ejemplo de configuración JSON para la desidentificación mediante una encriptación determinista. Ten en cuenta que elegimos “PHONE_SURROGATE” como nuestro tipo de valor subrogado descriptivo, ya que estamos desidentificando números de teléfono.
[CRYPTO_KEY]
representa una clave criptográfica separada que se obtuvo de Cloud KMS. Para obtener más información sobre cómo obtener una CryptoKey
, consulta la sección anterior, Encriptación de preservación de formato.
{
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
]
},
"item":{
"value":"My phone number is 206-555-0574, call me"
}
}
Si se desidentifica la string “My phone number is 206-555-0574” mediante esta transformación, se genera una string desidentificada como la que se muestra a continuación:
My phone number is PHONE_SURROGATE(36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me
Si deseas volver a identificar esta string, puedes usar una solicitud JSON como la siguiente, en la que [CRYPTO_KEY] es la misma clave criptográfica que se usó para desidentificar el contenido.
{
"reidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_SURROGATE"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PHONE_SURROGATE"
},
"surrogateType":{
}
}
]
},
"item":{
"value":"My phone number is [PHONE_SURROGATE](36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me"
}
}
Si se vuelve a identificar esta string, se genera la string original:
My phone number is 206-555-0574, call me
Agrupamiento
Las transformaciones de agrupamiento sirven para desidentificar datos numéricos mediante el “agrupamiento” en rangos. El rango numérico resultante es una string con guion que consta de un límite inferior, un guion y un límite superior.
Agrupamiento de tamaño fijo
Cloud DLP puede agrupar valores de entrada numéricos en función de rangos de tamaño fijos (FixedSizeBucketingConfig
en la API de DLP). Debes especificar los siguientes elementos para configurar el agrupamiento de tamaño fijo:
- El valor del límite inferior de todos los grupos. Los valores que sean menores al límite inferior se agruparán en un solo grupo
- El valor del límite superior de todos los grupos. Los valores que sean mayores al límite superior se agruparán en un solo grupo
- El tamaño de cada grupo que sea distinto de los grupos mínimo y máximo.
Por ejemplo, si el límite inferior se establece en 10, el límite superior en 89 y el tamaño del grupo en 10, se usarán los siguientes grupos: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+.
Para obtener más información sobre el concepto de agrupamiento, consulta Generalización y agrupamiento.
Agrupamiento personalizable
El agrupamiento personalizable (BucketingConfig
en la API de DLP) ofrece más flexibilidad que el agrupamiento de tamaño fijo.
En vez de especificar los límites inferiores y superiores y un valor interno para crear grupos de igual tamaño, especificas los valores mínimo y máximo de cada grupo que desees crear. Cada par de valores mínimo y máximo debe tener el mismo tipo.
Puedes configurar el agrupamiento personalizable si especificas grupos individuales. Cada bucket tiene las siguientes propiedades:
- El límite inferior del rango del grupo. Omite este valor para crear un grupo que no tenga un límite inferior
- El límite superior del rango del grupo. Omite este valor para crear un grupo que no tenga un límite superior
- El valor de reemplazo para este rango de grupos. Este es el valor por el que se reemplazarán todos los valores detectados que se encuentren entre los límites inferior y superior. Si no proporcionas un valor de reemplazo, se generará un rango de mínimos y máximos con guiones
Por ejemplo, considera la siguiente configuración de JSON para esta transformación de agrupamiento:
"bucketingConfig":{
"buckets":[
{
"min":{
"integerValue":"1"
},
"max":{
"integerValue":"30"
},
"replacementValue":{
"stringValue":"LOW"
}
},
{
"min":{
"integerValue":"31"
},
"max":{
"integerValue":"65"
},
"replacementValue":{
"stringValue":"MEDIUM"
}
},
{
"min":{
"integerValue":"66"
},
"max":{
"integerValue":"100"
},
"replacementValue":{
"stringValue":"HIGH"
}
}
]
}
Esta configuración define el siguiente comportamiento:
- Los valores de número entero que se encuentran entre 1 y 30 se enmascaran mediante el reemplazo por
LOW
. - Los valores de número entero que se encuentran entre 31 y 65 se enmascaran mediante el reemplazo por
MEDIUM
. - Los valores de número entero que se encuentran entre 66 y 100 se enmascaran mediante el reemplazo por
HIGH
.
Para obtener más información sobre el concepto de agrupamiento, consulta Generalización y agrupamiento.
Cambio de fechas
Cuando usas la transformación de cambio de fechas (DateShiftConfig
en la API de DLP) en un valor de entrada de fecha, Cloud DLP cambia las fechas por una cantidad aleatoria de días.
Las técnicas de cambio de fechas cambian un conjunto de fechas de forma aleatoria, pero conservan la secuencia y la duración de un período. En general, el cambio de fechas se realiza en el contexto de un individuo o una entidad. Es decir, debes cambiar todas las fechas de un individuo específico mediante el uso del mismo diferencial de cambio, pero debes usar un diferencial de cambio distinto para cada individuo.
Para obtener más información sobre el cambio de fechas, consulta Cambio de fechas.
A continuación, se observa el código de muestra en varios lenguajes, lo que explica cómo usar la API de Cloud DLP para desidentificar fechas mediante el cambio de fecha.
Java
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Node.js
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Python
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Comienza a usarlo
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
PHP
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
C#
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Extracción de tiempo
Ejecutar el objeto de extracción de tiempo (TimePartConfig
en la API de DLP) conserva una parte de un valor coincidente que, en una fecha, una hora o una marca de tiempo, conserva una parte de un valor coincidente. Especifica a Cloud DLP qué tipo de valor de tiempo deseas extraer, incluidos el año, el mes, el día del mes y demás (que se enumeran en el objeto TimePart
).
Por ejemplo, supongamos que configuraste una transformación timePartConfig
mediante la configuración de la parte del tiempo que se debe extraer para el valor YEAR
. Después de enviar los datos de la primera columna que se encuentra a continuación a Cloud DLP, obtendrías los valores transformados de la segunda columna:
Valores originales | Valores transformados |
---|---|
9/21/1976 |
1976 |
6/7/1945 |
1945 |
1/20/2009 |
2009 |
7/4/1776 |
1776 |
8/1/1984 |
1984 |
4/21/1982 |
1982 |