Sem dúvidas um ambiente em nuvem pode ser muito mais seguro do que on premisses, mas para garantir o mais alto nível segurança na nuvem é essencial compreender o modelo de responsabilidade compartilhada e conhecer os diferentes recursos como autenticação, autorização, VPCs, ACLs, logs, auditoria e prevenção de ataques.

Disclaimer: Há anos trabalho no ambiente da Amazon Web Services, por isso os serviços que utilizarei como exemplo aqui serão todos da AWS, ainda assim é possível abstrair os mesmos conceitos para os ambientes em nuvem da Azure ou da Google Cloud, por exemplo.

Modelo de Responsabilidade Compartilhada

Segurança na nuvem e conformidade são responsabilidades compartilhadas entre a AWS e o cliente.

Responsabilidade da AWS

A AWS é responsável por proteger a infraestrutura que executa todos os serviços oferecidos na Nuvem. Essa infraestrutura é composta por hardware, software, redes e instalações que executam os Serviços de nuvem AWS.

Responsabilidade do Cliente

Para garantir na Segurança na Nuvem o nível de responsabilidade do cliente vai depender dos serviços utilizados.

Por exemplo, um serviço como o EC2 é categorizado como Infraestrutura como serviço (IaaS – Infrastructure as a Service) e, por isso, os clientes que são responsáveis pelo gerenciamento do sistema operacional (assim como aplicar atualizações e patches), por qualquer software instalado nas instâncias, pela configuração do firewall (security groups), etc.. 

Já para serviços gerenciados como o Amazon S3 e o Amazon DynamoDB, a AWS opera a camada de infraestrutura, o sistema operacional e as plataformas, e os clientes acessam os endpoints para armazenar e recuperar dados.

Nesse caso clientes são responsáveis por gerenciar os dados deles (o que inclui opções de criptografia), classificando os ativos e usando as ferramentas de IAM para aplicar as permissões apropriadas.

Quanto maior o nível de abstração do serviço mais a AWS cuida dos aspectos de segurança na nuvem para você, porque naturalmente você não precisa de preocupar com a gestão das camadas mais baixas (como sistema operacional, por exemplo);

O Princípio do Privilégio Mínimo

O Princípio do Privilégio Mínimo também chamado de Princípio do Menor Privilégio, diz respeito, a dar aos seus usuários (ou serviços) o menor nível de prilégios possível para que eles possam realizar suas atividades.

Além disso, também é necessário certificar que esses privilégios sejam concedidos apenas no período necessário.

Por exemplo, se uma aplicação precisa acessar um bucket de imagens no S3 para salvar fotografias, essa aplicação deve ter privilégio de acessar apenas esse bucket de imagens e mais nenhum outro recurso.

Identity and Access Management

O IAM (Identity and Access Management) é o serviço central de segurança na nuvem da AWS onde você vai poder criar todos os usuários, grupos, papéis (roles) e políticas de segurança (policies) da sua conta.

Algumas políticas de segurança na AWS são baseadas em recurso específico (com um bucket S3, por exemplo) outras são baseadas na identidade do usuário.

Nessa palestra Bridid Johnson apresenta as melhores práticas para você dominar o AWS IAM.

Gestão de Tokens

O AWS Security Token Service permite que você crie credenciais temporárias (tokens) para serem usadas por aplicações terceiras que precisam usar recursos da AWS.

Você pode testar esse recurso usando o Web Identity Federation Playground.

Senhas e Informações Sensíveis

O AWS Secrets Manager é um serviço interessante que AWS oferece para armazenar passwords, chaves de criptografia, chaves de API, chaves SSH, etc. É uma espécie de OnePassword ou LastPass para os dados sensíveis de suas aplicações.

Com o Secrets Manager você evita inserir passwords diretamente em seus scripts e código fonte, trazendo mais segurança para suas aplicações e infra-estrutura.

O Secrets Manager permite também rotacionar de forma automática as credenciais para bancos de dados RDS (MySQL, PostgreSQL e Aurora).

Veja no vídeo abaixo uma introdução ao serviço com uma demonstração do rotacionamento automático de senhas com o MySQL no final do vídeo.

Outro serviço que também pode ser útil para armazenar dados de configuração e passwords de forma segura é o Parameter Store. Use-o para armazenar senhas, strings de conexão com banco de dados e chaves de licença.

Veja no vídeo abaixo uma demonstração em 3 minutos para aprender a utilizar o Parameter Store.

Federação

Os modelos de autorização centralizados mais utilizados e suportados pela AWS são SAML 2.0, OAuth 2.0 e Open ID Connect.

Gestão Multi-contas

Trabalhar com diferentes contas da AWS, traz alguns benefícios como:

  • Isolamento administrativo entre as contas.
  • Limita a visibilidade dos recursos em nuvem na organização.
  • Isolamento de auditoria e logs.
  • Centralização de Billing.

Por outro lado, também há uma série de desafios para se gerenciar e manter os devidos padrões quando se trabalha com muitas contas numa mesma organização.

Por isso serviços como o AWS Control Tower foram criados para te ajudar a gerenciar diferentes contas. Esse serviço de ajuda a configurar o ambiente de novas contas na AWS garantindo que está em compliance com as regras da sua organização.

Já o AWS Security Hub é um outro serviço da AWS que oferece uma visão abrangente dos alertas de segurança de alta prioridade e do status de conformidade nas suas diferentes contas da AWS.

Com o Security Hub, você tem um único local que agrega, organiza e prioriza alertas de segurança, ou descobertas, de vários serviços da AWS, como o Amazon GuardDuty, o Amazon Inspector e o Amazon Macie (falaremos mais sobre esses serviços a seguir), bem como das soluções de parceiros da AWS.

As descobertas são resumidas visualmente em painéis integrados com gráficos e tabelas acionáveis.

Segurança de Rede na Nuvem

Os Grupos de Segurança ou Security Groups (SG) atuam como Firewalls Virtuais na Nuvem e podem ser usados para proteger recursos em nuvem como máquinas virtuais EC2 e RDS.

Também podem ser usados para controlar o trafego de entrada (inbound) e de saída (outbond) para protolocos como TCP, UDP, IMCP.

É possível criar regras para abertura e fechamento portas, assim como definir regras de entrada e saída por IP, Subnet e demais security groups.

Para aprender mais veja essa palestra em que Gina Morris da AWS, dá uma visão geral sobre VPCs na AWS:

Network Access Control Lists

Os NACLs representam uma camada adicional de segurança para suas VPCs que também agem como uma espécie de firewall com a vantagem de que você pode aplicar um NACL para um subnet inteira em vez de ter que aplicar para cada recurso individual.

Se por algum ativo o Security Group for mais permissivo que o NACL o NACL vai sobrescrever os efeitos do Security Group.

Diretórios de Usuários

A AWS oferece diferentes serviços de diretório de usuários como o AWS Cloud Directory que funciona como uma alternativa ao Active Directory e ao LDAP.

Existe o AWS Directory Service for Microsoft Active Diretory que é basicamente um AD Gerenciado pela AWS.

Se você já tem um AD On Premisses, pode usar o AD Connector para logar em seus serviços de nuvem usando seu AD pré-existente.

Se precisar de algo mais leve e simples, o Simple AD é uma implementação de AD baseado em Samba também ofertada pela AWS. O Simple AD não suporta MFA, mas suporta Single Sign On (Kerberos).

Finalmente o Cognito é um serviço gerenciado para autenticação, muito utilizado para criar pools de usuários para micro-serviços e aplicações mobile.

Criptografia

A dois tipos básicos de criptografia que você deve ter em mente para gerenciar seu ambiente em nuvem na AWS: criptografia em repouso e criptografia em trânsito.

Criptografia em Repouso (ou Encryption at Rest) diz respeito a criptografar os dados armazenados no EBS, no S3, numa fila SQS, ou em um banco de dados. Ou seja, diz respeito ao dado que já está salvo em algum lugar.

Criptografia em Trânsito (ou Encryption in Transit) diz respeito a criptografia dos dados para que seja transmitido de um ponto A para um ponto B, é o caso, por exemplo do HTTPS, que criptografa as mensagens trocadas em um cliente e um servidor para assegurar que ninguém não autorizado consiga intermediar a mensagem.

Key Management Service (KMS)

Esse serviço pode gerar chaves de criptografia para você ou armazenar suas próprias chaves, e então você pode acessar facilmente essas chaves para criptografar seus dados em nuvem.

O KMS já está integrado por padrão com grande parte dos serviços na AWS como o S3, SQS, DynamoDB, Lamda, etc.

O serviço sua IAM Roles para definir quem tem acesso às chaves, e toda a manipulação e acesso dessas chaves pode ser auditado via CloudTrail.

Para quem precisa de nível ainda mais alto de robustez, a AWS também oferece o CloudHSM, que é um serviço análogo ao KMS que usa um hardware dedicado a somente você para armazenar suas chaves.

Como o CloudHSM usa Hardware dedicado, você precisa ter ao menos dois para garantir alta disponibilidade.

CloudHSM

Gestão de Certificados

Para te ajudar a lidar com criptografia em trânsito, a AWS oferece o serviço AWS Certificate Manager que permite que você provisione, gerencie e faça deploy de certificados SSL/TLS.

O AWS Certificate Manager administra as renovações desses certificados automaticamente para você

Os certificados públicos e privados provisionados pelo serviço para uso com serviços integrados são gratuitos (CloudFront, ELB, API Gateway). Você paga apenas pelos recursos da AWS que criar para executar suas aplicações.

DDoS

DDoS (Denial of Service) ou ataque de negação de serviço é uma tentativa de tornar os recursos de um sistema indisponíveis para os seus usuários.

Não se trata de uma invasão de um sistema, mas de torná-lo indisponível por causar sobrecarga.

Para se proteger de DDoS é importante utilizar NACLs, SGs, e VPCs para permitir apenas o fluxo necessário de inbound e outbond.

Além disso, a AWS já oferece gratuitamente o AWS Shield que é um serviço gerenciado de proteção contra DDoS, ele oferece de detecção e mitigações que minimizam o tempo de inatividade e a latência. Há uma versão paga mais avançada do serviço para quem precisa de proteção adicional.

Utilize também o WAF (Web Application Firewall). O AWS WAF é um firewall de aplicativos web que ajuda te proteger contra ataques comuns na web que podem afetar a disponibilidade de suas aplicações, comprometer a segurança ou consumir recursos em excesso.

O AWS WAF permite especificar o tráfego permitido e bloqueado mediante a definição de regras de segurança personalizáveis. Bloqueia injeção de SQL, cross-site scripting, e permite que novas regras podem sejam implantadas.

Finalmente utilizar o AWS GuardDuty e o CloudWatch para entender o comportamento normal de suas aplicações e detectar anomalias.

O Amazon GuardDuty é um serviço de detecção de ameaças que monitora continuamente as atividades buscando por ações mal-intencionadas e comportamentos não autorizados. O serviço usa machine learning, detecção de anomalias e inteligência integrada contra ameaças para identificar e priorizar possíveis ameaças.

Intruder Prevention and Detection

Um IDS (Intruder Detection System – Sistema de Detecção de Intrusos) observa a rede e sistemas buscando por atividade suspeito que pode indicar algum tipo de comprometimento. Um sistema mais reativo.

Um IPS (Intruder Prevention System – Sistema de Prevenção de Intrusos) tenta prevenir problemas analisando ameaças e conteúdo suspeito monitorando e escaneando sistemas. Um sistema mais proativo que pode bloquear trafego na hora que está acontecendo, por exemplo.

A AWS possui uma série de parceiros que oferecem esses serviços para quem precisar contratar.

É também possível definir alarmes no CloudWatch para determinados tipos de eventos, e fazer auditorias através CloudTrail para buscar comportamentos suspeitos no seu ambiente em nuvem.

AWS Inspector

Outro serviço que pode ajudar é o AWS Inspector, esse serviço ajuda a melhorar a segurança e a conformidade dos aplicativos avaliando automaticamente seus aplicativos em busca de exposições, vulnerabilidades ou discrepâncias em relação às melhores práticas.

Após realizar uma avaliação, o Inspector produz uma lista detalhada de descobertas de segurança priorizadas de acordo com o nível de severidade.

Conformidade (Compliance)

O AWS Config é um serviço que permite acessar, auditar e avaliar as configurações dos recursos na nuvem da AWS.

O Config monitora e grava continuamente registros das configurações e lhe permite automatizar a avaliação das configurações registradas com base nas configurações desejadas.

Você pode analisar alterações feitas nas configurações e determinar a conformidade geral em relação às configurações especificadas em suas diretrizes internas.

Dessa forma, você pode simplificar a auditoria de conformidade, a análise de segurança, o gerenciamento de alterações e a solução de problemas operacionais.

Catálogo de Serviços

O AWS Service Catalog permite que empresas criem e gerenciem catálogos de serviços aprovados para uso na AWS. Desde imagens de máquinas virtuais (AMIs), servidores, software e bancos de dados, até arquiteturas completas de aplicações multicamada.

Esse serviço é importante para quem precisa de governança ou atender requisitos de conformidade.

Conclusão

Conheço as melhores práticas e entendendo o modelo de responsabilidade compartilhada, você poderá garantir que seu ambiente em nuvem esteja seguro.

Para aprender mais recomendo ler os seguintes Whitepapers sobre Segurança na Nuvem da AWS, especialmente: