Cloud Data Loss Prevention (DLP) puede desidentificar datos sensibles en contenido de texto, incluido el texto almacenado en estructuras de contenedor como las tablas. La desidentificación es el proceso de quitar información de identificación de los datos. La API detecta datos sensibles, como información de identificación personal (PII) y, luego, usa una transformación de desidentificación para enmascarar, borrar o, de otro modo, ocultar los datos. Por ejemplo, a continuación se muestran algunas de las técnicas de desidentificación:
- Enmascarar datos sensibles mediante el reemplazo parcial o completo de caracteres con un símbolo, como un asterisco (*) o un hash (#).
- Reemplaza cada instancia de datos sensibles con un token o una string subrogada.
- Encriptación y reemplazo de datos sensibles con una clave predeterminada o generada de manera aleatoria.
Cuando desidentificas datos mediante las transformaciones de Infotipo CryptoReplaceFfxFpeConfig
o CryptoDeterministicConfig
, puedes volver a identificar esos datos, siempre que tengas la CryptoKey
que se usó en un principio para desidentificar los datos.
Puedes proporcionar información a la API mediante JSON a través de HTTPS, también con la CLI y varios lenguajes de programación mediante las bibliotecas cliente de DLP. Para configurar la CLI, consulta la Guía de inicio rápido. Para obtener más información sobre el envío de información en formato JSON, consulta la Guía de inicio rápido de JSON.
Descripción general de la API
Para desidentificar datos sensibles, usa el método content.deidentify
de Cloud DLP.
A continuación, se muestran las tres partes de desidentificación a una llamada a la API:
- Los datos a inspeccionar: Una string o estructura de tabla (objeto
ContentItem
) para que la API inspeccione. - Qué se debe inspeccionar: Información de configuración de detección (
InspectConfig
), como qué tipos de datos (o Infotipos) buscar, si filtrar resultados que están por encima de un límite de probabilidad determinado, si se debe mostrar una cantidad determinada de resultados, etcétera. No especificar al menos un Infotipo en un argumentoInspectConfig
equivale a especificar todos los Infotipos integrados. Esto no se recomienda, debido a que puede causar una disminución en el rendimiento y un incremento en el costo. - Qué hacer con los resultados de la inspección: La información de configuración (
DeidentifyConfig
) que define cómo deseas que se desidentifiquen los datos sensibles. En la siguiente sección, encontrarás más detalles sobre este argumento.
La API muestra los mismos elementos que le proporcionaste, en el mismo formato, pero se desidentificó todo el texto que contenga información sensible de acuerdo con tus criterios.
Especifica criterios de detección
Los detectores de tipo de información (o “Infotipos”) son los mecanismos que usa Cloud DLP para encontrar datos sensibles.
Cloud DLP incluye varios tipos de detectores de Infotipo, los cuales se resumen a continuación:
- Los detectores de Infotipos integrados están compilados en Cloud DLP. Incluyen detectores para tipos de datos sensibles específicos de un país o región, así como tipos de datos aplicables a nivel mundial.
- Los detectores de Infotipos personalizados son detectores que creas tú mismo. Existen tres tipos de detectores de Infotipos personalizados:
- Los detectores de diccionarios personalizados normales son listas de palabras sencillas con las que Cloud DLP detecta coincidencias. Usa los detectores de diccionarios personalizados normales cuando tengas una lista de al menos varias decenas de miles de palabras o frases. Se prefieren los detectores de diccionarios personalizados normales si esperas que tu lista de palabras no cambie de forma significativa.
- Cloud DLP genera detectores de diccionarios personalizados almacenados con listas grandes de palabras o frases almacenadas en Cloud Storage o BigQuery. Usa los detectores de diccionarios personalizados almacenados cuando tengas listas grandes de palabras o frases de hasta decenas de millones.
- Los detectores de expresiones regulares (regex) permiten a Cloud DLP detectar las coincidencias basadas en un patrón de expresión regular.
Además, Cloud DLP incluye el concepto de reglas de inspección, que te permiten ajustar con precisión los resultados del análisis mediante las siguientes reglas:
- Las reglas de exclusión te permiten reducir el número de resultados que se muestran mediante la adición de reglas a un detector de Infotipo incorporado o personalizado.
- Las reglas de palabra clave te permiten aumentar la cantidad o cambiar el valor de probabilidad de los resultados que se muestran si agregas reglas a un detector de Infotipos integrado o personalizado.
Transformaciones de desidentificación
Debes especificar una o más transformaciones cuando estableces la configuración de desidentificación (DeidentifyConfig
). Existen dos categorías de transformaciones:
InfoTypeTransformations
: Las transformaciones que solo se aplican a valores dentro del texto enviado que se identifican como un Infotipo específico.RecordTransformations
: Las transformaciones que solo se aplican a valores dentro de datos de texto tabulares enviados que se identifican como un Infotipo específico o en una columna completa de datos tabulares.
Transformaciones de Infotipos
Puedes especificar una o más transformaciones de Infotipo por solicitud. Dentro de cada objeto InfoTypeTransformation
, especifica lo siguiente:
- Uno o más Infotipos a los que se les debe aplicar una transformación (el objeto del arreglo
infoTypes[]
) - Una transformación básica (el objeto
PrimitiveTransformation
)
Ten en cuenta que especificar un Infotipo es opcional, pero no especificar al menos un Infotipo en un argumento InspectConfig
hace que la transformación se aplique a todos los Infotipos integrados que no tengan una transformación proporcionada. Esto no se recomienda, debido a que puede causar una disminución en el rendimiento y un incremento en el costo.
Transformaciones primitivas
Debes especificar al menos una transformación primitiva para aplicar a una entrada, sin importar si se aplica solo a ciertos infotipos o a la string de texto completa. Tienes varias opciones de transformación que puedes ver en la siguiente tabla. Haz clic en el nombre del objeto para obtener más información.
La lista completa de las transformaciones posibles.
replaceConfig
Establecer replaceConfig
en un objeto ReplaceValueConfig
reemplaza los valores de entrada coincidentes por un valor que especifiques.
Por ejemplo, supongamos que configuraste replaceConfig
como “[email-address]
” para todos los Infotipos EMAIL_ADDRESS
y 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 [email-address].
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"
}
]
}
}
Python
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
Java
Si deseas obtener información para instalar y usar la biblioteca cliente de Cloud DLP, consulta las Bibliotecas cliente de Cloud DLP.
redactConfig
Si especificas redactConfig
, se oculta un valor porque se lo quita por completo. El mensaje redactConfig
no tiene argumentos; si lo especificas se habilita su transformación.
Por ejemplo, supongamos que especificaste redactConfig
para 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 los siguientes ejemplos, se muestra cómo formar la solicitud a la API y qué 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.
characterMaskConfig
Si configuras characterMaskConfig
como un objeto CharacterMaskConfig
, se enmascara de manera parcial una string mediante el reemplazo de una cantidad determinada de caracteres por un carácter fijo. El enmascaramiento puede comenzar desde 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.
El objeto CharacterMaskConfig
tiene varios de sus propios argumentos:
maskingCharacter
: El carácter que se debe usar para enmascarar cada carácter de un valor sensible. Por ejemplo, puedes especificar un asterisco (*) o un numeral (#) para enmascarar una serie de números como los de un número de tarjeta de crédito.numberToMask
: La cantidad de caracteres que se enmascararán. Si no estableces este valor, todos los caracteres coincidentes se enmascararán.reverseOrder
: Si se deben enmascarar los caracteres en orden inverso. Si configurasreverseOrder
como verdadero, los caracteres de los valores coincidentes se enmascaran desde el final hacia el principio del valor. Si lo estableces en falso, el enmascaramiento comienza al principio del valor.charactersToIgnore[]
: Uno o más caracteres para omitir cuando se enmascaran valores. Por ejemplo, especifica aquí un guion para que los guiones permanezcan en su lugar cuando se enmascara un número de teléfono. También puedes especificar un grupo de caracteres comunes (CharsToIgnore
) para que se los ignore cuando se enmascara.
Por ejemplo, supongamos que configuraste characterMaskConfig
para enmascarar con “#” para los infotipos EMAIL_ADDRESS
, excepto los caracteres “.” y “@” Si 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 ##########@#######.###.
A continuación, se muestran ejemplos para usar la API de Cloud DLP para desidentificar datos sensibles mediante técnicas de enmascaramiento.
Protocolo
En el siguiente ejemplo de JSON, se muestra cómo formar una solicitud de API y lo que muestra la API de Cloud DLP:
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.
cryptoHashConfig
Si configuras cryptoHashConfig
como un objeto CryptoHashConfig
, se realiza una seudonimización en un valor de entrada mediante la generación de un valor subrogado con un hash criptográfico.
Este método reemplaza al valor de entrada con un “resumen” o valor de hash encriptado.
El resumen se calcula si tomas el hash SHA-256 del valor de entrada.
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 de hash. Por el momento, solo los valores de número entero y string pueden generar un hash.
Por ejemplo, supongamos que especificaste cryptoHashConfig
para todos los Infotipos EMAIL_ADDRESS
y el objeto CryptoKey
consta de una clave generada de forma aleatoria (TransientCryptoKey
). Luego, se envía la siguiente string a Cloud DLP:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
La string obtenida generada de manera criptográfica tendrá el siguiente aspecto:
My name is Alicia Abernathy, and my email address is 41D1567F7F99F1DC2A5FAB886DEE5BEE.
Por supuesto, la string hexadecimal se generará de manera criptográfica y será diferente a la que se muestra aquí.
dateShiftConfig
Si configuras dateShiftConfig
como un objeto DateShiftConfig
, se realiza un cambio de fecha en un valor de entrada de fecha mediante el cambio de fechas por una cantidad de días aleatoria.
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 para un individuo específico con el mismo diferencial de cambio, pero debes usar un diferencial de cambio distinto para cada individuo.
Para obtener más información sobre cambio de fecha, consulta el tema del concepto de cambio de fecha.
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.
cryptoReplaceFfxFpeConfig
Si configuras cryptoReplaceFfxFpeConfig
como un objeto CryptoReplaceFfxFpeConfig
, se realiza una seudonimización en un valor de entrada mediante el reemplazo de un valor de entrada por un token. Este token tiene las siguientes características:
- Es el valor de entrada encriptado.
- Tiene la misma longitud que el valor de entrada.
- Se calcula con la encriptación de preservación de formato en modo FFX (“FPE-FFX”) vinculada con la clave criptográfica especificada por
cryptoKey
. - Está compuesto por los caracteres especificados por
alphabet
. Opciones válidas:NUMERIC
HEXADECIMAL
UPPER_CASE_ALPHA_NUMERIC
ALPHA_NUMERIC
El valor de entrada debe cumplir las siguientes condiciones:
- Debe constar de al menos dos caracteres (o la string vacía).
- Debe estar compuesto por los caracteres especificados por un
alphabet
. Elalphabet
puede estar compuesto por entre 2 y 95 caracteres. Unalphabet
con 95 caracteres incluye todos los caracteres imprimibles en el grupo de caracteres US-ASCII.
Cloud DLP calcula el token de reemplazo con una clave criptográfica. Debes proporcionar esta clave de una de las siguientes tres maneras:
- 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).
- Incorpórala sin encriptar en la solicitud a la API. (No recomendado)
Para crear una clave unida de Cloud KMS, debes enviar una solicitud que contenga un valor de campo plaintext
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 ciphertext
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. Los siguientes fragmentos de código resaltan cómo realizar eso 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 la API de 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.
fixedSizeBucketingConfig
Las transformaciones de agrupamiento (esta y bucketingConfig
) sirven para enmascarar 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.
Si configuras fixedSizeBucketingConfig
en un objeto FixedSizeBucketingConfig
, se agrupan los valores de entrada según rangos fijos de tamaño. El objeto FixedSizeBucketingConfig
consta de lo siguiente:
lowerBound
: El valor del límite inferior de todos los agrupamientos. Los valores menores que este se juntan en un solo grupo.upperBound
: El valor del límite superior de todos los agrupamientos. Los valores mayores que este se juntan en un solo grupo.bucketSize
: El tamaño de cada grupo, excepto los grupos mínimo y máximo.
Por ejemplo, si se establece lowerBound
en 10, upperBound
en 89 y bucketSize
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.
bucketingConfig
La transformación bucketingConfig
ofrece más flexibilidad que la otra transformación de agrupamiento, fixedSizeBucketingConfig
.
En vez de especificar los límites inferiores y superiores y un valor interno con el que crear grupos de igual tamaño, especificas los valores mínimo y máximo para cada grupo que desees crear. Cada par de valor mínimo y máximo debe tener el mismo tipo.
Si configuras bucketingConfig
como un objeto BucketingConfig
, se especifican grupos personalizados. El objeto BucketingConfig
consta de un arreglo buckets[]
de objetos Bucket
. Cada objeto Bucket
consta de lo siguiente:
min
: El límite inferior del rango del grupo. Omite este valor para crear un grupo que no tenga un límite inferior.max
: El límite superior del rango del grupo. Omite este valor para crear un grupo que no tenga un límite superior.replacementValue
: El valor por el que se reemplazan los valores que se encuentran dentro de los límites inferior y superior. Si no proporcionas unreplacementValue
, se usará un rangomin-max
con guion.
Si un valor se encuentra fuera de los rangos definidos, el TransformationSummary
que se muestra contendrá un mensaje de error.
Por ejemplo, considera la siguiente configuración para la transformación bucketingConfig
:
"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.
replaceWithInfoTypeConfig
Si especificas replaceWithInfoTypeConfig
, se reemplaza cada valor coincidente por el nombre del Infotipo. El mensaje replaceWithInfoTypeConfig
no tiene argumentos; si lo especificas se habilita su transformación.
Por ejemplo, supongamos que especificaste replaceWithInfoTypeConfig
para todos los Infotipos EMAIL_ADDRESS
y 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 EMAIL_ADDRESS.
timePartConfig
Si configuras timePartConfig
en un objeto TimePartConfig
, se preserva una parte del valor coincidente que incluye los valores Date
, Timestamp
y TimeOfDay
. El objeto TimePartConfig
consta de un argumento partToExtract
, que se puede establecer en cualquiera de los valores enumerados de TimePart
, que incluyen año, mes, día del mes, etcétera.
Por ejemplo, supongamos que configuraste una transformación timePartConfig
mediante la configuración de partToExtract
en 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 |
Transformaciones de registro
Las transformaciones de registros (el objeto RecordTransformations
) solo se aplican a valores dentro de datos tabulares que se identifican como un Infotipo específico. En RecordTransformations
, hay otras dos subcategorías de transformaciones más, que son las siguientes:
fieldTransformations[]
: Transformaciones que aplican varias transformaciones de camporecordSuppressions[]
: Reglas que definen qué registros se suprimen por completo Los registros que coinciden con cualquier regla de supresión dentro derecordSuppressions[]
se omiten en la salida.
Transformaciones de campo
Cada objeto FieldTransformation
incluye tres argumentos, que son los siguientes:
fields
: Uno o más campos de entrada (objetosFieldID
) para aplicar la transformación.condition
: Una condición (un objetoRecordCondition
) que debe evaluarse como verdadera para que se aplique la transformación. Por ejemplo, aplica una transformación de agrupamiento a una columna de edad de un registro solo si la columna de código postal para el mismo registro se encuentra dentro de un rango específico. Otra opción es ocultar un campo solo si en el campo de fecha de nacimiento se pone la edad de una persona en 85 o más.- Uno de los siguientes dos argumentos de tipo de transformación. Debes especificar uno de ellos:
infoTypeTransformations
: Trata el contenido del campo como texto libre y aplica unaPrimitiveTransformation
solo al contenido que coincida con unInfoType
. Estas transformaciones se analizaron antes en este tema.primitiveTransformation
: Aplica la transformación básica especificada (objetoPrimitiveTransformation
) a todo el campo. Estas transformaciones se analizaron antes en este tema.
Supresión de registro
Además de aplicar transformaciones a los datos de campo, también puedes indicarle a Cloud DLP que desindentifique los datos mediante la supresión de registros cuando algunas condiciones de supresión se evalúen como verdaderas. Puedes aplicar las transformaciones de campo y las supresiones de registros en la misma solicitud.
Establece el mensaje recordSuppressions
del objeto RecordTransformations
en un arreglo de uno o más objetos RecordSuppression
.
Cada objeto RecordSuppression
contiene un solo objeto RecordCondition
, que a su vez contiene un solo objeto Expressions
.
Un objeto Expressions
contiene lo siguiente:
logicalOperator
: Uno de los tipos enumeradosLogicalOperator
.conditions
: Un objetoConditions
que contiene un arreglo de uno o más objetosCondition
. UnaCondition
es una comparación de un valor de campo con otro valor, ambos de tipostring
,boolean
,integer
,double
,Timestamp
oTimeofDay
.
Si la comparación se evalúa como verdadera, el registro se suprime y viceversa. Si los valores comparados no son del mismo tipo, se emite una advertencia y la condición se evalúa como falsa.