# Como garantir conformidade LGPD ao usar serviços de cloud para armazenar CPFs

> Guia prático para garantir conformidade com a LGPD ao armazenar dados de CPF em serviços de cloud como AWS, Azure e GCP.

**Publicado:** 24/10/2025
**Autor:** Redação CPFHub.io
**URL:** https://cpfhub.io/blog/conformidade-lgpd-cloud-armazenar-cpf

---

Para garantir conformidade com a LGPD ao armazenar CPFs na cloud, é preciso combinar criptografia em repouso com chave gerenciada pelo cliente (CMK), políticas de acesso com menor privilégio, retenção automática via TTL e auditoria contínua de acessos — além de usar a região brasileira do provedor sempre que possível. A CPFHub.io reduz a superfície de exposição: ao consultar `GET https://api.cpfhub.io/cpf/{CPF}` com `x-api-key` no momento necessário, você evita armazenar o CPF em texto claro e mantém apenas o log da consulta para fins de auditoria. A [ANPD](https://www.gov.br/anpd/) orienta que o princípio da necessidade deve guiar qualquer decisão de armazenamento de dados pessoais.

## Introdução

A migração para a nuvem é uma realidade para a maioria das empresas brasileiras, mas quando os dados armazenados incluem CPFs, a conformidade com a LGPD exige atenção a aspectos que vão além da simples infraestrutura. Localização dos dados, controles de acesso, criptografia, auditoria e contratos com provedores de cloud são elementos que devem ser cuidadosamente avaliados.

---

## Responsabilidade compartilhada na cloud

O modelo de responsabilidade compartilhada é fundamental para entender as obrigações de cada parte:

### Responsabilidade do provedor de cloud

- Segurança física dos data centers.
- Disponibilidade da infraestrutura.
- Isolamento entre clientes.
- Certificações de segurança (ISO 27001, SOC 2).

### Responsabilidade do cliente

- Configuração de segurança dos serviços.
- Controle de acesso aos dados.
- Criptografia de dados de CPF.
- Conformidade com a LGPD.
- Monitoramento e auditoria.

---

## Localização dos dados

A LGPD não proíbe o armazenamento de dados em servidores fora do Brasil, mas a transferência internacional deve seguir as regras do artigo 33. Sempre que possível, utilize regiões brasileiras dos provedores de cloud.

### Configuração de região na AWS

```python
import boto3
import json
from datetime import datetime, timezone

# Forçar uso da região de São Paulo
dynamodb = boto3.resource(
 "dynamodb",
 region_name="sa-east-1" # São Paulo
)

def criar_tabela_cpf_segura():
 """Cria tabela DynamoDB com criptografia e TTL para dados de CPF."""

 tabela = dynamodb.create_table(
 TableName="dados_cpf_protegidos",
 KeySchema=[
 {"AttributeName": "cpf_hash", "KeyType": "HASH"},
 {"AttributeName": "finalidade", "KeyType": "RANGE"}
 ],
 AttributeDefinitions=[
 {"AttributeName": "cpf_hash", "AttributeType": "S"},
 {"AttributeName": "finalidade", "AttributeType": "S"}
 ],
 BillingMode="PAY_PER_REQUEST",
 SSESpecification={
 "Enabled": True,
 "SSEType": "KMS",
 "KMSMasterKeyId": "alias/chave-cpf-protegido"
 },
 Tags=[
 {"Key": "dados-sensiveis", "Value": "true"},
 {"Key": "lgpd-classificacao", "Value": "dados-pessoais"},
 {"Key": "retencao", "Value": "365-dias"}
 ]
 )

 # Habilitar TTL para expiração automática
 client = boto3.client("dynamodb", region_name="sa-east-1")
 client.update_time_to_live(
 TableName="dados_cpf_protegidos",
 TimeToLiveSpecification={
 "Enabled": True,
 "AttributeName": "expira_em"
 }
 )

 return tabela
```

---

## Criptografia em múltiplas camadas

### Criptografia em trânsito

Todas as comunicações com serviços de cloud devem usar TLS 1.2 ou superior. Isso já é padrão na maioria dos SDKs, mas deve ser verificado.

### Criptografia em repouso

Configure criptografia gerenciada pelo cliente (CMK) para dados de CPF:

```python
import boto3
from botocore.exceptions import ClientError

def configurar_bucket_s3_seguro(bucket_name: str):
 """Configura bucket S3 com criptografia e controles para dados de CPF."""

 s3 = boto3.client("s3", region_name="sa-east-1")

 # Criptografia padrão com chave gerenciada pelo cliente
 s3.put_bucket_encryption(
 Bucket=bucket_name,
 ServerSideEncryptionConfiguration={
 "Rules": [{
 "ApplyServerSideEncryptionByDefault": {
 "SSEAlgorithm": "aws:kms",
 "KMSMasterKeyID": "alias/chave-cpf-protegido"
 },
 "BucketKeyEnabled": True
 }]
 }
 )

 # Bloquear acesso público
 s3.put_public_access_block(
 Bucket=bucket_name,
 PublicAccessBlockConfiguration={
 "BlockPublicAcls": True,
 "IgnorePublicAcls": True,
 "BlockPublicPolicy": True,
 "RestrictPublicBuckets": True
 }
 )

 # Habilitar versionamento para auditoria
 s3.put_bucket_versioning(
 Bucket=bucket_name,
 VersioningConfiguration={"Status": "Enabled"}
 )

 # Configurar ciclo de vida para expiração automática
 s3.put_bucket_lifecycle_configuration(
 Bucket=bucket_name,
 LifecycleConfiguration={
 "Rules": [{
 "ID": "expiracao-dados-cpf",
 "Status": "Enabled",
 "Filter": {"Prefix": "dados-cpf/"},
 "Expiration": {"Days": 365},
 "NoncurrentVersionExpiration": {"NoncurrentDays": 30}
 }]
 }
 )

 print(f"[OK] Bucket {bucket_name} configurado com segurança LGPD")
```

---

## Controle de acesso granular

### Política IAM para acesso a dados de CPF

```json
{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Sid": "AcessoDadosCPF",
 "Effect": "Allow",
 "Action": [
 "dynamodb:GetItem",
 "dynamodb:Query"
 ],
 "Resource": "arn:aws:dynamodb:sa-east-1:123456789:table/dados_cpf_protegidos",
 "Condition": {
 "StringEquals": {
 "aws:RequestedRegion": "sa-east-1"
 },
 "Bool": {
 "aws:SecureTransport": "true"
 }
 }
 },
 {
 "Sid": "NegarExportacaoEmMassa",
 "Effect": "Deny",
 "Action": [
 "dynamodb:Scan",
 "dynamodb:ExportTableToPointInTime"
 ],
 "Resource": "arn:aws:dynamodb:sa-east-1:123456789:table/dados_cpf_protegidos"
 }
 ]
}
```

---

## Integração segura com a API do CPFHub.io

Ao consultar a API do [**CPFHub.io**](https://www.cpfhub.io/), armazene a chave de API no gerenciador de segredos do seu provedor de cloud — nunca em variáveis de ambiente em texto claro ou no código-fonte.

```bash
# Armazenar API key no AWS Secrets Manager
aws secretsmanager create-secret \
 --name "cpfhub/api-key" \
 --secret-string "SUA_API_KEY" \
 --region sa-east-1
```

```python
import requests
import boto3

def obter_api_key():
 """Recupera API key do Secrets Manager."""
 client = boto3.client("secretsmanager", region_name="sa-east-1")
 response = client.get_secret_value(SecretId="cpfhub/api-key")
 return response["SecretString"]

def consultar_cpf_cloud(cpf: str) -> dict:
 """Consulta CPF usando credenciais armazenadas de forma segura."""

 api_key = obter_api_key()

 try:
 response = requests.get(
 f"https://api.cpfhub.io/cpf/{cpf}",
 headers={
 "x-api-key": api_key,
 "Accept": "application/json"
 },
 timeout=30
 )

 if response.status_code == 200:
 return response.json()

 except requests.exceptions.Timeout:
 print("[ERROR] Timeout na consulta")

 return {}
```

Teste direto via cURL:

```bash
curl -X GET "https://api.cpfhub.io/cpf/12345678901" \
 -H "x-api-key: SUA_API_KEY" \
 -H "Accept: application/json" \
 --max-time 30
```

---

## Monitoramento e auditoria na cloud

### CloudTrail para rastreamento de acessos

Habilite o AWS CloudTrail para registrar todas as chamadas de API que envolvem recursos com dados de CPF. Configure alertas no CloudWatch para acessos anômalos.

### Métricas de conformidade

Monitore continuamente:

- Número de acessos a tabelas/buckets com dados de CPF.
- Tentativas de acesso negadas.
- Alterações em políticas de IAM relacionadas a dados de CPF.
- Status da criptografia em todos os recursos.
- Dados que se aproximam do prazo de retenção.

---

## Checklist de conformidade para cloud

1. Dados de CPF armazenados em região brasileira (sa-east-1) ou com base legal para transferência internacional.
2. Criptografia em repouso com chave gerenciada pelo cliente (CMK).
3. Criptografia em trânsito (TLS 1.2+) obrigatória.
4. Acesso público bloqueado em todos os recursos.
5. Políticas IAM com princípio do menor privilégio.
6. Exportação em massa bloqueada por política.
7. TTL/ciclo de vida configurado para expiração automática.
8. CloudTrail habilitado com alertas para acessos anômalos.
9. Backups criptografados e com mesma política de retenção.
10. Contrato com provedor de cloud incluindo cláusulas de proteção de dados.

---

## Contratos com provedores de cloud

Verifique se o contrato com seu provedor de cloud inclui:

- Cláusulas de proteção de dados conforme a LGPD.
- Compromisso de notificação de incidentes.
- Direito de auditoria pelo controlador.
- Eliminação de dados ao término do contrato.
- Restrições sobre subcontratação.

---

## Perguntas frequentes

### O que é necessário para implementar validação de CPF neste contexto?
A validação de CPF exige uma chamada à API com o número do documento e a chave de autenticação. A CPFHub.io retorna o status do CPF, nome do titular e data de nascimento em ~900ms, permitindo a verificação em tempo real durante o cadastro ou transação. Combinada com armazenamento seguro na cloud, elimina a necessidade de manter o CPF em texto claro.

### A API CPFHub.io funciona para todos os volumes de consulta?
Sim. O plano gratuito oferece 50 consultas por mês sem cartão de crédito — ideal para testes e projetos pequenos. Para volumes maiores, o plano Pro inclui 1.000 consultas mensais por R$149. Se o limite for ultrapassado, a API não bloqueia: cobra R$0,15 por consulta adicional.

### Como garantir conformidade com a LGPD ao usar uma API de CPF?
Use o CPF apenas para a finalidade declarada ao titular, armazene apenas o necessário (não guarde o CPF cru se um token bastar), implemente controle de acesso aos logs de consulta e documente a base legal para o tratamento. A [ANPD](https://www.gov.br/anpd/) orienta que dados de identificação devem ser tratados com o princípio da necessidade.

### Quanto tempo leva para integrar a API CPFHub.io?
A integração básica leva menos de 30 minutos: crie uma conta em cpfhub.io, gere a API key no painel e faça uma chamada GET para `https://api.cpfhub.io/cpf/{CPF}` com o header `x-api-key`. A documentação inclui exemplos em Python, Node.js, PHP, Java e outras linguagens.

### Leia também

- [LGPD: CPF é dado pessoal sensível ou não? Entenda a classificação correta](https://cpfhub.io/blog/lgpd-cpf-e-dado-pessoal-sensivel-ou-nao-entenda-a-classificacao-correta)
- [Vazamento de CPF: responsabilidades da empresa e como prevenir](https://cpfhub.io/blog/vazamento-de-cpf-responsabilidades-da-empresa-e-como-prevenir)
- [KYC no Brasil: quais setores são obrigados a validar CPF por lei](https://cpfhub.io/blog/kyc-no-brasil-quais-setores-sao-obrigados-a-validar-cpf-por-lei)
- [Como atender às exigências do COAF para PLD/FT usando validação de CPF](https://cpfhub.io/blog/como-atender-as-exigencias-do-coaf-para-pld-ft-usando-validacao-de-cpf)

---

## Conclusão

Armazenar dados de CPF na cloud é seguro e eficiente quando as configurações corretas são aplicadas. Criptografia em múltiplas camadas, controle de acesso granular, retenção automática e monitoramento contínuo são os pilares de uma estratégia de cloud em conformidade com a LGPD. O investimento em configuração adequada desde o início é significativamente menor do que o custo de uma sanção ou vazamento.

Cadastre-se em [cpfhub.io](https://www.cpfhub.io/) — 50 consultas mensais gratuitas, sem cartão de crédito — e comece hoje mesmo.

