O gerenciamento adequado dos dados confidenciais armazenados em um repositório de armazenamento começa com a classificação de armazenamento. Isso significa identificar a localização dos dados confidenciais no repositório, o tipo dos dados confidenciais e como eles estão sendo usados. Esse conhecimento pode ajudar você a definir adequadamente o controle de acesso e as permissões de compartilhamento, além de fazer parte de um plano de monitoramento contínuo.
A Proteção de dados sensíveis pode detectar e classificar dados sensíveis armazenados em um local do Cloud Storage, um tipo do Datastore ou uma tabela do BigQuery. Ao verificar arquivos em locais do Cloud Storage, a Proteção de dados sensíveis é compatível com a verificação de arquivos binários, de texto, de imagem, do Microsoft Word, do Microsoft Excel, do Microsoft PowerPoint, de PDF e do Apache Avro. Os arquivos de tipos não reconhecidos são verificados como arquivos binários. Para mais informações sobre os tipos de arquivos aceitos, consulte Tipos de arquivos aceitos.
Para inspecionar dados sensíveis de armazenamento e bancos de dados, especifique o local e o tipo de dados sensíveis que a Proteção de dados sensíveis precisa procurar. A Proteção de dados sensíveis inicia um job que inspeciona os dados no local especificado e disponibiliza detalhes sobre os infoTypes encontrados no conteúdo, os valores de probabilidade e muito mais.
É possível configurar a inspeção de armazenamento e bancos de dados usando a proteção de dados sensíveis no console do Google Cloud, pela API RESTful DLP ou de maneira programática usando uma biblioteca de cliente de proteção de dados sensíveis em uma das várias linguagens.
Este tópico inclui:
- Práticas recomendadas para configurar verificações de repositórios de armazenamento e bancos de dados do Google Cloud.
- Instruções para configurar uma verificação de inspeção usando a proteção de dados sensíveis no console do Google Cloud e, opcionalmente, programar verificações periódicas de inspeção repetidas.
- JSON e amostras de código para cada tipo de repositório de armazenamento do Google Cloud: (Cloud Storage, Firestore no modo Datastore e BigQuery).
- Uma visão geral detalhada das opções de configuração dos jobs de verificação.
- Instruções sobre como recuperar os resultados da verificação e como gerenciar os jobs de verificação criados com base em cada solicitação bem-sucedida.
Práticas recomendadas
Como identificar e priorizar a verificação
É importante avaliar primeiro os recursos e especificar quais deles têm a maior prioridade de verificação. Ao começar, é possível ter um grande acúmulo de dados que precisam de classificação e será impossível verificá-los imediatamente. Escolha inicialmente os dados que representam o maior risco potencial, por exemplo, dados que são acessados com frequência, amplamente acessíveis ou desconhecidos.
Garanta que a Proteção de Dados Sensíveis possa acessar seus dados
A Proteção de dados sensíveis precisa acessar os dados a serem verificados. Verifique se a conta de serviço da Proteção de dados sensíveis tem permissão para ler seus recursos.
Limite o escopo nas primeiras verificações
Para ter melhores resultados, limite o escopo dos seus primeiros jobs em vez de verificar todos os dados. Comece com uma tabela, um bucket ou alguns arquivos e use uma amostragem. Ao limitar o escopo das
primeiras verificações, é possível determinar melhor
quais detectores serão ativados e quais regras de
exclusão podem ser necessárias para
reduzir os falsos positivos. Assim, suas descobertas serão mais significativas. Evite ativar todos os infoTypes se você não precisar de todos eles, pois os falsos positivos ou as descobertas inúteis podem dificultar a avaliação do seu risco. Embora sejam úteis em determinados cenários, alguns infoTypes, como DATE
, TIME
, DOMAIN_NAME
e URL
, correspondem a uma ampla variedade de descobertas e podem não ser úteis para grandes verificações de dados.
Ao fazer a amostragem de um arquivo estruturado, como CSV, TSV ou Avro, verifique se o tamanho da amostra é grande o suficiente para cobrir o cabeçalho completo do arquivo e uma linha de dados. Para mais informações, consulte Como verificar arquivos estruturados no modo de análise estruturada.
Programar as verificações
Use os gatilhos de jobs da Proteção de dados sensíveis para executar verificações automaticamente e gerar descobertas diárias, semanais ou trimestrais. Essas verificações também podem ser configuradas para inspecionar apenas os dados que foram alterados desde a última verificação, o que pode economizar tempo e reduzir custos. Executar verificações regularmente pode ajudar você a identificar tendências ou anomalias nos resultados da verificação.
Latência do job
Não há objetivos de nível de serviço (SLO) garantidos para trabalhos e gatilhos de trabalho. A latência é afetada por vários fatores, incluindo a quantidade de dados a serem verificados, o repositório de armazenamento que está sendo verificado, o tipo e o número de infoTypes que você está verificando, a região em que o job é processado e os recursos de computação disponíveis nessa região. Portanto, a latência dos jobs de inspeção não pode ser determinada com antecedência.
Para ajudar a reduzir a latência do job, tente o seguinte:
- Se a amostragem estiver disponível para o job ou gatilho, ative-a.
Evite ativar infoTypes desnecessários. Embora as informações a seguir sejam úteis em determinados cenários, esses infoTypes podem fazer com que as solicitações sejam executadas de forma muito mais lenta do que as que não os incluem:
PERSON_NAME
FEMALE_NAME
MALE_NAME
FIRST_NAME
LAST_NAME
DATE_OF_BIRTH
LOCATION
STREET_ADDRESS
ORGANIZATION_NAME
Sempre especifique explicitamente os infoTypes. Não use uma lista de infoTypes vazias.
Se possível, use uma região de processamento diferente.
Se você ainda tiver problemas de latência com jobs depois de tentar essas técnicas,
use solicitações
content.inspect
ou
content.deidentify
em vez de jobs. Esses métodos estão incluídos no contrato de nível de serviço. Para mais informações, consulte o Contrato de nível de serviço da Proteção de dados sensíveis.
Antes de começar
As instruções fornecidas neste tópico pressupõem o seguinte:
Você ativou o faturamento.
Você ativou a proteção de dados sensíveis.
A classificação de armazenamento requer o seguinte escopo OAuth: https://www.googleapis.com/auth/cloud-platform
. Para mais informações, consulte
Como autenticar na API DLP.
Inspecionar um local do Cloud Storage
É possível configurar uma inspeção de proteção de dados sensíveis de um local do Cloud Storage usando o console do Google Cloud, a API DLP por meio de solicitações REST ou RPC ou programaticamente em vários idiomas usando uma biblioteca de cliente. Para informações sobre os parâmetros incluídos nas amostras de código e JSON a seguir, consulte "Configurar inspeção de armazenamento", mais adiante neste tópico.
A Proteção de dados sensíveis depende de extensões de arquivo e tipos de mídia (MIME) para identificar os tipos
de arquivos a serem verificados e os modos de verificação a serem
aplicados. Por exemplo, a Proteção de dados sensíveis verifica um arquivo .txt
no
modo de texto simples, mesmo que o arquivo seja estruturado como um arquivo CSV, que normalmente é
verificado no modo de análise estruturada.
Para configurar um job de verificação de um bucket do Cloud Storage usando a Proteção de Dados Sensíveis:
Console
Esta seção descreve como inspecionar um bucket ou uma pasta do Cloud Storage. Se você também quiser que a Proteção de dados sensíveis crie uma cópia desidentificada dos seus dados, consulte Desidentificar dados sensíveis armazenados no Cloud Storage usando o console do Google Cloud.
Na seção "Proteção de dados sensíveis" do console do Google Cloud, acesse a página Criar job ou gatilho de job.
Insira as informações de job da Proteção de dados sensíveis e clique em Continuar para concluir cada etapa:
Na Etapa 1: escolher dados de entrada, nomeie o job digitando um valor no campo Nome. Em Local, escolha o Cloud Storage no menu Tipo de armazenamento e insira o local dos dados a serem verificados. A seção Amostragem é pré-configurada para executar uma verificação de amostra com base nos seus dados. Você pode ajustar o campo Porcentagem de objetos verificados dentro do bucket para salvar recursos se você tiver uma grande quantidade de dados. Para mais detalhes, consulte Escolher dados de entrada.
(Opcional) Na Etapa 2: configurar a detecção, é possível configurar os tipos de dados a serem procurados, chamados "infoTypes". Selecione na lista de infoTypes predefinidos ou selecione um modelo, se houver. Para mais detalhes, consulte Configurar a detecção.
(Opcional) Na Etapa 3: adicionar ações, certifique-se de que a opção Notificar por e-mail esteja ativada.
Ative Salvar no BigQuery para publicar as descobertas da Proteção de dados confidenciais em uma tabela do BigQuery. Preencha o seguinte:
- Em ID do projeto, digite o ID do projeto em que seus resultados são armazenados.
- Em ID do conjunto de dados, digite o nome do conjunto de dados que armazena os resultados.
- (Opcional) Em ID da tabela, digite o nome da tabela que armazena seus resultados. Se nenhum ID de tabela for especificado, um nome padrão será atribuído a uma nova tabela semelhante ao seguinte:
dlp_googleapis_[DATE]_1234567890
, em que[DATE]
representa a data em que a verificação é executada. Se você especificar uma tabela existente, as descobertas serão anexadas a ela. - (Opcional) Ative a opção Incluir citação para incluir as strings que correspondem a um detector de infoType. As citações são potencialmente confidenciais. Por padrão, a Proteção de dados sensíveis não as inclui nas descobertas.
Quando os dados são gravados em uma tabela do BigQuery, o uso do faturamento e da cota é aplicado ao projeto que contém a tabela de destino.
Se você quiser criar uma cópia desidentificada dos seus dados, ative a opção Fazer uma cópia desidentificada. Para mais informações, consulte Desidentificar dados sensíveis armazenados no Cloud Storage usando o console do Google Cloud.
Também é possível salvar os resultados no Pub/Sub, no Security Command Center, no Data Catalog e no Cloud Monitoring. Para mais detalhes, consulte Adicionar ações.
(Opcional) Na Etapa 4: programar, para executar a verificação apenas uma vez, deixe o menu definido como Nenhum. Para programar a execução periódica das verificações, clique em Criar um gatilho para executar o job periodicamente. Para mais detalhes, consulte Programar.
Clique em Criar.
Depois que o job de Proteção de dados sensíveis for concluído, você vai ser redirecionado para a página de detalhes do job e notificado por e-mail. É possível conferir os resultados da inspeção na página de detalhes do job.
(Opcional) Se você optou por publicar as descobertas da Proteção de dados sensíveis no BigQuery, na página Detalhes do job, clique em Visualizar descobertas no BigQuery para abrir a tabela na UI da Web do BigQuery. Lá, é possível consultar a tabela e analisar suas descobertas. Para mais informações sobre como consultar seus resultados no BigQuery, consulte Como consultar as descobertas da Proteção de dados confidenciais no BigQuery.
Protocolo
Confira a seguir o JSON de exemplo que pode ser enviado em uma solicitação POST para o endpoint REST da Proteção de dados sensíveis especificado. Este exemplo demonstra como usar a API DLP para inspecionar os buckets do Cloud Storage. Para mais informações sobre os parâmetros incluídos na solicitação, consulte "Configurar inspeção de armazenamento", mais adiante neste tópico.
É possível testar isso rapidamente na APIs Explorer na página de referência para content.inspect
:
Lembre-se de que uma solicitação bem-sucedida, mesmo nas APIs Explorer, criará um novo job de verificação. Para informações sobre como controlar jobs de verificação, consulte "Recuperar resultados de inspeção", mais adiante neste tópico. Para informações gerais sobre como usar JSON para enviar solicitações à API DLP, consulte o guia de início rápido do JSON.
Entrada JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"1073741824"
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z",
"endTime":"2018-01-05T04:45:04.240912125Z"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]"
}
}
}
}
]
}
}
Saída JSON:
{
"name":"projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type":"INSPECT_JOB",
"state":"PENDING",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"1073741824"
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z",
"endTime":"2018-01-05T04:45:04.240912125Z"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"minLikelihood":"LIKELY",
"limits":{
},
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]",
"tableId":"[NEW-TABLE-ID]"
}
}
}
}
]
}
}
},
"createTime":"2018-11-07T18:01:14.225Z"
}
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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.
Inspecionar um tipo do Datastore
É possível configurar uma inspeção de um tipo do Datastore usando o Console do Google Cloud, a API DLP por meio de solicitações REST ou RPC ou programaticamente em várias linguagens usando uma biblioteca de cliente.
Para configurar um job de verificação de um tipo do Datastore usando a proteção de dados sensíveis:
Console
Para configurar um job de verificação de um tipo do Datastore usando a Proteção de dados sensíveis:
Na seção "Proteção de dados sensíveis" do console do Google Cloud, acesse a página Criar job ou gatilho de job.
Insira as informações do job de proteção de dados sensíveis e clique em Continuar para concluir cada etapa:
Na Etapa 1: escolher dados de entrada, insira os identificadores do projeto, o namespace (opcional) e o tipo que você quer verificar. Para mais detalhes, consulte Escolher dados de entrada.
(Opcional) Na Etapa 2: configurar a detecção, é possível configurar os tipos de dados a serem procurados, chamados "infoTypes". Selecione na lista de infoTypes predefinidos ou selecione um modelo, se houver. Para mais detalhes, consulte Configurar a detecção.
(Opcional) Na Etapa 3: adicionar ações, certifique-se de que a opção Notificar por e-mail esteja ativada.
Ative Salvar no BigQuery para publicar as descobertas da Proteção de dados confidenciais em uma tabela do BigQuery. Preencha o seguinte:
- Em ID do projeto, digite o ID do projeto em que seus resultados são armazenados.
- Em ID do conjunto de dados, digite o nome do conjunto de dados que armazena os resultados.
- (Opcional) Em ID da tabela, digite o nome da tabela que armazena seus resultados. Se nenhum ID de tabela for especificado, um nome padrão será atribuído a uma nova tabela semelhante ao seguinte:
dlp_googleapis_[DATE]_1234567890
. Se você especificar uma tabela atual, as descobertas serão anexadas a ela.
Quando os dados são gravados em uma tabela do BigQuery, o uso do faturamento e da cota é aplicado ao projeto que contém a tabela de destino.
Para mais informações sobre as outras ações listadas, consulte Adicionar ações.
(Opcional) Na Etapa 4: programar, configure um período de tempo ou uma programação, selecionando Especificar período de tempo ou Criar um gatilho para executar o job em uma programação periódica. Para mais informações, consulte Programar.
Clique em Criar.
Depois que o job de Proteção de dados sensíveis for concluído, você vai ser redirecionado para a página de detalhes do job e notificado por e-mail. É possível ver os resultados da inspeção na página de detalhes do job.
(Opcional) Se você optou por publicar as descobertas da Proteção de dados sensíveis no BigQuery, na página Detalhes do job, clique em Visualizar descobertas no BigQuery para abrir a tabela na UI da Web do BigQuery. Lá, é possível consultar a tabela e analisar suas descobertas. Para mais informações sobre como consultar seus resultados no BigQuery, consulte Como consultar as descobertas da Proteção de dados confidenciais no BigQuery.
Protocolo
Veja a seguir o JSON de exemplo que pode ser enviado em uma solicitação POST para o ponto de extremidade REST especificado da API DLP. Este JSON de exemplo demonstra como usar a API DLP para inspecionar tipos do Datastore. Para mais informações sobre os parâmetros incluídos na solicitação, consulte "Configurar inspeção de armazenamento", mais adiante neste tópico.
É possível testar isso rapidamente na APIs Explorer na página de referência para dlpJobs.create
:
Lembre-se de que uma solicitação bem-sucedida, mesmo nas APIs Explorer, criará um novo job de verificação. Para informações sobre como controlar jobs de verificação, consulte Recuperar resultados de inspeção, mais adiante neste tópico. Para informações gerais sobre como usar JSON para enviar solicitações à API DLP, consulte o guia de início rápido do JSON.
Entrada JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"datastoreOptions":{
"kind":{
"name":"Example-Kind"
},
"partitionId":{
"namespaceId":"[NAMESPACE-ID]",
"projectId":"[PROJECT-ID]"
}
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
}
}
}
}
]
}
}
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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.
Inspecionar uma tabela do BigQuery
É possível configurar a inspeção de uma tabela do BigQuery usando a Proteção de dados sensíveis com solicitações REST ou de maneira programática em várias linguagens usando uma biblioteca de cliente.
Para configurar um job de verificação de uma tabela do BigQuery usando a Proteção de dados confidenciais:
Console
Para configurar um job de verificação de uma tabela do BigQuery usando a Proteção de dados confidenciais:
Na seção "Proteção de dados sensíveis" do console do Google Cloud, acesse a página Criar job ou gatilho de job.
Insira as informações de job da Proteção de dados sensíveis e clique em Continuar para concluir cada etapa:
Na Etapa 1: escolher dados de entrada, nomeie o job digitando um valor no campo Nome. Em Local, escolha o BigQuery no menu Tipo de armazenamento e insira as informações da tabela a ser verificada.
A seção Amostragem é pré-configurada para executar uma verificação de amostra com base nos seus dados. É possível ajustar os campos Limitar linhas por e Número máximo de linhas para economizar recursos se você tiver uma grande quantidade de dados. Para mais detalhes, consulte Escolher dados de entrada.
(Opcional) Se você quiser vincular cada descoberta à linha que a contém, defina o campo Campos de identificação.
Insira os nomes das colunas que identificam de forma exclusiva cada linha na tabela. Se necessário, use a notação de ponto para especificar campos aninhados. Você pode adicionar quantos campos quiser.
Também é necessário ativar a ação Save to BigQuery para exportar as descobertas para o BigQuery. Quando as descobertas são exportadas para o BigQuery, cada uma delas contém os respectivos valores dos campos de identificação. Para mais informações, consulte
identifyingFields
.(Opcional) Na Etapa 2: configurar a detecção, é possível configurar os tipos de dados a serem procurados, chamados "infoTypes". Selecione na lista de infoTypes predefinidos ou selecione um modelo, se houver. Para mais detalhes, consulte Configurar a detecção.
(Opcional) Na Etapa 3: adicionar ações, certifique-se de que a opção Notificar por e-mail esteja ativada.
Ative Salvar no BigQuery para publicar as descobertas da Proteção de dados confidenciais em uma tabela do BigQuery. Preencha o seguinte:
- Em ID do projeto, digite o ID do projeto em que seus resultados são armazenados.
- Em ID do conjunto de dados, digite o nome do conjunto de dados que armazena os resultados.
- (Opcional) Em ID da tabela, digite o nome da tabela que armazena seus resultados. Se nenhum ID de tabela for especificado, um nome padrão será atribuído a uma nova tabela semelhante ao seguinte:
dlp_googleapis_[DATE]_1234567890
. Se você especificar uma tabela atual, as descobertas serão anexadas a ela.
Quando os dados são gravados em uma tabela do BigQuery, o uso do faturamento e da cota é aplicado ao projeto que contém a tabela de destino.
Também é possível salvar os resultados no Pub/Sub, Security Command Center e Data Catalog. Para mais detalhes, consulte Adicionar ações.
(Opcional) Na Etapa 4: programar, para executar a verificação apenas uma vez, deixe o menu definido como Nenhum. Para programar a execução periódica das verificações, clique em Criar um gatilho para executar o job periodicamente. Para mais detalhes, consulte Programar.
Clique em Criar.
Depois que o job de Proteção de dados sensíveis for concluído, você vai ser redirecionado para a página de detalhes do job e notificado por e-mail. É possível ver os resultados da inspeção na página de detalhes do job.
(Opcional) Se você optou por publicar as descobertas da Proteção de dados sensíveis no BigQuery, na página Detalhes do job, clique em Visualizar descobertas no BigQuery para abrir a tabela na UI da Web do BigQuery. Lá, é possível consultar a tabela e analisar suas descobertas. Para mais informações sobre como consultar seus resultados no BigQuery, consulte Como consultar as descobertas da Proteção de dados confidenciais no BigQuery.
Protocolo
Veja a seguir o JSON de exemplo que pode ser enviado em uma solicitação POST para o ponto de extremidade REST especificado da API DLP. Este JSON de exemplo demonstra como usar a API DLP para inspecionar tabelas do BigQuery. Para mais informações sobre os parâmetros incluídos na solicitação, consulte "Configurar inspeção de armazenamento", mais adiante neste tópico.É possível testar isso rapidamente na APIs Explorer na página de referência para dlpJobs.create
:
Lembre-se de que uma solicitação bem-sucedida, mesmo nas APIs Explorer, criará um novo job de verificação. Para informações sobre como controlar jobs de verificação, consulte "Recuperar resultados de inspeção", mais adiante neste tópico. Para informações gerais sobre como usar JSON para enviar solicitações à API DLP, consulte o guia de início rápido do JSON.
Entrada JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"bigQueryOptions":{
"tableReference":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
},
"identifyingFields":[
{
"name":"id"
}
]
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z ",
"endTime":"2018-01-05T04:45:04.240912125Z "
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
},
"outputSchema": "BASIC_COLUMNS"
}
}
}
]
}
}
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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.
Configurar a inspeção de armazenamento
Para inspecionar um local do Cloud Storage, um tipo do Datastore ou uma tabela do BigQuery, envie uma solicitação ao método projects.dlpJobs.create
da API DLP que contenha pelo menos o local dos dados a serem verificados e o que verificar. Além desses parâmetros obrigatórios, também é possível especificar em que local gravar os resultados da verificação, os limites de tamanho e de probabilidade, entre outros. Uma solicitação bem-sucedida resulta na criação de uma instância do objeto DlpJob
, que discutiremos em "Recuperar os resultados da inspeção".
Veja as opções de configuração disponíveis resumidas abaixo:
Objeto
InspectJobConfig
: contém as informações de configuração do job de inspeção. Observe que o objetoInspectJobConfig
também é usado pelo objetoJobTriggers
para programar a criação deDlpJob
. Esse objeto inclui:Objeto
StorageConfig
: obrigatório. Contém detalhes sobre o repositório de armazenamento a ser verificado:Um dos itens a seguir precisa ser incluído no objeto
StorageConfig
, dependendo do tipo de repositório de armazenamento que está sendo verificado:Objeto
CloudStorageOptions
: contém informações sobre o bucket do Cloud Storage a ser verificado.Objeto
DatastoreOptions
: contém informações sobre o conjunto de dados do Datastore a ser verificado.Objeto
BigQueryOptions
: contém informações sobre a tabela do BigQuery a ser verificada e, se você quiser, os campos de identificação. Esse objeto também ativa a amostragem dos resultados. Para mais informações, consulte Como ativar a amostragem de resultados abaixo.Objeto
TimespanConfig
: opcional. Especifica o período dos itens a serem incluídos na verificação.
Objeto
InspectConfig
: obrigatório. Especifica o que verificar, como valores infoTypes e probabilidade .- Objetos
InfoType
: obrigatórios. Um ou mais valores de infoType a serem verificados. - Enumeração
Likelihood
: opcional. Quando definida, a Proteção de dados sensíveis só retorna descobertas iguais ou acima desse limite de probabilidade. Se for omitida, o valor padrão seráPOSSIBLE
. - Objeto
FindingLimits
: opcional. Quando definido, esse objeto permite especificar um limite para o número de descobertas retornadas. - Parâmetro
includeQuote
: opcional. O padrão éfalse
. Quando definido comotrue
, cada descoberta inclui uma citação contextual dos dados que a acionaram. - Parâmetro
excludeInfoTypes
: opcional. O padrão éfalse
. Quando definido comotrue
, os resultados da verificação excluem as informações de tipo das descobertas. - Objetos
CustomInfoType
: um ou mais infoTypes personalizados criados pelo usuário. Para mais informações sobre a criação de infoTypes personalizados, consulte Como criar detectores de infoType personalizados.
- Objetos
String
inspectTemplateName
: opcional. Especifica um modelo a ser usado para preencher valores padrão no objetoInspectConfig
. Se você já tiver especificadoInspectConfig
, os valores do modelo serão mesclados.Objetos
Action
: opcionais. Uma ou mais ações a serem executadas na conclusão do job. Cada ação é executada na ordem em que está listada. É aqui que você especifica em que local gravar os resultados ou se quer publicar uma notificação em um tópico do Pub/Sub.
jobId
: opcional. Um identificador para o job retornado pela Proteção de dados sensíveis. SejobId
for omitido ou estiver vazio, o sistema criará um ID para o job. Se especificado, o job receberá esse valor de ID. O ID do job precisa ser exclusivo e pode conter letras maiúsculas e minúsculas, números e hifens. Isto é, ele precisa corresponder à seguinte expressão regular:[a-zA-Z\\d-]+
.
Limitar a quantidade de conteúdo inspecionado
Se você estiver verificando tabelas do BigQuery ou buckets do Cloud Storage, a Proteção de dados sensíveis inclui uma maneira de verificar um subconjunto do conjunto de dados. Esse procedimento pode fornecer uma amostra dos resultados da verificação sem incorrer nos custos potenciais da verificação de um conjunto de dados inteiro.
As seções a seguir contêm informações sobre como limitar o tamanho das verificações do Cloud Storage e do BigQuery.
Limitar verificações do Cloud Storage
Para ativar a amostragem no Cloud Storage, limite a quantidade de dados verificados. Você pode instruir a API DLP a verificar apenas os arquivos com um determinado tamanho, apenas determinados tipos de arquivos e apenas uma determinada porcentagem do número total de arquivos no conjunto de arquivos de entrada. Para fazer isso, especifique os campos opcionais a seguir em CloudStorageOptions
:
bytesLimitPerFile
: define o número máximo de bytes a serem verificados em um arquivo. Se o tamanho de um arquivo verificado for maior que esse valor, o restante dos bytes será omitido. A definição desse campo não afeta determinados tipos de arquivo. Para mais informações, consulte Limites de bytes verificados por arquivo.fileTypes[]
: lista oFileTypes
a ser incluído na verificação. Pode ser definido como um ou mais dos tipos enumerados a seguir:filesLimitPercent
: limita o número de arquivos para verificação à porcentagem especificada na entradaFileSet
. A especificação de0
ou100
aqui significa que não há limite.sampleMethod
: como criar bytes de amostra se nem todos forem verificados. A especificação desse valor só é relevante quando usada em conjunto combytesLimitPerFile
. Se não for especificado, a verificação começará de cima para baixo. Esse campo pode ser definido como um destes dois valores:TOP
: a verificação começa de cima para baixo.RANDOM_START
: para cada arquivo maior que o tamanho especificado embytesLimitPerFile
, escolha aleatoriamente o deslocamento para iniciar a verificação. Os bytes verificados são contíguos.
Os exemplos a seguir demonstram o uso da API DLP para verificar um subconjunto de 90% de um bucket do Cloud Storage em busca de nomes de pessoas. A verificação começa em um local aleatório no conjunto de dados e inclui apenas arquivos de texto com menos de 200 bytes.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"200",
"fileTypes":[
"TEXT_FILE"
],
"filesLimitPercent":90,
"sampleMethod":"RANDOM_START"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"excludeInfoTypes":true,
"includeQuote":true,
"minLikelihood":"POSSIBLE"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"testingdlp"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
Depois de enviar a entrada JSON em uma solicitação POST para o endpoint especificado, um job de proteção de dados sensíveis é criado, e a API envia a resposta a seguir.
Saída JSON:
{
"name":"projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type":"INSPECT_JOB",
"state":"PENDING",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/*"
},
"bytesLimitPerFile":"200",
"fileTypes":[
"TEXT_FILE"
],
"sampleMethod":"TOP",
"filesLimitPercent":90
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
},
"includeQuote":true,
"excludeInfoTypes":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]",
"tableId":"[TABLE-ID]"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
},
"createTime":"2018-05-30T22:22:08.279Z"
}
Limitar as verificações do BigQuery
Para ativar a amostragem no BigQuery, limite a quantidade de dados verificados e especifique os campos opcionais a seguir em BigQueryOptions
:
rowsLimit
: o número máximo de linhas a serem verificadas. Se a tabela tiver mais linhas do que esse valor, o restante delas será omitido. Se não for definido ou se for definido como 0, todas as linhas serão verificadas.rowsLimitPercent
: a porcentagem máxima de linhas a serem verificadas (entre 0 e 100). As linhas restantes são omitidas. Definir esse valor como 0 ou 100 significa que não há limite. O padrão é 0. Apenas um derowsLimit
erowsLimitPercent
pode ser especificado.sampleMethod
: como criar linhas de amostra se nem todas forem verificadas. Se não for especificado, a verificação começará de cima para baixo. Esse campo pode ser definido como um destes dois valores:TOP
: a verificação começa de cima para baixo.RANDOM_START
: a verificação começa a partir de uma linha selecionada aleatoriamente.
excludedFields
: campos de tabela que identificam exclusivamente as colunas a serem excluídas da leitura. Isso pode ajudar a reduzir a quantidade de dados verificados e reduzir o custo geral de um job de inspeção.includedFields
: campos de tabela que identificam exclusivamente linhas específicas na tabela a ser verificada.
Outro recurso útil para limitar os dados verificados, especialmente ao verificar tabelas particionadas, é TimespanConfig
.
TimespanConfig
permite filtrar as linhas da tabela do BigQuery fornecendo valores relativos ao horário de início e término para definir um período. A Proteção de Dados Sensíveis
só verifica as linhas que contêm um carimbo de data/hora nesse período.
Os exemplos a seguir demonstram como usar a API DLP para verificar um subconjunto de 1.000 linhas em uma tabela do BigQuery. A verificação começa a partir de uma linha aleatória.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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 para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a 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]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"bigQueryOptions":{
"tableReference":{
"projectId":"bigquery-public-data",
"datasetId":"usa_names",
"tableId":"usa_1910_current"
},
"rowsLimit":"1000",
"sampleMethod":"RANDOM_START",
"includedFields":[
{
"name":"name"
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"FIRST_NAME"
}
],
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"testingdlp",
"tableId":"bqsample3"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
Depois de enviar a entrada JSON em uma solicitação POST para o endpoint especificado, um job de proteção de dados sensíveis é criado, e a API envia a resposta a seguir.
Saída JSON:
{
"name": "projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type": "INSPECT_JOB",
"state": "PENDING",
"inspectDetails": {
"requestedOptions": {
"snapshotInspectTemplate": {},
"jobConfig": {
"storageConfig": {
"bigQueryOptions": {
"tableReference": {
"projectId": "bigquery-public-data",
"datasetId": "usa_names",
"tableId": "usa_1910_current"
},
"rowsLimit": "1000",
"sampleMethod": "RANDOM_START",
"includedFields": [
{
"name": "name"
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "FIRST_NAME"
}
],
"limits": {},
"includeQuote": true
},
"actions": [
{
"saveFindings": {
"outputConfig": {
"table": {
"projectId": "[PROJECT-ID]",
"datasetId": "[DATASET-ID]",
"tableId": "bqsample"
},
"outputSchema": "BASIC_COLUMNS"
}
}
}
]
}
},
"result": {}
},
"createTime": "2022-11-04T18:53:48.350Z"
}
Quando a execução do job de inspeção termina e os resultados são processados pelo BigQuery, eles ficam disponíveis na tabela de saída especificada do BigQuery. Para mais informações sobre como recuperar os resultados da inspeção, consulte a próxima seção.
Recuperar os resultados da inspeção
É possível recuperar um resumo de DlpJob
usando o método projects.dlpJobs.get
. O DlpJob
retornado inclui um objeto InspectDataSourceDetails
, que contém um resumo da configuração do job (RequestedOptions
) e um resumo do resultado do job (Result
). O resumo dos resultados inclui:
processedBytes
: o tamanho total em bytes que foram processados.totalEstimatedBytes
: estimativa do número de bytes restantes a processar.- Objeto
InfoTypeStatistics
: as estatísticas de quantas instâncias referentes a cada infoType foram encontradas durante o job de inspeção.
Para ver os resultados completos da inspeção, você tem várias opções. Dependendo da Action
que você escolheu, os jobs de inspeção são:
- Salvos no BigQuery (o objeto
SaveFindings
) na tabela especificada. Antes de ver ou analisar os resultados, use o métodoprojects.dlpJobs.get
descrito abaixo para conferir se o job foi concluído. É possível especificar um esquema para armazenar descobertas usando o objetoOutputSchema
. - Publicado em um tópico do Pub/Sub (o objeto
PublishToPubSub
). É preciso conceder ao tópico direitos de acesso de publicação à conta de serviço da Proteção de dados sensíveis que executa oDlpJob
responsável pelo envio das notificações. - Publicado no Security Command Center.
- Publicado no Data Catalog.
- Publicado no Cloud Monitoring.
Para ajudar a filtrar grandes quantidades de dados gerados pela Proteção de dados sensíveis, use ferramentas integradas do BigQuery para executar análises avançadas de SQL ou ferramentas como o Looker Studio para gerar relatórios. Para mais informações, consulte Como analisar e gerar relatórios sobre as descobertas da proteção de dados sensíveis. Para algumas consultas de amostra, veja Como consultar descobertas no BigQuery.
Se você enviar uma solicitação de inspeção do repositório de armazenamento para a Proteção de Dados Sensíveis, uma instância do objeto
DlpJob
será criada e executada em resposta. Esses jobs podem levar segundos, minutos ou horas para serem executados, dependendo do tamanho dos dados e da configuração que você especificou. Caso você opte por publicar em um tópico do Pub/Sub, (especificando PublishToPubSub
em Action
), as notificações serão enviadas automaticamente para o tópico com o nome especificado quando o status do job for alterado. O nome do tópico do Pub/Sub é especificado no formato projects/[PROJECT-ID]/topics/[PUBSUB-TOPIC-NAME]
.
Você tem controle total sobre os jobs criados, incluindo os métodos de gerenciamento a seguir:
- Método
projects.dlpJobs.cancel
: interrompe um job que está em execução. O servidor faz várias tentativas de cancelar o job, mas o sucesso não é garantido. O job e a configuração dele existirão até que você os exclua com o método a seguir. - Método
projects.dlpJobs.delete
: exclui um job e a respectiva configuração. - Método
projects.dlpJobs.get
: recupera um único job e retorna o status, a respectiva configuração e, se o job tiver sido concluído, o resumo dos resultados. - Método
projects.dlpJobs.list
: recupera uma lista de todos os jobs e inclui a capacidade de filtrar os resultados.
Próximas etapas
- Para saber mais sobre a criação de jobs de inspeção de armazenamento, consulte Como criar e programar jobs de inspeção de proteção de dados sensíveis.
- Saiba mais sobre como criar uma cópia desidentificada de dados no armazenamento.
- Saiba mais sobre os tipos de arquivo compatíveis ao inspecionar buckets do Cloud Storage. Consulte Tipos de arquivo compatíveis.