Sobre a Bodytech
A Bodytech é a rede composta pelos maiores e mais completos centros de atividades físicas, esportes, bem-estar e lazer do país. Inserida no conceito “wellness”, que busca promover a saúde física e mental de toda a família, a Bodytech se tornou referência no mercado nacional de fitness. Tamanho sucesso é fruto de uma sólida administração aliada a infraestruturas super modernas.
A Bodytech Company opera com duas marcas de academias e tem hoje 104 unidades instaladas: 69 sob a marca Bodytech e 35 sob a marca Fórmula. São mais de 150 mil clientes ativos na rede. Uma corrente de pessoas que buscam qualidade de vida através de um serviço diferenciado, com diversas atividades e profissionais qualificados.
O principal diferencial é um time multidisciplinar de mais de 6.000 profissionais preparados para cuidar dos clientes com atenção, levando em consideração suas particularidades. Além disso, a empresa busca sempre inovar e utilizar novas tecnologias para se destacar no mercado.
O Desafio
A Bodytech procurou a e-Core para auxiliar na realização da transformação digital da empresa, com uma estratégia de adoção de nuvem, migrando seus sistemas de data centers próprios e co-locations para a AWS.
Com diversas unidades espalhadas por todo Brasil, e cada unidade com sua própria infraestrutura, com seu mini-datacenter conectado ao datacenter corporativo central, a sincronização dos dados era realizada diariamente. Por conta dessa arquitetura, havia uma grande dificuldade para expandir e implantar novos serviços.
Esse modelo estava apresentando problemas de gestão, custo e manutenção, devido à grande quantidade de unidades e a crescente expansão da marca. Isso gera desafios para a implantação de novos serviços e impede a rápida inovação.
Além dos desafios relacionados à infraestrutura, a Bodytech também gostaria de transformar suas aplicações existentes e as futuras utilizando as melhores práticas voltadas para os ambientes em nuvem.
No início da utilização dos serviços da AWS por conta própria, havia dificuldade de visibilidade do que estava sendo executado e quais os serviços utilizados, além de não ter uma política definida de permissionamento, que respeitasse o princípio do privilégio mínimo. Além disso, a estrutura de redes utilizada originalmente, com a Virtual Private Cloud (VPC) sem seguir as melhores práticas, não permitia crescimento, não garantia alta disponibilidade e deixava algumas brechas de segurança nas políticas de firewall.
A comunicação com as várias academias era feita pela Internet e faltava visibilidade das ameaças às aplicações. Além disso, não havia um repositório centralizado e estruturado para o armazenamento dos logs de infraestrutura e das aplicações. Para completar, os diferentes ambientes de produção, homologação e desenvolvimento eram compartilhados, corroborando para as dificuldades de controle e permissões de acesso.
Com todas as preocupações, havia um sentimento de não terem o controle do que acontecia na nuvem e que faltavam mecanismos para garantir as melhores práticas operacionais e de segurança do ambiente.
Solução
Para solucionar os desafios e implementar boas práticas de operação na nuvem, alinhado com a estratégia de adoção da empresa, foi estruturada uma Landing Zone. Os ambientes foram separados em múltiplas contas, com uma padronização no tagueamento dos recursos, com VPCs estruturadas para crescimento e alta disponibilidade, conectado ao datacenter através de VPN. Foram definidas as políticas de acesso e permissionamento dos usuários para cada conta, seguindo o princípio do privilégio mínimo, e sempre com autenticação com MFA.
Para atender aos requisitos de segurança e compliance, foi definido o plano de backup para os servidores de aplicação e bancos de dados relacionais e não relacionais, e também implementado o Amazon GuardDuty, com automação de regras no AWS WAF (Web Application Firewall) e Network ACLs das VPCs.
Para gerenciar a infraestrutura crescendo rapidamente de forma mais otimizada, garantindo as melhores práticas, todo o ambiente foi estruturado utilizando AWS CloudFormation, para recursos como EC2, RDS e CloudFront, e o Serverless Framework, para recursos como Lambda e API Gateway. Os deploys utilizam o CircleCI para a integração contínua. Para gerenciar os templates de CloudFormation e mantê-los genéricos para deploys em diversos ambientes, são utilizados os AWS Pseudo Parameters. Além disso, para utilizar informações como IDs das VPCs, subnets, security groups, subnet groups, funções Lambda, distribuições de cloudfront, hosted zones, record sets e outras de forma dinâmica, mantendo os templates de CloudFormation genéricos, os valores corretos são importados a partir de exportação dos parâmetros com Cross-Stack.
Todos os CloudFormations utilizam o Validation de Parameter Inputs para endereços de IP, nomes de ambientes, tags, databases, etc. Os campos são validados com tamanho máximo e mínimo de caracteres, formatos de input permitidos de acordo com expressões regulares, valores padrões e valores permitidos como tipos de instâncias e nomenclatura dos ambientes, tipos aceitos pelo parâmetro como string e number, quantidade de zonas de disponibilidade, regiões AWS utilizadas, entre outros. Além disso, utiliza-se labels e descrição nos parâmetros para facilitar o entendimento e qual o formato de input aceito no campo do parâmetro, facilitando a manutenção do ambiente e a documentação.
Os diversos templates de CloudFormation seguem regras de separação lógica em stacks e módulos, de acordo com as regras de negócio, para facilitar a manutenção e reutilização. Os componentes de rede, como VPC e Security Group, são configurados em Stacks de redes, enquanto componentes de aplicações, como Frontend e Backend, são configurados em Stacks específicas de cada aplicação. Nesse cenário, os Outputs exportam informações dos recursos criados em uma Stack, como o ID de uma Subnet, para ser utilizado por outra Stack, como a de Banco de Dados para criar o Subnet Group. Todas as Stacks são configuradas com a opção Termination Protection, garantindo que as Stacks não sejam removidos acidentalmente.
Além do CloudFormation, para o gerenciamento de forma mais estruturada, outro elemento importante na gestão do ambiente é o AWS Config. Ele monitora alterações feitas nos Stacks do CloudFormations, utilizando regras customizadas de compliance, como, por exemplo, uma regra que avalia se estão sendo utilizadas as tags definidas, garantindo que as políticas estabelecidas estão sendo seguidas.
São utilizadas 51 managed rules do AWS Config, sendo um conjunto de 43 regras criadas a partir da ativação do framework CIS AWS Foundations Benchmark do AWS Security Hub e 8 regras ativadas no AWS Config, configuradas de acordo com regras de negócio e compliance, como por exemplo, regra para padrão de tags utilizados nos recursos criados na AWS, regra para validar se todas as funções lambda criadas rodam dentro de VPC, regra que checa se todos os bancos de dados criados em produção estão com multi-AZ ativado, entre outras. Estas regras avaliam mais de 2.000 recursos AWS na conta de produção.
Para garantir a segurança do ambiente, dois serviços importantes utilizados são o Amazon GuardDuty e o AWS WAF. Os findings gerados pelo GuardDuty, a partir de atividades suspeitas, disparam um evento no CloudWatch Events, que, por sua vez, invoca uma função Lambda que coleta o endereço IP do host suspeito para realizar o bloqueio através de regra no NACL (a nível de subnet) e no WebACL do WAF, que é utilizado nos Application Load Balancers (ALBs) e distribuições do Amazon CloudFront, utilizados pelas aplicações. Além disso, ao realizar um bloqueio, é enviado um email para o time de segurança da e-Core com as informações de registro da ocorrência, como IP do host bloqueado, dia e hora, tipo do ataque, instância alvo, NACL e WebACLs em que a regra de bloqueio foi inserida. Esse e-mail é enviado através de uma estrutura de notificações do AWS SNS que a e-Core mantém em todos os seus clientes e alimenta sua estrutura de monitoramento, direcionando os alertas de cada cliente para o time adequado.
É utilizado também o WAF Security Automations, que implanta automaticamente um conjunto de regras projetadas para filtrar ataques web comuns baseadas no OWASP top 10. Esta automação inspeciona as solicitações realizadas para o Cloudfront e ALBs e compara com as regras estipuladas para bloquear as que são consideradas como atividades suspeitas. A solução configura rules nativas do WAF criadas para proteger contra ataques comuns de SQL injection e cross-site scripting. Além disso, possui um componente que protege contra ataques do tipo HTTP flood, como um alto número de requisições oriundas de um endereço IP ou tentativas de login via brute-force. A solução também conta com um componente que analisa logs de acesso a procura de comportamento suspeito, como uma quantidade anormal de erros gerados por uma origem, bloqueando o atacante em seguida.
O Resultado
Com os elementos de gerenciamento, segurança e compliance implementados, a empresa pode agora inovar de maneira mais ágil e segura, com a garantia de que o ambiente está de acordo com as suas regras de compliance. A Bodytech já implementa uma política de Cloud First, estruturando todos os seus produtos digitais na nuvem e planeja novas aplicações utilizando esse ambiente estruturado e seguro.
A sensação de insegurança e descontrole total foi resolvida e as equipes de segurança e infraestrutura da Bodytech agora já acreditam no ambiente para hospedar todas as suas aplicações. Além disso, a equipe técnica da Bodytech vem se capacitando e estudando para as certificações da AWS, através dos treinamentos da e-Core, para criar um CCoE (Cloud Center of Excellence) dentro da empresa para inovar de forma mais ágil e segura.