OpenCyber Academy
Técnico · Capítulo 14 · Português
Código do curso: OCA-050Capítulo 14: OCA-050-C014

Capítulo 14 — Privacidade e proteção de dados: automação

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 14 publicada. Mapa, exemplo, EX053.

flowchart TD
  N0["14.1 A regra de retenção"]
  N1["14.2 O laboratório da retenção"]
  N2["14.3 Exceções e segurança"]
  N3["14.4 Monitorar a rotina"]
  N4["Laboratório — Registros de lembretes além do prazo d"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX053"]

Desenho lógico

flowchart LR
  N0["14.1 A regra de retenção"]
  N1["14.2 O laboratório da retenção"]
  N2["14.3 Exceções e segurança"]
  N3["14.4 Monitorar a rotina"]
  N4["Laboratório — Registros de lembretes além do prazo d"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX053"]
[14.1 A regra de retenção]
    |
    v
[14.2 O laboratório da retenção]
    |
    v
[14.3 Exceções e segurança]
    |
    v
[14.4 Monitorar a rotina]
    |
    v
[Laboratório — Registros de lembretes além do prazo d]
    |
    v
[Exemplo resolvido] --> [Exercício EX053]

Objetivos de aprendizagem

Você vai (1) automatizar uma regra de retenção; (2) tratar as exceções; (3) monitorar a automação.

14.1 A regra de retenção

Os registros de lembretes de consulta, que guardam o telefone, o horário da consulta e a situação da entrega, são necessários por cerca de um ano para resolver reclamações e conferir problemas de entrega. A tabela de retenção da Marlow fixa 365 dias. Os prontuários clínicos seguem regras profissionais mais longas e não fazem parte desta rotina. Leila escreve a regra com precisão: excluir os registros de lembrete cuja data de consulta seja mais de 365 dias anterior à data da execução, exceto os ligados a uma reclamação em aberto. Uma regra precisa é mais fácil de automatizar e de explicar aos auditores.

14.2 O laboratório da retenção

O laboratório aplica a regra a 1.200 registros sintéticos de lembretes. Encontra 712, 59,3%, com mais de 365 dias, e o registro mais antigo tem 900 dias. O resultado mostra que os lembretes nunca foram excluídos desde o início do serviço de SMS, então a maioria já ultrapassou sua finalidade. Leila aponta que cada registro em excesso contém um telefone ligado a uma consulta odontológica, que ficaria exposto se o banco de lembretes sofresse uma violação; a exclusão, portanto, reduz o risco diretamente. Apagar os 712 registros vencidos remove a maior parte dos telefones do banco sem afetar nenhuma consulta atual.

14.3 Exceções e segurança

Antes de ativar a exclusão, Leila acrescenta uma marcação de exceção para os registros ligados a reclamações em aberto, definida pela equipe de reclamações. Ela roda a rotina primeiro em modo somente relatório, listando o que seria excluído sem excluir nada, e o diretor de operações revisa as contagens. Só então a exclusão é ligada. Toda noite, a rotina grava num log um resumo das contagens excluídas e retidas, sem listar telefones. Ela explica que as execuções somente relatório são uma forma simples de pegar erros nas regras antes que os dados se percam de forma irreversível.

14.4 Monitorar a rotina

A rotina envia uma mensagem diária de sucesso com as contagens. Se nenhuma mensagem chegar, o prestador de TI recebe um alerta. A cada trimestre, Leila confere se o registro de lembrete mais antigo tem menos de 366 dias e se os registros retidos têm uma referência de reclamação vigente; as duas verificações levam minutos. Esse monitoramento enfrenta a falha silenciosa do capítulo 8. O Sr. Okafor observa que a automação aplica a limitação da conservação com confiabilidade, mas só se alguém perceber quando ela para, e é por isso que a mensagem de sucesso importa tanto quanto a própria rotina.

Laboratório — Registros de lembretes além do prazo de retenção

"""Apply a retention rule to synthetic appointment-reminder records (stdlib only)."""
import random, datetime
random.seed(11)
today = datetime.date(2026, 10, 1)
recs = [(i, today - datetime.timedelta(days=random.randint(0, 900))) for i in range(1200)]
keep_days = 365
expired = [r for r in recs if (today - r[1]).days > keep_days]
oldest = max((today - d).days for _, d in recs)
print(f"reminder records {len(recs)}; older than {keep_days} days {len(expired)} ({100*len(expired)/len(recs):.1f}%)")
print(f"oldest record {oldest} days")

Execute com python3 lab_retention.py. Saída verificada:

reminder records 1200; older than 365 days 712 (59.3%)
oldest record 900 days

Exemplo resolvido

Leila encontra 712 de 1.200 registros de lembretes (59,3%) com mais de 365 dias, acrescenta uma exceção para reclamações, roda primeiro em modo somente relatório e depois ativa a exclusão, com mensagens diárias de sucesso e verificações trimestrais.

Caso sintético. Os registros são sintéticos.

Erros e limites

Os backups ainda podem guardar registros excluídos até expirarem; documente a retenção dos backups.

Exercícios

Respostas comentadas

EX053. 712 de 1.200 (59,3%).

EX054. 900 dias.

EX055. Para conferir o que seria excluído antes de excluir qualquer coisa.

EX056. Os registros ligados a uma reclamação em aberto.