A proteção de dados sensíveis pode desidentificar dados sensíveis em conteúdo de texto, incluindo texto armazenado em estruturas de contêiner, como tabelas. A desidentificação é o processo de remover informações de identificação dos dados. A API detecta dados confidenciais, como informações de identificação pessoal (PII, na sigla em inglês), e usa uma transformação de desidentificação para mascarar, excluir ou ocultar os dados. Por exemplo, as técnicas de desidentificação podem incluir qualquer uma destas opções:
- Mascarar dados confidenciais substituindo parcial ou totalmente os caracteres por um símbolo, como asterisco (*) ou cerquilha (#).
- Substituir cada instância de dados confidenciais por uma string de token ou alternativa.
- Criptografar e substituir dados confidenciais por meio de uma chave gerada aleatoriamente ou pré-determinada.
É possível fornecer informações à API usando JSON por HTTPS, bem como a CLI e várias linguagens de programação usando as bibliotecas de cliente da Proteção de dados sensíveis. Para configurar a CLI, consulte o guia de início rápido. Para mais informações sobre o envio de informações no formato JSON, consulte o guia de início rápido do JSON.
Visão geral da API
Para desidentificar dados sensíveis, use o método content.deidentify da Proteção de Dados Sensíveis.
Uma chamada de API de desidentificação se divide em três partes:
- Os dados a serem inspecionados: uma string ou estrutura de tabela (objeto
ContentItem) para a API a ser inspecionada. O que inspecionar: informações de configuração de detecção (
InspectConfig) como os tipos de dados (ou infoTypes) para procurar, se é necessário filtrar as descobertas que estão acima de um determinado limite de probabilidade e se é necessário retornar no máximo um determinado número de resultados.No objeto
InspectConfig, inclua os infoTypes que você quer verificar. Caso contrário, a Proteção de Dados Sensíveis vai procurar um conjunto padrão de infoTypes (ALL_BASIC), alguns dos quais talvez não sejam necessários. A verificação de infoTypes desnecessários pode adicionar latência à sua solicitação.Um objeto
InspectConfigé obrigatório na sua solicitação, com uma exceção. Para mais informações, consulte Transformações de registros nesta página.O que fazer com as descobertas da inspeção: informações de configuração (
DeidentifyConfig) que definem como você quer que os dados confidenciais sejam desidentificados. Esse argumento é abordado mais detalhadamente na próxima seção.
A API retorna os mesmos itens que você forneceu a ela, no mesmo formato, exceto qualquer texto identificado como contendo informações confidenciais, de acordo com seus critérios, que foi desidentificado.
Como especificar critérios de detecção
Os detectores do tipo de informação (ou "infoType") são os mecanismos usados pela Proteção de Dados Sensíveis para encontrar dados sensíveis.
A Proteção de dados sensíveis inclui vários tipos de detectores de infoType, que estão resumidos aqui:
- Os detectores de infoType integrados fazem parte da Proteção de Dados Sensíveis. Eles incluem detectores para tipos de dados sensíveis específicos do país ou da região, bem como tipos de dados aplicáveis globalmente.
- Os detectores de infoType personalizados são aqueles que você mesmo cria. Eles são divididos em três tipos:
- Os detectores de dicionários personalizados regulares são listas de palavras simples usadas como base para correspondências da Proteção de dados sensíveis. Use-os quando tiver uma lista de até dezenas de milhares de palavras ou frases. Dê preferência aos detectores de dicionários personalizados regulares se você não espera mudanças significativas na sua lista de palavras.
- Os detectores de dicionários personalizados armazenados são gerados pela proteção de dados sensíveis usando grandes listas de palavras ou frases armazenadas no Cloud Storage ou no BigQuery. Use-os quando tiver uma lista grande de até dezenas de milhões de palavras ou frases.
- Os detectores de expressões regulares (regex) permitem que a Proteção de Dados Sensíveis detecte correspondências com base em um padrão de expressão regular.
Para refinar os resultados da verificação, crie regras de inspeção.
As transformações de desidentificação podem:
Especifique uma ou mais transformações ao definir a configuração de desidentificação (DeidentifyConfig). Há duas categorias de transformações:
InfoTypeTransformations: transformações que são aplicadas somente a valores no texto enviado que são identificados como um infoType específico.RecordTransformations: transformações aplicadas somente a valores em dados de texto tabulares enviados que são identificados como um infoType específico ou em uma coluna inteira de dados tabulares.
Transformações de infoType
É possível especificar uma ou mais transformações de infoType por solicitação. Em cada objeto InfoTypeTransformation, você especifica os seguintes itens:
- Um ou mais infoTypes aos quais uma transformação precisa ser aplicada (o objeto de matriz
infoTypes[]). - Uma transformação primitiva (o objeto
PrimitiveTransformation).
Observe que especificar um infoType é opcional, mas não especificar pelo menos um infoType em um argumento InspectConfig faz com que a transformação seja aplicada a todos os infoTypes integrados que não têm uma transformação fornecida. Isso não é recomendado, porque pode reduzir o desempenho e aumentar os custos.
Transformações primárias
Especifique pelo menos uma transformação primária para aplicar à entrada, independentemente de aplicar apenas a determinados infoTypes ou à string inteira de texto. As seções a seguir descrevem exemplos de métodos de transformação que podem ser usados. Para conferir uma lista de todos os métodos de transformação que a Proteção de Dados Sensíveis oferece, consulte a Referência de transformação.
replaceConfig
Definir replaceConfig como um objeto ReplaceValueConfig substitui os valores de entrada correspondentes por um valor especificado por você.
Por exemplo, suponha que você tenha definido replaceConfig como "[email-address]"
para todos os infoTypes EMAIL_ADDRESS e a seguinte string seja enviada à
Proteção de Dados Sensíveis:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Esta será a string retornada:
My name is Alicia Abernathy, and my email address is [email-address].
O exemplo e o código JSON a seguir em várias linguagens mostram como formar a solicitação de API e o que a API DLP retorna:
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.
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.
REST
Consulte o Início rápido do JSON para ver mais informações sobre o uso da API DLP com o JSON.
Entrada 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"
}
]
}
}
Saída 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"
}
]
}
}
redactConfig
Especificar redactConfig edita um determinado valor removendo-o completamente. A mensagem redactConfig não tem argumentos; especificá-los permite a transformação deles.
Por exemplo, suponha que você tenha especificado redactConfig para todos os infoTypes EMAIL_ADDRESS e a seguinte string seja enviada à Proteção de Dados Sensíveis:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Esta será a string retornada:
My name is Alicia Abernathy, and my email address is .
Os exemplos a seguir mostram como formar a solicitação de API e o que a API DLP retorna:
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:
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"
}
]
}
}
Saída 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"
}
]
}
}
characterMaskConfig
Definir characterMaskConfig como um objeto CharacterMaskConfig mascara parcialmente uma string substituindo um determinado número de caracteres por um caractere fixo. O mascaramento pode iniciar pelo começo ou fim da string. Essa transformação também funciona com tipos de números, como inteiros longos.
O objeto CharacterMaskConfig tem vários argumentos próprios:
maskingCharacter: o caractere a ser usado para mascarar cada caractere de um valor confidencial. Por exemplo, especifique um asterisco (*) ou hash (#) para mascarar uma sequência numérica, como número de cartão de crédito.numberToMask: o número de caracteres a serem mascarados. Se você não definir esse valor, todos os caracteres correspondentes serão mascarados.reverseOrder: se os caracteres precisarem ser mascarados na ordem inversa. DefinirreverseOrdercomo verdadeiro faz com que os caracteres nos valores correspondentes sejam mascarados do final até o início do valor. Se for definido como falso, o mascaramento começará do início do valor.charactersToIgnore[]: um ou mais caracteres a serem ignorados ao mascarar valores. Por exemplo, especifique um hífen para manter os hifens inalterados ao mascarar um número de telefone. Também é possível especificar um grupo de caracteres comuns (CharsToIgnore) a serem ignorados no mascaramento.
Por exemplo, suponha que você tenha definido characterMaskConfig para mascarar com "#" os infoTypes EMAIL_ADDRESS, exceto os caracteres "." e "@". Se a string a seguir for enviada à Proteção de dados sensíveis:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Esta será a string retornada:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
Confira a seguir exemplos de como usar a API DLP para desidentificar dados sensíveis com técnicas de mascaramento.
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.