Os serviços de segurança oferecidos pela AWS permitem que empresas de diversos setores e tamanhos adotem as melhores práticas de segurança a fim de cumprir obrigações legais, como proteção e privacidade de dados, e seguir as melhores práticas de mercado.
Porém, como a maioria dos provedores de nuvem, a AWS funciona sob o Modelo de Responsabilidade Compartilhada (Shared Responsibility Model, em inglês).
Isso significa que a segurança da nuvem é uma tarefa compartilhada entre a AWS, que cuida da segurança da nuvem – toda a camada de infraestrutura, hardware e regiões / zonas de disponibilidade – e os usuários são responsáveis pela segurança na nuvem – implementar as configurações e políticas nos serviços utilizados, como portas, acessos e gestão de usuários.
E para ajudar nesse processo de responsabilidade do usuário separamos abaixo uma lista com algumas das melhores práticas de segurança na AWS.
1. Evitar o uso da conta root
A conta root permite o acesso completo a todos os recursos e informações da nuvem AWS, incluindo dados de faturamento.
É recomendado evitar o uso da conta root para tarefas diárias, até mesmo para tarefas administrativas. Ao invés disso, crie usuários IAM individuais com as permissões necessárias para realizar atividades específicas.
Utilizar a conta root da AWS aumenta os riscos de atividades maliciosas na conta AWS.
2. Evitar o uso de chaves de acesso
Para proteger a conta da AWS e aderir às práticas recomendadas do IAM, é recomendado evitar que a conta root utilize chaves de acesso para realizar solicitações de API e acessar recursos.
Remover essas credenciais da conta root irá reduzir o risco de acesso não autorizado aos recursos da AWS.
3. Utilizar Multi-factor Authentication
Para aumentar a segurança no login da AWS é recomendado habilitar o uso do multi-factor authentication (MFA) para todos os usuários da conta.
Para usuários do IAM com privilégios de acesso a recursos confidenciais ou operações de API é recomendado o uso de dispositivos MFA de hardware.
Manter o MFA desativado aumenta os riscos de acesso indevido à plataforma especialmente em caso de extravio das credenciais originais (login e senha).
4. Utilizar o CloudTrail em todas as regiões
O CloudTrail é um serviço de log, com o qual é possível registrar e monitorar continuamente as ações executadas na infraestrutura da AWS.
Para melhorar a visibilidade da conta AWS é recomendado habilitar o CloudTrail em todas as regiões da AWS.
5. Utilizar políticas de mínimo acesso do IAM
Na AWS é possível gerenciar permissões e acessos através de políticas anexadas a identidades do IAM como usuários, grupos, roles ou a recursos da AWS.
Ao criar políticas da IAM é recomendado seguir o padrão de conceder somente o acesso necessário de acordo com o princípio do privilégio mínimo para mitigar os riscos de uma ação indesejada na conta.
6. Utilizar o Security Token Service
O AWS Security Token Service (STS) é o serviço da web que permite solicitar credenciais temporárias com privilégios limitados para usuários do IAM ou para usuários federados, aqueles que acessam a conta temporariamente e para uma finalidade específica.
As credenciais temporárias são úteis em cenários que envolvem federação de identidades, acesso entre contas e roles do IAM.
7. Criptografar recursos do EBS
Os recursos do EBS, como volumes e snapshots, normalmente contém informações sensíveis para a organização, incluindo dados pessoais.
Por isso é recomendado habilitar a criptografia gerenciada pelo AWS Key Management Service (KMS) para mitigar o risco de acesso a esses dados por terceiros não autorizados ou agentes maliciosos.
8. Utilizar o VPC Flow Logs
O VPC Flow Logs é um recurso que possibilita capturar informações sobre o tráfego de IP proveniente de interfaces de rede da VPC.
Ativar o VPC Flow Logs irá ajudar a detectar problemas de segurança como grupos de segurança muito permissivos e ACLs de rede, e alertar sobre atividades anormais na rede VPC.
9. Utilizar roles do IAM para instâncias do EC2
É recomendado usar roles do IAM para acessar os recursos da AWS a partir de instâncias do EC2 pois como as credenciais de role são temporárias e alteradas automaticamente, não é necessário realizar o gerenciamento das credenciais e nem se preocupar com riscos de segurança de longo prazo.
Além disso, ao utilizar uma única role para várias instâncias é possível realizar uma alteração na role e essa alteração é propagada automaticamente para todas as outras instâncias.
10. Utilizar grupos de segurança restritos
Um grupo de segurança atua como um firewall virtual para as instâncias e visa restringir o tráfego de entrada e saída.
Como o grupo de segurança padrão possui acesso irrestrito, é recomendado configurar grupos de segurança personalizados de acordo com o princípio do privilégio mínimo para restringir o tráfego de entrada e saída das instâncias EC2.
11. Proteger os buckets S3
O S3 fornece uma série de recursos de segurança como políticas de acesso para proteger as informações armazenadas.
É recomendado conceder apenas o acesso necessário para uma atividade específica de acordo com o princípio do privilégio de acesso mínimo para reduzir o risco e o impacto que pode resultar de erros ou usuários mal-intencionados.
12. Criptografar buckets S3
Os buckets S3 normalmente contém informações sensíveis para a organização, incluindo dados pessoais.
Por isso é recomendado proteger os dados dos buckets S3 em repouso com a criptografia padrão do lado do servidor (Server-Side Encryption (SSE)).
13. Criptografar buckets S3 com SSL
Para proteger os dados dos buckets S3 em trânsito é recomendado aplicar a criptografia de dados pela rede com o Secure Sockets Layer (SSL).
É recomendado permitir apenas acesso SSL e negar todas as solicitações HTTP não criptografadas para os buckets S3.
14. Utilizar o versionamento do S3
Para adicionar uma camada extra de proteção e retenção de dados é recomendado habilitar o controle de versão aos buckets do S3.
O versionamento do S3 pode ser usado em cenários de proteção e retenção de dados, como a recuperação de objetos que foram excluídos ou sobrescritos por acidente ou de forma intencional e para arquivamento de versões anteriores de objetos.
15. Utilizar e analisar logs do S3
Para registrar solicitações de acesso úteis para auditorias de segurança é recomendado habilitar o registro de log para os buckets S3 e analisá-los regularmente.
Com isso é possível rastrear as solicitações para acessar os buckets e usar os dados de log para tomar medidas a fim de protegê-los contra o acesso de usuários não autorizados.
16. Use soluções de parceiros AWS
Com produtos parceiros AWS, como o CleanCloud Score, tenha de forma automática e periódica um assessment que verifica estas e dezenas de outras vulnerabilidades em nuvem AWS para evitar vazamento de dados e ficar em conformidade com as principais regulações do mercado, incluindo Bacen e LGPD.