Mediante las reglas de palabra clave, puedes extender aún más los detectores de Infotipo integrados y personalizados con reglas de contexto potentes. Una regla de palabra clave le indica a Sensitive Data Protection que ajuste la probabilidad de un resultado, según si una palabra clave ocurre cerca de ese resultado. Una regla de palabra clave es un tipo de regla de inspección que se especifica en conjuntos de reglas. Cada regla se aplica a un conjunto de Infotipos integrados o personalizados.
Anatomía de una regla de palabra clave
Un detector de Infotipo puede tener cero o más reglas de palabra clave. En la configuración de inspección, debes definir cada objeto HotwordRule
dentro del array 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"
},
}
},
...
]
Reemplaza lo siguiente:
- REGEX_PATTERN: Es una expresión regular (objeto
Regex
) que define lo que se califica como palabra clave. - NUM_CHARS_TO_CONSIDER_AFTER_FINDING: Un rango de caracteres después del resultado Sensitive Data Protection analiza este rango para determinar si una palabra clave ocurre cerca del resultado.
NUM_CHARS_TO_CONSIDER_BEFORE_FINDING: Un rango de caracteres antes del resultado. Sensitive Data Protection analiza este rango para determinar si una palabra clave ocurre cerca del resultado.
LIKELIHOOD_VALUE: un nivel
Likelihood
fijo para configurar el resultado.LIKELIHOOD_ADJUSTMENT: un número que indica cuánto Sensitive Data Protection debe aumentar o disminuir la probabilidad del resultado. Un número entero positivo aumenta el nivel de probabilidad y un número entero negativo lo disminuye. 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, el resultado se cambia aUNLIKELY
. La probabilidad nunca puede disminuir por debajo deVERY_UNLIKELY
ni superarVERY_LIKELY
. En estos casos, el nivel de probabilidad permanecen igual. Por ejemplo, si la probabilidad base esVERY_LIKELY
y larelativeLikelihood
es 1, la probabilidad final sigue siendoVERY_LIKELY
.
Ejemplo de palabra clave: coincidencia de los números de historias clínicas
Supongamos que deseas detectar un infotipo personalizado, como un número de historia clínica (MRN) con el formato “###-#-#####”. Además, quieres que la Protección de datos sensibles aumente la probabilidad de coincidencia de cada resultado que siga a la palabra clave “MRN”.
Valores de ejemplo:
- 123-4-56789 coincidiría con
POSSIBLE
. - MRN 123-4-56789 coincidiría con
VERY_LIKELY
.
En los siguientes fragmentos de código y ejemplo de JSON, se muestra cómo configurar la regla de palabra clave. En este ejemplo, se usa un detector de expresiones regulares personalizado.
En este ejemplo, ten en cuenta lo siguiente:
- La solicitud define el infotipo personalizado
C_MRN
, que es un detector para 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 clave. La Protección de datos sensibles busca esta palabra clave dentro del rango de caracteres definidos en el campoproximity
. - Para cada resultado de
C_MRN
que tenga una palabra clave dentro del conjuntoproximity
, Sensitive Data Protection establece el nivel de probabilidad enVERY_LIKELY
.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Consulta la guía de inicio rápido de JSON para obtener más información sobre el uso de la API de DLP con JSON.
Método HTTP y URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
Reemplaza PROJECT_ID
por el ID del proyecto.
Entrada de 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
}
}
}
]
}
]
}
}
Resultado de JSON (abreviado):
{ "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": { ... } } } ] } }
En el resultado, se muestra que Sensitive Data Protection identificó de forma correcta el número de historia clínica mediante el detector de Infotipo personalizado C_MRN
.
Además, debido a la coincidencia de contexto en la regla de palabra clave, la Protección de datos sensibles asignó al primer resultado (que tenía un MRN dentro del conjunto proximity
) una probabilidad de VERY_LIKELY
, según lo configurado. El segundo resultado no tenía el contexto, por lo que likelihood
se quedó en POSSIBLE
.
Ejemplo de palabra clave: Configura la probabilidad de coincidencia de una columna de tabla
En este ejemplo, se muestra cómo puedes configurar la probabilidad de coincidencia de una columna de datos completa. Este enfoque es útil, por ejemplo, si deseas excluir una columna de datos de los resultados de la inspección.
Considera la siguiente tabla. Una columna contiene números de seguridad social (NSS) con marcador de posición, y otra contiene NSS reales.
Número de seguridad social falso | Número de seguridad social real |
---|---|
111-11-1111 | 222-22-2222 |
Para minimizar el ruido en los resultados de la inspección, puedes excluir cualquier resultado de la columna Fake Social Security Number
. Asigna un nivel de probabilidad bajo a esta columna. Luego, configura la solicitud de modo que coincida con ese nivel de probabilidad y se excluya de los resultados.
En este ejemplo, ten en cuenta lo siguiente:
- La regla de palabra clave se aplica al Infotipo
US_SOCIAL_SECURITY_NUMBER
. - La expresión regular
(Fake Social Security Number)
de la palabra clave contiene el nombre de la columna que tiene los valores de marcador de posición. - La propiedad
windowBefore
se establece en 1, lo que significa que la palabra clave está en un encabezado de columna y que los resultados deben estar en la columna. - Para cada resultado
US_SOCIAL_SECURITY_NUMBER
en esta columna, la protección de datos sensibles establece el nivel de probabilidad enVERY_UNLIKELY
. - La propiedad
minLikelihood
se establece enPOSSIBLE
, 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 el uso de la API de DLP con JSON.
Método HTTP y URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
Reemplaza PROJECT_ID
por el ID del proyecto.
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Protección de datos sensibles, consulta Bibliotecas cliente de Protección de datos sensibles.
Para autenticarte en la Protección de datos sensibles, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
REST
Entrada de 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"
}
}
Resultado de 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 se encuentra en la columna Fake Social Security Number
, coincidió con la regla de palabra clave, por lo que la Protección de datos sensibles le asignó el nivel de probabilidad VERY_UNLIKELY
. Este nivel es más bajo que la probabilidad mínima establecida en la configuración de inspección (POSSIBLE
), por lo que este resultado se excluye del resultado de la inspección.
Puedes experimentar con este ejemplo si quitas el conjunto de reglas. Ten en cuenta que Sensitive Data Protection incluye 111-11-1111 en los resultados.