CloudFormation: Como funciona essa solução da AWS?

O AWS CloudFormation é um serviço que o ajuda a modelar e configurar seus recursos do AWS para que você possa gastar menos tempo gerenciando esses recursos e mais tempo se concentrando nos aplicativos executados no AWS. Você cria um modelo que descreve todos os recursos do AWS que deseja (como instâncias do Amazon EC2 ou instâncias do Amazon RDS DB), e o CloudFormation se encarrega de provisionar e configurar esses recursos para você. Você não precisa criar e configurar individualmente os recursos da AWS e descobrir o que depende do que; o CloudFormation cuida disso.

Como funciona o AWS CloudFormation?

Ao criar uma pilha, o AWS CloudFormation faz chamadas de serviço subjacentes ao AWS para provisionar e configurar seus recursos. O CloudFormation só pode executar ações para as quais você tem permissão. Por exemplo, para criar instâncias do EC2 usando o CloudFormation, você precisa de permissões para criar instâncias. Você precisará de permissões semelhantes para encerrar instâncias quando excluir pilhas com instâncias. Você usa o AWS Identity and Access Management (IAM) para gerenciar as permissões.

As chamadas que o CloudFormation faz são todas declaradas pelo seu modelo. Por exemplo, suponha que você tenha um modelo que descreve uma instância do EC2 com um tipo de instância t2.micro. Quando você usa esse modelo para criar uma pilha, o CloudFormation chama a API de criação de instância do Amazon EC2 e especifica o tipo de instância como t2.micro. 

Endpoints do AWS CloudFormation

Para reduzir a latência de dados em seus aplicativos, a maioria dos produtos Amazon Web Services permite que você selecione um endpoint regional para fazer suas solicitações. Um endpoint é um URL que é o ponto de entrada para um serviço da Web.

Ao trabalhar com pilhas usando a interface de linha de comando ou ações de API, você pode especificar um ponto de extremidade regional.

Segurança no AWS CloudFormation

A segurança da nuvem na AWS é a maior prioridade para a empresa. Abaixo temos a descrição do modelo de responsabilidade compartilhada,  apresentado como segurança da nuvem e segurança na nuvem:

Segurança da nuvem – A AWS é responsável por proteger a infraestrutura que executa os serviços da AWS na nuvem da AWS. A AWS também fornece serviços que você pode usar com segurança. Auditores terceirizados testam e verificam regularmente a eficácia de nossa segurança como parte dos Programas de Conformidade da AWS. 

Segurança na nuvem – Sua responsabilidade é determinada pelo serviço da AWS que você usa. Você também é responsável por outros fatores, incluindo a sensibilidade dos seus dados, os requisitos da sua empresa e as leis e regulamentações aplicáveis.

Proteção de dados no AWS CloudFormation

O modelo de responsabilidade compartilhada da AWS se aplica à proteção de dados no AWS CloudFormation. Conforme descrito nesse modelo, a AWS é responsável por proteger a infraestrutura global que executa toda a nuvem da AWS. Você é responsável por manter o controle sobre o seu conteúdo hospedado nessa infraestrutura. Esse conteúdo inclui a configuração de segurança e as tarefas de gerenciamento dos serviços da AWS que você usa. 

Para fins de proteção de dados, é sugerido que você proteja as credenciais da conta da AWS e configure usuários individuais com o AWS IAM Identity Center (sucessor do AWS Single Sign-On) ou o AWS Identity and Access Management (IAM). Dessa forma, cada usuário recebe apenas as permissões necessárias para cumprir suas obrigações profissionais. Também é recomendada a protação de dados das seguintes maneiras:

  • Use a autenticação multifator (MFA) em cada conta.
  • Use SSL/TLS para se comunicar com os recursos da AWS. Exigimos o TLS 1.2 e recomendamos o TLS 1.3.
  • Configure a API e o registro de atividades do usuário com o AWS CloudTrail.
  • Use as soluções de criptografia da AWS, juntamente com todos os controles de segurança padrão nos serviços da AWS.
  • Use serviços avançados de segurança gerenciada, como o Amazon Macie, que ajuda a descobrir e proteger dados confidenciais armazenados no Amazon S3.
  • Se você precisar de módulos criptográficos validados pelo FIPS 140-2 ao acessar o AWS por meio de uma interface de linha de comando ou de uma API, use um ponto de extremidade FIPS. Para obter mais informações sobre os pontos de extremidade FIPS disponíveis, consulte Federal Information Processing Standard (FIPS) 140-2.

É altamente recomendável que você nunca coloque informações confidenciais ou sensíveis, como os endereços de e-mail dos seus clientes, em tags ou campos de texto de forma livre, como o campo Nome. Isso inclui quando você trabalha com o AWS CloudFormation ou outros serviços da AWS usando o console, a API, a CLI da AWS ou os SDKs da AWS. Todos os dados inseridos nas tags ou nos campos de texto de formato livre usados para nomes podem ser usados para faturamento ou registros de diagnóstico. Se você fornecer um URL para um servidor externo, é recomendado enfaticamente que não inclua informações de credenciais no URL para validar sua solicitação a esse servidor.

Criptografia em repouso

Seguindo o modelo de responsabilidade compartilhada da AWS, o AWS CloudFormation armazena seus dados criptografados em repouso. Os clientes da AWS, são responsáveis por definir políticas de criptografia e armazenamento para os dados armazenados em suas contas. Por exemplo, é recomendado pela AWS, ativar a criptografia em repouso para modelos e outros dados armazenados em buckets S3 ou tópicos SNS. Da mesma forma, os clientes definem as configurações de criptografia para todos os sistemas de armazenamento de dados provisionados pelo CloudFormation.

Criptografia em trânsito

O AWS CloudFormation usa canais criptografados para comunicações de serviço sob o modelo de responsabilidade compartilhada.

Privacidade do tráfego da Internet

As comunicações de serviço do AWS CloudFormation são criptografadas com segurança por padrão entre regiões ou zonas de disponibilidade.

Segurança da infraestrutura no AWS CloudFormation

Como um serviço gerenciado, o AWS CloudFormation é protegido pelos procedimentos de segurança de rede global da AWS descritos no whitepaper Amazon Web Services: Visão geral dos processos de segurança.

Você usa as chamadas de API publicadas pela AWS para acessar o AWS CloudFormation pela rede. Os clientes devem oferecer suporte ao Transport Layer Security (TLS) 1.0 ou posterior. Recomendamos o TLS 1.2 ou posterior. Os clientes também devem ser compatíveis com conjuntos de cifras com PFS (perfect forward secrecy), como Diffie-Hellman efêmero (DHE) ou ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). A maioria dos sistemas modernos, como o Java 7 e posteriores, oferece suporte a esses modos.

Além disso, as solicitações devem ser assinadas usando um ID de chave de acesso e uma chave de acesso secreta associada a um principal do IAM. Ou você pode usar o AWS Security Token Service (AWS STS) para gerar credenciais de segurança temporárias para assinar solicitações.

Você pode chamar essas operações de API de qualquer local da rede, mas o AWS CloudFormation oferece suporte a políticas de acesso baseadas em recursos, que podem incluir restrições com base no endereço IP de origem. Você também pode usar as políticas do AWS CloudFormation para controlar o acesso de pontos de extremidade específicos do Amazon Virtual Private Cloud (Amazon VPC) ou de VPCs específicos. De fato, isso isola o acesso à rede a um determinado recurso do AWS CloudFormation apenas do VPC específico dentro da rede da AWS.

Resiliência no AWS CloudFormation

A infraestrutura global da AWS é construída em torno de regiões e zonas de disponibilidade da AWS. As regiões da AWS fornecem várias zonas de disponibilidade fisicamente separadas e isoladas, que são conectadas com redes de baixa latência, alta taxa de transferência e altamente redundantes. Com as zonas de disponibilidade, você pode projetar e operar aplicativos e bancos de dados que fazem failover automaticamente entre zonas sem interrupção. As zonas de disponibilidade são mais altamente disponíveis, tolerantes a falhas e dimensionáveis do que as infraestruturas tradicionais de data center único ou múltiplo.

Práticas recomendadas do AWS CloudFormation

  • Use os princípios de infraestrutura como código (IaC): Trate sua infraestrutura como código e use ferramentas de controle de versão para gerenciar seus modelos. Isso permitirá que você acompanhe as alterações na sua infraestrutura ao longo do tempo e as replique e implemente facilmente em diferentes ambientes.
  • Use a parametrização: Parametrize seus modelos para permitir mais flexibilidade e facilidade de uso. Isso pode ajudá-lo a evitar a codificação de valores, facilitando a implementação de modelos em diferentes ambientes.
  • Use a modularização: Divida seus modelos em componentes menores e reutilizáveis e use pilhas aninhadas para gerenciar as dependências entre eles. Isso o ajudará a gerenciar sua infraestrutura de forma mais organizada e reduzirá a complexidade dos modelos.
  • Valide seus modelos: Use as ferramentas de validação integradas do CloudFormation para verificar se há erros de sintaxe e problemas de conformidade em seus modelos antes de implantá-los. Isso o ajudará a evitar erros comuns e a garantir que seus modelos estejam em conformidade com as práticas recomendadas da AWS.
  • Teste seus modelos: Teste seus modelos minuciosamente antes de implantá-los em ambientes de produção. Você pode usar o AWS CloudFormation StackSets para testar seus modelos em várias contas e regiões da AWS.
  • Monitore seus modelos: Monitore a integridade de suas pilhas do CloudFormation e use o AWS CloudWatch para rastrear métricas e alarmes relacionados à sua infraestrutura. Isso o ajudará a identificar problemas com antecedência e a tomar medidas corretivas antes que eles se tornem mais graves.
  • Use as práticas recomendadas da AWS: Siga as práticas recomendadas da AWS ao projetar seus modelos, incluindo o uso de serviços gerenciados pela AWS, a implementação de práticas recomendadas de segurança e a adesão aos limites e cotas da AWS.

Ao seguir essas práticas recomendadas, você pode criar uma infraestrutura escalável, confiável e segura na AWS usando o CloudFormation.

Fonte:

Douglas Bernardini

Cybersecurity Specialist & Cloud Computing Expert with +10 years experience in IT infrastructure.

Specialist delivering assets for development teams in Google Cloud Platform (GCP) and Amazon web services (AWS)

Hands-on cloud security enterprise architect, with experience in SIEM/SOC, IAM, cryptography, pentest, network topologies, operating systems, databases, and applications.

Experience in DevSecOps analysis to discover vulnerabilities in software, identifying CI/CD risks gaps and recommending secure-coding process (S-SDLC).