*Por Fernando Cardoso
Infraestrutura como Código (Ou IaC, na sigla em inglês) é o novo normal quando se fala em criar e construir novos ambientes de nuvem por meio de dados legíveis por computador ou templates de códigos. Hardwares na sua estrutura física podem requerer configurações apropriadas em racks antes de você começar a utilizá-los - o que normalmente leva semanas ou meses para rodar um novo servidor. Com a IaC, é possível criar uma infraestrutura completa para a sua aplicação em nuvem em menos de uma hora. E por que é importante integrar a segurança nos projetos de Infraestrutura como Código? De acordo com a consultoria Gartner, até 2022, 95% das falhas de segurança em nuvem serão de responsabilidade do usuário.
Antes do modelo de Infraestrutura como Código, os times de TI tinham de adicionar o servidor no datacenter manualmente, instalando o sistema operacional e realizando as configurações apropriadas antes de rodá-lo. Em alguns casos, as equipes usavam scripts automatizados para ajudar com algumas tarefas - embora não as tornava totalmente automatizadas. Cinco anos atrás eu lembro estar trabalhando em alguns projetos do setor de bancos, no qual era necessário esperar um ou dois meses para ter a infraestrutura necessária para dar início a alguns projetos. Hoje, é possível criar isso em algumas horas ou minutos, seguindo todos os parâmetros de compliance que são necessários.
Com a IaC, a infraestrutura assume a forma de templates de código. Partindo do princípio que o código é um arquivo em texto, é fácil para você editar, copiar e compartilhar com o seu time. É até recomendado que se coloque o arquivo sob o controle da fonte, assim como fazemos com qualquer arquivo de código-fonte, utilizando repositórios como GitHub, GitLab ou Bitbucket. Listo aqui os três principais benefícios em utilizar a IaC:
Velocidade - Permite que se configure rapidamente uma nova infraestrutura somente ao utilizar códigos ou scripts.
Controle - Assumindo que você visualize o template de IaC como qualquer outro arquivo de código-fonte, é possível ter total rastreabilidade por meio dos repositórios de códigos das mudanças que cada template tiveram.
Consistência - Qualquer pessoa é suscetível a cometer erros. A IaC previne esses erros ao utilizar arquivos configuráveis tendo uma única fonte fiel, assim garantindo a mesma configuração para todo o ambiente.
Nos dias atuais, há um grande número de ferramentas que permitem criar Infraestrutura como Código. Aqui estão as mais populares:
• Terraform
• AWS CloudFormation
• Azure Resource Manager or ARM Templates
• Pulumi
• Google Cloud Deployment Manager
• Ansible
• KOPS
De acordo com Sam Guckenheimer, que trabalha na equipe de DevOps da Microsoft Azure: "Os times que implementam a IaC podem entregar ambientes mais estáveis de forma rápida e escalável. Os times evitam configurações manuais desses ambientes e reforçam a consistência, apresentando o estado desejável de seus ambientes por meio de código. O deploy da infraestrutura com a IaC são repetíveis e previnem problemas de tempo de execução causados por deslizes de configuração ou faltas de dependências.
Devido a erros de configuração nas infraestruturas de nuvem, é essencial implementar uma maneira que garanta visibilidade e retorno em tempo real para os desenvolvedores de IaC antes que eles possam construir ambientes em nuvem que contenham falhas de segurança ou de compliance que podem gerar dores de cabeça para a companhia. É importante se assegurar que a criação de uma nova infraestrutura em nuvem siga as melhores práticas de arquitetura como por exemplo AWS Well-Architect Framework e Azure Architecture Framework.
A maioria dos erros em Infraestrutura como Código são gerados por:
• Erros humanos
• Tempo insuficiente para revisar a IaC em razão da demanda urgente do negócio em colocar o app ou a solução no ar o mais rápido possível
• Erro de configuração pela falta de conhecimento nos serviços de nuvem
• Desafios multi-nuvem com a falta de padronização nos diferentes ambientes
A ferramenta de segurança Cloud Secure Posture Management (CSPM) ajuda a detectar rapidamente essas questões, a remediar e a trazer a visibilidade nos múltiplos ambientes de nuvem que a sua empresa possa ter.
Três maneiras de garantir segurança e compliance nos projetos de Infraestrutura como Código
Ambiente de Desenvolvimento Integrado (IDE) - Plugin de segurança
O plugin de segurança de IDE é projetado para rapidamente oferecer feedback em tempo real para desenvolvedores em Infraestrutura como Código e de desenvolvimento de aplicações. Dessa forma, um desenvolvedor pode escanear e corrigir os erros nos próprios Ambiente de Desenvolvimento Integrado sem a necessidade de outras ferramentas de segurança. Essa é a maneira mais rápida de levar segurança aos seus projetos, assim, diminuindo a fricção e aumentando a adoção de desenvolvedores para uma melhor validação de segurança e regras de compliance.
Templates de scanner
Os templates de scanner usam diretamente as APIs com o Gerenciamento de postura de segurança na nuvem (CSPM, na sigla em inglês) para integrar ferramentas customizadas ou casos específicos de uso em projetos de integração contínua e entrega contínua (CI/CD). Isso pode oferecer verificações em tempo real toda vez que se utiliza um novo código, e os resultados podem ser compartilhados com os desenvolvedores e arquitetos de nuvem - que podem checar potenciais riscos antes da produção. Se os scanners encontrarem um problema de "alto risco" ou "extremo", isso pode ser configurado para parar o processo e notificar o time de desenvolvimento por meio de canais de comunicação como Slack, por exemplo.
Gerenciamento de postura de segurança na nuvem (CSPM)
O CSPM é uma ferramenta de segurança que detecta erros de configuração em provedores de serviços múltiplos de nuvem. Essa tecnologia pode ajudar em grandes desafios de implementação de segurança no pipeline de DevOps em algumas empresas. As soluções também são capazes de ajudar na resolução automática de problemas em infraestruturas de nuvem. Isso contribui para que empresas possam visualizar um cenário coerente de riscos em segurança e compliance por meio de ambientes múlti nuvem. O CSPM inclui ferramentas de segurança que podem ser utilizadas em casos como:
• Monitoramento de compliance
• Visibilidade nos erros de configuração em nuvem
• Integração DevOps
• Resposta a incidentes
• Avaliação de riscos
• Visualização de riscos
Conclusão
Infraestrutura como código tem inúmeros benefícios em nossas rotinas diárias especialmente ao criar um novo ambiente ou ao encerrar alguns ambientes na nuvem e em data centers com tecnologias como NSX e Kubernetes. É importante no entanto considerar preocupações com segurança no que diz respeito à infraestrutura que está sendo criada para garantir as melhores práticas nesse sentido, além das regras de compliance da sua companhia.
Ao escolher soluções de segurança para a IaC, tenha certeza que é a tecnologia mais adequada para os seus objetivos e que se adequa perfeitamente com os seus projetos de modo a evitar perda de automação e agilidade na sua rotina diária de trabalho. Lembre-se que detectar falhas de segurança ou erros de configurações em seus estágios iniciais de construção de novas infraestruturas podem garantir uma economia enorme de recursos financeiros, bem como uma grande redução de riscos em segurança.
*Fernando Cardoso é arquiteto de soluções da Trend Micro, empresa líder global em cibersegurança.
Aviso: A opinião apresentada neste artigo é de responsabilidade de seu autor e não da ABES – Associação Brasileira das Empresas de Software