Con las reglas de palabras activas, puedes ampliar los detectores de infoType integrados y personalizados con reglas de contexto eficaces. Una regla de palabra de activación indica a Protección de Datos Sensibles que ajuste la probabilidad de un resultado en función de si se produce una palabra de activación cerca de ese resultado. Una regla de palabra de activación es un tipo de regla de inspección que se especifica en conjuntos de reglas. Cada regla se aplica a un conjunto de infoTypes predefinidos o personalizados.
Anatomía de una regla de palabra de activación
Un detector de infoType puede tener cero o más reglas de palabras de activación. En tu configuración de inspección, define cada objeto HotwordRule
dentro de la matriz rules
de la siguiente manera:
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"REGEX_PATTERN"
},
"proximity":{
"windowAfter":"NUM_CHARS_TO_CONSIDER_AFTER_FINDING",
"windowBefore":"NUM_CHARS_TO_CONSIDER_BEFORE_FINDING"
}
"likelihoodAdjustment":{
"fixedLikelihood":"LIKELIHOOD_VALUE"
-- OR --
"relativeLikelihood":"LIKELIHOOD_ADJUSTMENT"
},
}
},
...
]
Haz los cambios siguientes:
- REGEX_PATTERN: expresión regular (objeto
Regex
) que define qué se considera una palabra de activación. - NUM_CHARS_TO_CONSIDER_AFTER_FINDING: un intervalo de caracteres después del resultado. Protección de Datos Sensibles analiza este intervalo para determinar si se produce una palabra de activación cerca del resultado.
NUM_CHARS_TO_CONSIDER_BEFORE_FINDING: un intervalo de caracteres antes del resultado. Protección de Datos Sensibles analiza este intervalo para determinar si se produce una palabra de activación cerca del resultado.
LIKELIHOOD_VALUE: un nivel fijo
Likelihood
para definir la detección.LIKELIHOOD_ADJUSTMENT: número que indica cuánto debe aumentar o disminuir Protección de Datos Sensibles la probabilidad de la detección. Un entero positivo aumenta el nivel de probabilidad, mientras que un entero negativo lo reduce. Por ejemplo, si un resultado sería
POSSIBLE
sin la regla de detección yrelativeLikelihood
es 1, el resultado se actualiza aLIKELY
. SirelativeLikelihood
es -1, la detección se rebaja aUNLIKELY
. La probabilidad nunca puede ser inferior aVERY_UNLIKELY
ni superior aVERY_LIKELY
. En estos casos, el nivel de probabilidad no cambia. Por ejemplo, si la probabilidad base esVERY_LIKELY
y el valor derelativeLikelihood
es 1, la probabilidad final sigue siendoVERY_LIKELY
.
Ejemplo de palabra de activación: coincidir con números de historial médico
Supongamos que quieres detectar un infoType personalizado, como un número de historial médico (NHM), con el formato "###-#-#####". También quieres que Protección de Datos Sensibles aumente la probabilidad de coincidencia de cada resultado que siga a la palabra clave "NHM".
Valores de ejemplo:
- 123-4-56789 se correspondería con
POSSIBLE
. - El número de historia clínica 123-4-56789 se correspondería con
VERY_LIKELY
.
En el siguiente ejemplo de JSON y en los fragmentos de código se muestra cómo configurar la regla de palabra clave activadora. En este ejemplo se usa un detector de expresiones regulares personalizadas.
En este ejemplo, ten en cuenta lo siguiente:
- La solicitud define el
C_MRN
infoType personalizado, que es un detector de cualquier cadena que coincida con la expresión regular[0-9]{3}-[0-9]{1}-[0-9]{5}
. - La expresión regular
(?i)(mrn|medical)(?-i)
define la palabra activa. Protección de Datos Sensibles busca esta palabra de activación en el intervalo de caracteres definido en el campoproximity
. - Por cada hallazgo
C_MRN
que tenga una palabra de activación dentro del conjuntoproximity
, Protección de Datos Sensibles asigna el nivel de probabilidadVERY_LIKELY
.
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
Consulta la guía de inicio rápido de JSON para obtener más información sobre cómo usar la API de DLP con JSON.
Método HTTP y URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
Sustituye PROJECT_ID
por el ID del proyecto.
Entrada JSON:
{
"item":{
"value":"Patient's MRN 444-5-22222 and just a number 333-2-33333"
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"C_MRN"
},
"regex":{
"pattern":"[0-9]{3}-[0-9]{1}-[0-9]{5}"
},
"likelihood":"POSSIBLE",
}
],
"ruleSet":[
{
"infoTypes": [{"name" : "C_MRN"}],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"(?i)(mrn|medical)(?-i)"
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
},
"proximity":{
"windowBefore":10
}
}
}
]
}
]
}
}
Salida JSON (abreviada):
{ "result": { "findings": [ { "infoType": { "name": "C_MRN" }, "likelihood": "VERY_LIKELY", "location": { "byteRange": { "start": "14", "end": "25" }, "codepointRange": { ... } } }, { "infoType": { "name": "C_MRN" }, "likelihood": "POSSIBLE", "byteRange": { "start": "44", "end": "55" }, "codepointRange": { ... } } } ] } }
El resultado muestra que Protección de Datos Sensibles ha identificado correctamente el número de historial médico mediante el detector de infoType personalizado C_MRN
.
Además, debido a la coincidencia de contexto de la regla de palabra clave, Protección de Datos Sensibles asignó al primer resultado, que tenía un MRN dentro del conjunto proximity
, una probabilidad de VERY_LIKELY
, tal como se había configurado. En la segunda
detección faltaba contexto, por lo que likelihood
se mantuvo en POSSIBLE
.
Ejemplo de palabra clave: definir la probabilidad de coincidencia de una columna de una tabla
En este ejemplo se muestra cómo puede definir la probabilidad de coincidencia de una columna de datos completa. Este enfoque es útil, por ejemplo, si quiere excluir una columna de datos de los resultados de la inspección.
.Consulta la siguiente tabla. Una columna contiene números de la seguridad social (NSS) de marcador de posición y otra contiene NSS reales.
Número de la seguridad social falso | Número de la seguridad social real |
---|---|
111-11-1111 | 222-22-2222 |
Para minimizar el ruido en los resultados de la inspección, puede excluir cualquier resultado en la columna Fake Social Security Number
. Asigna un nivel de probabilidad bajo a esta columna. A continuación, configura la solicitud para que se excluyan de los resultados las coincidencias con ese nivel de probabilidad.
En este ejemplo, ten en cuenta lo siguiente:
- La regla de palabra de activación se aplica al infoType
US_SOCIAL_SECURITY_NUMBER
. - La expresión regular de la palabra de activación
(Fake Social Security Number)
contiene el nombre de la columna que tiene los valores de marcador de posición. - La propiedad
windowBefore
se ha definido como 1, lo que significa que la palabra clave está en un encabezado de columna y los resultados deben estar en la columna. - Por cada
US_SOCIAL_SECURITY_NUMBER
resultado de esta columna, Protección de Datos Sensibles asigna el nivel de probabilidadVERY_UNLIKELY
. - La propiedad
minLikelihood
se ha definido comoPOSSIBLE
, lo que significa que cualquier resultado que tenga un nivel de probabilidad inferior aPOSSIBLE
se excluye de los resultados de la inspección.
Consulta la guía de inicio rápido de JSON para obtener más información sobre cómo usar la API de DLP con JSON.
Método HTTP y URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
Sustituye PROJECT_ID
por el ID del proyecto.
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:{
"item": {
"table": {
"headers": [
{
"name": "Fake Social Security Number"
},
{
"name": "Real Social Security Number"
}
],
"rows": [
{
"values": [
{
"stringValue": "111-11-1111"
},
{
"stringValue": "222-22-2222"
}
]
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"includeQuote": true,
"ruleSet": [
{
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"rules": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "(Fake Social Security Number)"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_UNLIKELY"
},
"proximity": {
"windowBefore": 1
}
}
}
]
}
],
"minLikelihood": "POSSIBLE"
}
}
Salida JSON:
{ "result": { "findings": [ { "quote": "222-22-2222", "infoType": { "name": "US_SOCIAL_SECURITY_NUMBER" }, "likelihood": "VERY_LIKELY", "location": { "byteRange": { "end": "11" }, "codepointRange": { "end": "11" }, "contentLocations": [ { "recordLocation": { "fieldId": { "name": "Real Social Security Number" }, "tableLocation": {} } } ] }, "createTime": "TIMESTAMP", "findingId": "TIMESTAMP" } ] } }
El valor 111-11-1111, que está en la columna Fake Social Security Number
, ha coincidido con la regla de palabra clave, por lo que Protección de Datos Sensibles le ha asignado el nivel de probabilidad VERY_UNLIKELY
. Este nivel es inferior a la probabilidad mínima definida en la configuración de la inspección (POSSIBLE
), por lo que este resultado se excluye del resultado de la inspección.
Puedes probar este ejemplo eliminando el conjunto de reglas. Ten en cuenta que Protección de Datos Sensibles incluye 111-11-1111 en los resultados.