Com as regras de hotword, é possível estender ainda mais os detectores de infoType integrados e personalizados com regras de contexto avançadas. Uma regra de hotword instrui a Proteção de Dados Sensíveis a ajustar a probabilidade de uma descoberta, caso a hotword ocorra perto da descoberta. Uma regra de hotword é um tipo de regra de inspeção, que é especificada em conjuntos de regras. Cada regra é aplicada a um conjunto de infoTypes integrados ou personalizados.
Anatomia da regra de hotword
O detector de InfoType pode ter zero ou mais regras de hotword. Na
configuração de inspeção, você
define cada objeto HotwordRule
na matriz rules da seguinte maneira:
"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"
},
}
},
...
]
Substitua:
- REGEX_PATTERN: uma expressão regular
(objeto
Regex) que define o que é qualificado como hotword. - NUM_CHARS_TO_CONSIDER_AFTER_FINDING: um intervalo de caracteres após a descoberta. A Proteção de Dados Sensíveis analisa esse intervalo para determinar se uma hotword ocorre perto da descoberta.
NUM_CHARS_TO_CONSIDER_BEFORE_FINDING: um intervalo de caracteres antes da descoberta. A Proteção de Dados Sensíveis analisa esse intervalo para determinar se uma hotword ocorre perto da descoberta.
LIKELIHOOD_VALUE: um valor fixo
Likelihoodpara a descoberta será definida.LIKELIHOOD_ADJUSTMENT: um número que indica o quanto a Proteção de dados sensíveis precisa aumentar ou diminuir a probabilidade de descoberta. Um número inteiro positivo aumenta o nível de probabilidade, e um número inteiro negativo o diminui. Por exemplo, se uma descoberta for
POSSIBLEsem a regra de detecção erelativeLikelihoodfor 1, a descoberta será atualizada paraLIKELY. SerelativeLikelihoodfor -1, será feito downgrade paraUNLIKELY. A probabilidade nunca pode ficar abaixo deVERY_UNLIKELYou excederVERY_LIKELY. Nesses casos, o nível de probabilidade permanece o mesmo. Por exemplo, se a probabilidade base éVERY_LIKELYerelativeLikelihoodé 1, a probabilidade final permanece comoVERY_LIKELY.
Exemplo de hotword: correspondência com números de registros médicos
Suponha que você queira detectar um infoType personalizado, como um número de registro médico (MRN) no formato "###-#-#####". Além disso, você quer que a Proteção de dados sensíveis aumente a probabilidade de correspondência de cada descoberta após a hotword "MRN".
Valores de exemplo:
- 123-4-56789 corresponderia a
POSSIBLE; - MRN 123-4-56789 corresponderia a
VERY_LIKELY.
O exemplo de JSON e os snippets de código a seguir mostram como configurar a regra de hotword. Este exemplo usa um detector de expressão regular personalizado.
Neste exemplo, observe o seguinte:
- A solicitação define o infoType personalizado
C_MRN, que é um detector de qualquer string que corresponda à expressão regular[0-9]{3}-[0-9]{1}-[0-9]{5}. - A expressão regular
(?i)(mrn|medical)(?-i)define a hotword. A Proteção de dados sensíveis pesquisa essa hotword no intervalo de caracteres definido no campoproximity. - Para cada descoberta de
C_MRNque tenha uma hotword no conjuntoproximity, a Proteção de dados sensíveis define o nível de probabilidade comoVERY_LIKELY.
C#
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Consulte o Início rápido do JSON para ver mais informações sobre o uso da API DLP com o JSON.
Método HTTP e URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
Substitua PROJECT_ID pelo ID do projeto.
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
}
}
}
]
}
]
}
}
Saída 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": { ... }
}
}
]
}
}
A saída mostra que a Proteção de dados confidenciais identificou corretamente o número do registro médico usando o detector de infoType personalizado C_MRN.
Além disso, devido à correspondência de contexto na regra de hotword, a Proteção de dados sensíveis atribuiu ao primeiro resultado, que tinha um MRN no conjunto de proximity, uma probabilidade de VERY_LIKELY, conforme configurado. A segunda descoberta não tinha o contexto, então o likelihood permaneceu em POSSIBLE.
Exemplo de hotword: definir a probabilidade de correspondência de uma coluna da tabela
Neste exemplo, demonstramos como definir a probabilidade de correspondência de uma coluna inteira de dados. Essa abordagem é útil, por exemplo, se você quiser excluir uma coluna de dados dos resultados da inspeção.
Pense na tabela a seguir: Uma coluna contém marcadores de posição de números de CPF, e outra contém CPFs reais.
| Número de CPF falso | Número de CPF verdadeiro |
|---|---|
| 111-11-1111 | 222-22-2222 |
Para minimizar o ruído nos resultados da inspeção, é possível excluir descobertas na coluna Fake Social Security Number. Atribua um nível de probabilidade baixo a essa coluna. Em seguida, configure a solicitação de modo que as correspondências com esse nível de probabilidade sejam excluídas dos resultados.
Neste exemplo, observe o seguinte:
- A regra de hotword é aplicada ao infoType
US_SOCIAL_SECURITY_NUMBER. - A expressão regular
(Fake Social Security Number)da hotword contém o nome da coluna que tem os valores do marcador. - A propriedade
windowBeforeé definida como 1, o que significa que a hotword está em um cabeçalho de coluna e as descobertas precisam estar na coluna. - Para cada descoberta
US_SOCIAL_SECURITY_NUMBERnessa coluna, a Proteção de dados confidenciais define o nível de probabilidade comoVERY_UNLIKELY. - A propriedade
minLikelihoodé definida comoPOSSIBLE, o que significa que descobertas com um nível de probabilidade menor quePOSSIBLEserão excluída dos resultados da inspeção.
Consulte o Início rápido do JSON para ver mais informações sobre o uso da API DLP com o JSON.
Método HTTP e URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
Substitua PROJECT_ID pelo ID do projeto.
C#
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente da Proteção de dados sensíveis, consulte Bibliotecas de cliente da Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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"
}
}
Saída 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"
}
]
}
}
O valor 111-11-1111, que está na coluna Fake Social Security Number, correspondeu à regra de hotword, de modo que a Proteção de dados sensíveis atribuiu a ele o nível de probabilidade VERY_UNLIKELY . Esse nível é menor que a probabilidade mínima definida na configuração de inspeção (POSSIBLE). Portanto, essa descoberta é excluída do resultado da inspeção.
Teste esse exemplo removendo o conjunto de regras. Observe que a proteção de dados sensíveis inclui 111-11-1111 nos resultados.