Pular para o conteúdo principal

Política de Backup

1. Introdução

Este documento estabelece a política de backup, detalhando as estratégias implementadas para garantir a integridade, a disponibilidade e a recuperação dos dados armazenados no banco de dados bem como arquivos gravados como anexos associados à aplicação.

Os destinatários destas políticas são os clientes e usuários dos produtos e serviços da devCoffee.

2. Objetivos

Garantir a recuperação dos dados em caso de falhas, perdas ou corrupções, minimizando o impacto nas operações da empresa e assegurando a continuidade dos negócios.

3. Estratégias de Backup

3.1 Banco de Dados

3.1.1 Replicação em Tempo Real

Implementamos a replicação nativa do PostgreSQL para manter uma cópia em tempo real do banco de dados em uma instância secundária. Esta instância secundária é utilizada como primeiro nível para recuperação em caso de falha do banco de dados principal, além de suportar acessos somente leitura para consultas de Business Intelligence (BI) e outras finalidades relacionadas.

3.1.2 Point in Time Recovery

Realizamos backups PITR utilizando o pgBackRest, armazenando os arquivos em um bucket S3 ou compatível, replicado simultaneamente em 2 regiões geográficas remotas. Esta estratégia garante redundância e disponibilidade dos dados. A configuração do backup PITR permite atualmente uma janela de recuperação de 3 semanas, ou seja, será possível restaurar o banco de dados para o estado em que estava em qualquer uma das últimas 3 semanas. Este backup é utilizado como segundo nível para recuperação do banco de dados em caso de falha do banco de dados principal e falha de restauração do primeiro nível de backup do banco de dados.

3.1.3 Backup Diário

Geramos um backup completo do banco de dados (dump) diariamente às 23h e mantemos cópias desses backup completo por 7 dias em armazenamento local e remoto em bucket S3 ou compatível, replicado simultaneamente em 2 regiões geográficas remotas. Este backup é utilizado como terceiro nível para recuperação do banco de dados em caso de falha do banco de dados principal, falha de restauração do primeiro e segundo nível de backup do banco de dados.

3.2 Pasta de Anexos

3.2.1 Sincronização de Anexos

A pasta de anexos além de ter seu armazenamento local, é sincronizada de hora a hora com um armazenamento remoto em bucket S3 ou compatível, garantindo que os arquivos recentes estejam sempre seguros e não ocorra perda significativa de dados em caso de falhas. O armazenamento local é o primeiro nível de restauração em caso de falhas. O armazenamento remoto em bucket S3 ou compatível é replicado simultaneamente em 2 regiões geográficas remotas e é o segundo nível de restauração em caso de falhas.

3.2.2 Backup Diário de Anexos

Uma cópia completa da pasta de anexos é gerada diariamente às 23h. Armazenamos estas cópias por 3 dias em armazenamento local e remoto, com os backups remotos em bucket S3 ou compatível, replicado simultaneamente em 2 regiões geográficas remotas. Esta cópia completa da pasta de anexos é o terceiro nível de restauração em caso de falhas.

4. Práticas de Segurança em Transmissão e Armazenamento

Para assegurar a proteção e a privacidade das informações gerenciadas por nossas aplicações, adotamos rigorosas práticas de segurança que abrangem tanto a transmissão quanto o armazenamento dos dados. Estas práticas estão em conformidade com os padrões e regulamentações de segurança da informação vigentes, garantindo a integridade e a confidencialidade dos dados.

4.1 Transmissão de Dados Segura

4.1.1 Protocolos de Transmissão Segura

Todos os dados transmitidos, seja entre a aplicação e o banco de dados, seja para os buckets S3 ou compatível ou entre as instâncias replicadas, utilizam protocolos seguros como HTTPS e TLS. Esses protocolos garantem que os dados sejam criptografados durante a transmissão, prevenindo interceptações e acessos não autorizados.

4.1.2 Autenticação e Autorização

Implementamos métodos robustos de autenticação e autorização para controlar o acesso durante a transmissão de dados, assegurando que apenas sistemas e usuários autorizados possam enviar ou receber dados.

4.2 Armazenamento Seguro

4.2.1 Criptografia de Dados

Todos os dados armazenados, tanto em armazenamento local quanto remoto (inclusive nos buckets S3 ou compatível), são criptografados utilizando algoritmos de criptografia fortes. Isso inclui tanto os backups do banco de dados quanto os arquivos de anexos, garantindo a proteção dos dados em repouso contra acessos indevidos.

4.2.2 Gerenciamento de Chaves de Criptografia

Mantemos um gerenciamento seguro das chaves de criptografia, utilizando serviços de gestão de chaves confiáveis para assegurar que as chaves permaneçam protegidas e acessíveis apenas por entidades autorizadas.

4.2.3 Controle de Acesso ao Armazenamento

Acesso ao armazenamento de backups e anexos é rigorosamente controlado, com políticas de acesso baseadas em mínimo privilégio e autenticação forte, para garantir que apenas pessoal autorizado possa acessar ou recuperar os dados.

5. Monitoramento e Testes

A eficácia da política de backup é regularmente monitorada e testada para garantir a rápida recuperação de dados em caso de necessidade:

  • Revisões periódicas e testes de recuperação são realizados para validar a integridade dos backups, a segurança
  • Monitoramento continuo da transmissão e armazenamento de dados para detectar e responder a ameaças de segurança em tempo real. Isso inclui a utilização de sistemas de detecção de intrusão e monitoramento de logs de acesso.
  • Realizamos auditorias regulares de segurança para validar a eficácia das práticas de segurança adotadas e identificar oportunidades de melhoria, assegurando a conformidade com as melhores práticas e regulamentações aplicáveis.

6. Disponibilização de Backups Anonimizados para Desenvolvimento

Entendemos a importância de manter um ambiente de desenvolvimento e teste que reflita as condições reais de uso da nossas aplicações. No entanto, também reconhecemos a necessidade de proteger os dados pessoais e sensíveis de nossos usuários. Para equilibrar esses dois objetivos, adotamos a seguinte política:

6.1 Anonimização de Dados

Antes de disponibilizar backups do banco de dados ou cópias de anexos para o time de desenvolvimento, procedemos com a anonimização de todos os dados pessoais e sensíveis. Isso inclui, mas não está limitado a, nomes, endereços, números de identificação pessoal e qualquer outro dado que possa identificar direta ou indiretamente uma pessoa. Utilizamos técnicas avançadas de anonimização que garantem a remoção ou a substituição de informações sensíveis, mantendo a integridade estrutural e a utilidade dos dados para fins de desenvolvimento e teste.

6.1.1 Processo de Solicitação e Acesso

O acesso a backups anonimizados é estritamente controlado e somente disponibilizado em ambientes seguros restritos aos membros autorizados do time de desenvolvimento. Este acesso só é permitido mediante o registro formal de uma tarefa devidamente registrada e aprovada, especificando o propósito do uso dos dados.

6.1.2 Uso e Armazenamento Seguro

O time de desenvolvimento é instruído a utilizar os dados anonimizados exclusivamente para os propósitos especificados na solicitação e a adotar todas as medidas de segurança necessárias para proteger os dados durante o uso. Após a conclusão dos trabalhos de desenvolvimento ou teste, os dados anonimizados devem ser devidamente descartados ou retornados, conforme as diretrizes de segurança da informação estabelecidas.

6.2 Treinamento e Conscientização

Promovemos programas de treinamento e conscientização para o time de desenvolvimento sobre a importância da proteção de dados e as responsabilidades associadas ao manuseio de dados anonimizados. Esta abordagem assegura que nosso time de desenvolvimento possa realizar seu trabalho eficazmente, ao mesmo tempo em que mantém o mais alto nível de proteção e privacidade dos dados de nossos usuários.