Os dicionários personalizados oferecem a capacidade simples, mas avançada, de fazer a correspondência de uma lista de palavras ou expressões. Pode usar um dicionário personalizado como detetor ou como uma lista de exceções para detetores incorporados. Também pode usar dicionários personalizados para aumentar os detetores de infoType integrados de modo a corresponder a resultados adicionais.
Esta secção descreve como criar um detetor de dicionário personalizado normal a partir de uma lista de palavras.
Anatomia de um detetor de infoType personalizado de dicionário
Conforme resumido na
vista geral da API, para criar um detetor de infoType personalizado de dicionário, define um objeto
CustomInfoType
que contém o seguinte:
- O nome que quer dar ao detetor de infoType personalizado, num objeto
InfoType
. - Um valor
Likelihood
opcional. Se omitir este campo, as correspondências com os itens do dicionário devolvem uma probabilidade predefinida deVERY_LIKELY
. - Opcional
DetectionRule
objetos ou regras de palavra de ativação. Estas regras ajustam a probabilidade de deteções numa determinada proximidade de palavras-chave específicas. Saiba mais sobre as regras de palavras de ativação em Personalizar a probabilidade de correspondência. Um valor
SensitivityScore
opcional. Se omitir este campo, as correspondências com os itens do dicionário devolvem um nível de sensibilidade predefinido deHIGH
.As classificações de sensibilidade são usadas em perfis de dados. Quando cria perfis dos seus dados, a proteção de dados confidenciais usa as pontuações de sensibilidade dos infoTypes para calcular o nível de sensibilidade.
A
Dictionary
>, como umWordList
que contém uma lista de palavras a procurar ou umCloudStoragePath
> para um ficheiro de texto único que contém uma lista de palavras delimitada por novas linhas a procurar.
Como um objeto JSON, um detetor de infoType personalizado de dicionário que inclui todos os componentes opcionais tem o seguinte aspeto. Este JSON inclui um caminho para um ficheiro de texto de dicionário armazenado no Cloud Storage. Para ver uma lista de palavras inline, consulte a secção Exemplos, mais adiante neste tópico.
{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_INFOTYPE_NAME"
},
"likelihood":"LIKELIHOOD_LEVEL",
"detectionRules":[
{
"hotwordRule":{
HOTWORD_RULE
}
},
...
],
"sensitivityScore":{
"score": "SENSITIVITY_SCORE"
},
"dictionary":
{
"cloudStoragePath":
{
"path": "gs://PATH_TO_TXT_FILE"
}
}
}
],
...
}
Especificidades da correspondência do dicionário
Seguem-se orientações sobre como a proteção de dados confidenciais faz a correspondência com palavras e expressões do dicionário. Estes pontos aplicam-se aos dicionários personalizados normais e grandes:
- As palavras do dicionário não são sensíveis a maiúsculas e minúsculas. Se o seu dicionário incluir
Abby
, vai corresponder aabby
,ABBY
,Abby
e assim sucessivamente. - Todos os carateres, em dicionários ou em conteúdo a ser analisado, que não sejam letras, dígitos e outros carateres alfabéticos contidos no plano multilíngue básico do Unicode são considerados espaços em branco quando se procura correspondências. Se o seu dicionário procurar
Abby Abernathy
, vai encontrar correspondências emabby abernathy
,Abby, Abernathy
,Abby (ABERNATHY)
e assim sucessivamente. - Os carateres que rodeiam qualquer correspondência têm de ser de um tipo diferente (letras ou dígitos) dos carateres adjacentes na palavra. Se o seu dicionário procurar
Abi
, vai encontrar os três primeiros carateres deAbi904
, mas não deAbigail
. - As palavras do dicionário que contêm carateres no Supplementary Multilingual Plane da norma Unicode podem gerar resultados inesperados. Exemplos de carateres deste tipo são emojis, símbolos científicos e escritas históricas.
As letras, os dígitos e outros carateres alfabéticos são definidos da seguinte forma:
- Letras: carateres com categorias gerais
Lu
,Ll
,Lt
,Lm
ouLo
na especificação Unicode - Dígitos: carateres com a categoria geral
Nd
na especificação Unicode - Outros carateres alfabéticos: carateres com a categoria geral
Nl
na especificação Unicode ou com a propriedade contributivaOther_Alphabetic
, conforme definido pela norma Unicode
Exemplos
Lista de palavras simples
Suponhamos que tem dados que incluem a sala do hospital onde um paciente foi tratado durante uma visita. Estas localizações podem ser consideradas confidenciais num conjunto de dados específico, mas não são algo que seria detetado pelos detetores incorporados da Proteção de dados confidenciais.
As divisões foram apresentadas como:
- "RM-Orange"
- "RM-Yellow"
- "RM-Green"
C#
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
REST
O seguinte exemplo JSON define um dicionário personalizado que pode usar para remover a identificação dos números de quartos personalizados.
Entrada JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"Patient was seen in RM-YELLOW then transferred to rm green."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"primitiveTransformation":{
"replaceWithInfoTypeConfig":{
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_ROOM_ID"
},
"dictionary":{
"wordList":{
"words":[
"RM-GREEN",
"RM-YELLOW",
"RM-ORANGE"
]
}
}
}
]
}
}
Saída JSON:
Quando POSTamos a entrada JSON para
content:deidentify
,
é devolvida a seguinte resposta JSON:
{
"item":{
"value":"Patient was seen in [CUSTOM_ROOM_ID] then transferred to [CUSTOM_ROOM_ID]."
},
"overview":{
"transformedBytes":"17",
"transformationSummaries":[
{
"infoType":{
"name":"CUSTOM_ROOM_ID"
},
"transformation":{
"replaceWithInfoTypeConfig":{
}
},
"results":[
{
"count":"2",
"code":"SUCCESS"
}
],
"transformedBytes":"17"
}
]
}
}
A proteção de dados confidenciais identificou corretamente os números dos quartos especificados na mensagem WordList
do dicionário personalizado. Tenha em atenção que os itens são mesmo correspondidos quando a capitalização e o hífen (-
) estão
ausentes, como no segundo exemplo, "rm green".
Lista de exceções
Suponhamos que tem dados de registo que incluem identificadores de clientes, como endereços de email, e quer ocultar estas informações. No entanto, estes registos também incluem os endereços de email dos programadores internos, e não quer ocultá-los.
C#
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
REST
O exemplo JSON seguinte cria um dicionário personalizado que lista um subconjunto de endereços de email na mensagem WordList
(jack@example.org e jill@example.org) e atribui-lhes o nome do infoType personalizado DEVELOPER_EMAIL
. Este JSON indica à
proteção de dados confidenciais que ignore os endereços de email especificados, ao mesmo tempo que
substitui quaisquer outros endereços de email que detete por uma string que corresponda
ao respetivo infoType (neste caso, EMAIL_ADDRESS
):
Entrada JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"jack@example.org accessed customer record of user5@example.com"
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"primitiveTransformation":{
"replaceWithInfoTypeConfig":{
}
},
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"DEVELOPER_EMAIL"
},
"dictionary":{
"wordList":{
"words":[
"jack@example.org",
"jill@example.org"
]
}
}
}
],
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
"ruleSet": [
{
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
],
"rules": [
{
"exclusionRule": {
"excludeInfoTypes": {
"infoTypes": [
{
"name": "DEVELOPER_EMAIL"
}
]
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
}
Saída JSON:
Quando enviamos este JSON para
content:deidentify
,
é devolvida a seguinte resposta JSON:
{
"item":{
"value":"jack@example.org accessed customer record of [EMAIL_ADDRESS]"
},
"overview":{
"transformedBytes":"17",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceWithInfoTypeConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"17"
}
]
}
}
O resultado identificou corretamente user1@example.com como correspondente ao detetor de infoType EMAIL_ADDRESS
e jack@example.org como correspondente ao detetor de infoType personalizado DEVELOPER_EMAIL
. Tenha em atenção que, como optámos por transformar apenas EMAIL_ADDRESS
, jack@example.org permaneceu intacto.
Aumente um detetor de infotipos incorporado
Considere um cenário em que um detetor de infoType incorporado não está a devolver os valores corretos. Por exemplo, quer devolver correspondências em nomes de pessoas, mas o detetor PERSON_NAME
incorporado da Proteção de dados confidenciais não está a devolver correspondências em alguns nomes de pessoas comuns no seu conjunto de dados.
A proteção de dados confidenciais permite aumentar os detetores infoType incorporados incluindo um detetor incorporado na declaração de um detetor infoType personalizado, conforme mostrado no exemplo seguinte. Este fragmento ilustra como configurar a proteção de dados confidenciais para que o detetor de infoType PERSON_NAME
incorporado
também corresponda ao nome "Quasimodo:"
C#
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente para a Proteção de dados confidenciais, consulte o artigo Bibliotecas cliente da Proteção de dados confidenciais.
Para se autenticar na Proteção de dados confidenciais, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
REST
... "inspectConfig":{ "customInfoTypes":[ { "infoType":{ "name":"PERSON_NAME" }, "dictionary":{ "wordList":{ "words":[ "quasimodo" ] } } } ] } ...
O que se segue?
Saiba mais sobre dicionários personalizados grandes.