O blog da AWS

Protegendo seus dados com o AWS Backup e o AWS Backup Vault Lock

Por Thiago da Hora, Arquiteto de Soluções da AWS

Com o aumento do uso de serviços digitais e computação em nuvem nas iniciativas pública e privada, houve um crescimento significativo de incidentes de segurança , com destaque para atividades de sequestro de dados ou ransomware, onde criminosos obtém acesso à dados da empresa de maneira indevida através de códigos maliciosos, credenciais comprometidas, ou outras formas. Os dados são criptografados e é exigido um pagamento para acesso-los novamente, todavia, não há garantias que os dados serão devolvidos após o pagamento. Em casos extremos, não há backup configurado ou os próprios dados de backup são comprometidos durante o incidente, impossibilitando a recuperação dos serviços.

Neste blogpost iremos mostrar como automatizar a rotina de backups utilizando o recurso de tags do AWS Backup e adicionar uma camada extra de proteção com o recurso AWS Backup Vault Lock, para impedir que os backups sejam excluídos inadvertidamente, ou no caso de um incidente de ransomware.

AWS Backup

O AWS Backup é um serviço gerenciado que facilita a centralização e automação da proteção de dados dos serviços AWS. Através deste serviço, é possível configurar políticas e monitorar as atividades de backup dos seus recursos em um só lugar, eliminando a necessidade de manter tarefas distintas, scripts personalizados e processos manuais.

Você pode criar planos de backup para definir os requisitos, como a frequência que será feito o backup, por quanto tempo reter e o escopo de serviços.

Para conferir a lista de serviços que se integram ao AWS Backup, bem como as regiões disponíveis, consulte este link.

AWS Backup Vault Lock

Em Outubro de 2021, a AWS lançou o recurso de AWS Backup Vault Lock para ajudar os clientes a elevar a proteção dos seus backups usando um modelo Write-Once-Read-Many (WORM). Uma vez escrito, o backup não pode ser excluído ou ter sua política de retenção modificada. Em um cenário em que todos os recursos da conta AWS foram comprometidos o AWS Backup Vault Lock evita que os backups sejam excluídos. Também é possível definir outras ações que ajudam na proteção dos backups, como realizar cópias independentes em outras regiões e contas distintas da AWS, criar políticas de acesso mais restritivas e arquivamento de dados de longo prazo.

Tags

Para ajudá-lo a gerenciar os seus recursos na AWS, é possível atribuir seus próprios metadados na forma de tags. As tags permitem categorizar seus recursos da AWS de diferentes formas (como por finalidade, por proprietário ou por ambiente). Isso é útil quando você tem muitos recursos do mesmo tipo e deseja criar políticas de segurança distintas, organizar os custos, rotinas de automação para diferentes ambientes ou definir uma política de backup.

A aplicação de tags nos recuros está fora do escopo deste blogpost. Para obter informações sobre como adicioná-las através do Tag Editor, consulte Como trabalhar com o Tag Editor no Guia do usuário do AWS Resource Groups.

Implantando a Solução

Acesse o repositório público e baixe o template ou copie-o para um bucket do Amazon S3.

git clone https://github.com/aws-samples/aws-backup-with-tags-and-vault-lock.git

IMPORTANTE: Nossa recomendação é que baixe o template, revise os recursos que serão criados, o nível de permissão necessária e faça testes antes de implantá-lo em produção.

Para fazer o deploy via CloudFormation:

  • Faça login na console da AWSe acesse o serviço AWS CloudFormation;
  • Clique em Create Stack;
  • Confira se a conta AWS e a região que será feito o deploy dos recursos estão corretos;
  • Selecione a opção Upload a template file;
  • Em Choose file, selecione o arquivo cfn-demo-aws-backup.yaml em sua máquina.

  • Clique em Next para seguir para a tela de detalhes;
  • Informe o nome e os parâmetros da Stack.

Essa stack possui os seguintes parâmetros, que podem ser alterados conforme necessário:

  • BackupConditionTagKeyNome da chave da Tag (Tag:Key) utilizada para selecionar os recursos que fazem parte da política de backup. Os recursos que tiverem a chave e valor estarão no escopo de backup, desde que suportados. Valor padrão é Backup.
  • BackupConditionTagValueValor da Tag (Tag:Value), os recursos que tiverem a chave e valor (BackupConditionTagValue) estarão no escopo de backup, desde que suportados. Valor padrão é True, ou seja, todos os recursos, com integração suportada pelo AWS Backup, que tiverem a Tag Backup:True farão parte do plano de backup.
  • BackupDeleteAfterDays – Quantidade de dias para retenção do backup. Após esse período o backup será excluído automaticamente pelo AWS Backup. Valor padrão é 45.
  • BackupPlanName – Nome do plano de backup. O plano de backup é uma política para definir o período e os recursos – por exemplo, instancias Amazon EC2, bancos de dados RDS, dentre outros –  que serão feitos backup. Para mais detalhes acesse esse link. Valor padrão é demo-aws-backup-plan.
  • BackupRuleName – Nome da regra associada ao plano de backup. O valor padrão é demo-aws-backup-rule.
  • BackupScheduleExpression – Expressão em formato cron que determina a frequência que o AWS Backup fará os snapshots. O valor padrão é cron(0 1 * * ? *) – neste caso será feito backup todos os dias às 01:00 UTC.
  • BackupSelectionNameBackup Selection especifica o conjunto de recursos associados ao plano. Nesse caso, relacionar a Tag informada com o plano de backup. Valor padrão é demo-aws-backup-selection.
  • BackupVaultName – Todo backup realizado pelo AWS Backup é armazenado em um cofre (vault). Por padrão, os backups feitos pelo AWS Backup são armazenados em um container ou vault. Valor default é demo-aws-backup-vault.
  • CreateNewBackupVault – Cria um novo cofre para backup, se for informado true. Caso um outro cofre com o mesmo nome (BackupVaultName) já exista em sua conta, ocorrerá um erro na criação da stack. Valor padrão é true.
    **Atenção à este parâmetro, após deletar a stack, o cofre de backup (backup vault) criado será mantido e deverá ser removido manualmente**.
  • CreateNewKMSKey – Cria uma nova chave do AWS KMS para realizar a criptografia do seu backup. Alguns serviços que se integram ao AWS Backup não suportam uma chave de criptografia diferente. O valor padrão é true.
    **Atenção a este parâmetro, após deletar a stack, a chave KMS criada será mantida e deverá ser removida manualmente**.
  • CreateNewRole – Cria uma nova função do IAM(IAM Role) com permissões específicas para as atividades de Backup e Restore através do AWS Backup. O valor padrão é true.
  • ExistingKeyArn – Caso você já possua uma chave do AWS KMS e deseje utilizá-la ao invés de criar uma nova, informe o ARN da chave existente nesse parâmetro. Preenchimento obrigatório caso o parâmetro CreateNewKMSKeytenha sido definido como  false.
  • ExistingRoleArn – ARN da role do IAM que será utilizada pelo AWS Backup, caso você já possua uma e queira utilizá-la. Preenchimento obrigatório se informado false no parâmetro CreateNewRole.
  • KeyName – Nome da chave KMS que será utilizada pelo AWS Backup para fazer a criptografia dos dados. Valor padrão é demo-aws-backup-kms. Se informado false no parâmetro CreateNewKMSKey este parâmetro será ignorado.
  • RoleName – Nome da IAM Role que será utilizada pelo AWS Backup para executar as tarefas de backup e restore. Valor padrão é  demo-aws-backup-role. Se informado false no parâmetro CreateNewRole este parâmetro será ignorado.
  • VaultChangeableForDays – Período de dias em que é possível remover o AWS Backup Vault Lock ou modificar a configuração. O período mínimo é 3 dias e após isso o cofre de backup (vault) é travado. Valor padrão é 3.
  • VaultMinRetentionDays – Valor mínimo de dias que o backup será mantido no cofre. Não será possível excluir um backup antes desse período, nem manualmente, nem através das políticas de ciclo de vida (BackupDeleteAfterDays). Atenção à este parâmetro, o valor padrão é 30, se o propósito de deploy do template for para teste ou demonstração reduza o período.

Após preencher o nome da Stack e os parâmetros, clique em Next para o próximo passo;

Nesta etapa de configuração é possível:

  • Adicionar tags nos recursos que serão criados no plano;
  • Especificar uma IAM Role para realizar a criação da stack – se não informado nenhuma IAM Role, a stack será criada com o usuário que fez login na console;
  • Definir o comportamento da stack em caso de falha – desfazer a criação dos recursos ou mantê-los;
  • Para mais detalhes consulte a documentação.

Avance para última etapa (Step 4 - Review) para revisar os parâmetros e configurações da stack, se você optou por criar uma nova IAM Role para o AWS Backup (CreateNewRole), será exibida a mensagem abaixo. Confirme e clique no botão Create stack. 

Aguarde a criação dos recursos, assim que for finalizada a execução da stack você poderá consultar os recursos criados na aba Resources, conforme imagem abaixo;

Os backups criados pelo AWS Backup à partir dessa política (Backup Plan) contam com uma camada extra de proteção do AWS Backup Vault Lock.

Consulte o andamento dos jobs de backup através da console do AWS Backup em Jobs, conforme imagem abaixo, ou ainda através do Amazon CloudWatch, serviço de monitoração e observabilidade da AWS, é possível saber a quantidade de jobs em execução, concluídos com suceso e falha, expirados, entre outros. Para mais detalhes, consulte esse link.

Excluindo recursos

Para remover a stack criada, abra a console da AWS, acesse o serviço AWS CloudFormation e clique em Stacks. Selecione-a, clique no botão Delete e confirme (Delete stack).

**Atenção, para manter a integridade dos backups realizados a chave KMS e o cofre de backup (backup vault) criados pelo template não serão excluídos automaticamente.** 

Para removê-los, acesse a console do AWS Backups e confira se existem backups no cofre (Backup vaults), exclua-os e em seguida delete o cofre.

Abra a console do AWS KMS para remover a chave criada. Selecione a chave a em Customer managed keys, no canto superior direito, em Key actions escolha clique em Schedule key deletion.

Informe a quantidade de dias que a chave será excluída automaticamente, confirme no checkbox e clique em Schedule deletion. Após esse período a chave será definitivamente removida e não será possível desfazer a operação.

Conclusão

Neste blogpost mostramos como proteger os seus dados de maneira automatizada através de Tags com o serviço AWS Backup e como adicionar uma camada extra de segurança, para reduzir o impacto em caso de atividades maliciosas como ransomwares com o uso do AWS Backup Vault Lock. Clientes que já fazem uso do AWS Backup também podem habilitar o recurso AWS Backup Vault Lock em seus cofres através da CLI. Para mais detalhes consulte a documentação.

Para mais dicas de como aumentar sua resiliência a ataques de ransomware, acesse este blogpost. Para mais informações acesse AWS Backup blogs, vídeos, tutoriais e outros recursos.


Sobre o Autor

 

Thiago da Hora, Arquiteto de Soluções da AWS, com foco em ISV Partners do setor público. Trabalhou anteriormente em consultorias de TI como especialista em nuvem, banco de dados, infraestrutura, migração e desenvolvimento de software. Tem um interesse especial em Analytics e Serverless