DevSecOps para IaC (infraestrutura como código)

Microsoft Sentinel
Azure Monitor
GitHub

Ideias de soluções

Este artigo descreve uma ideia de solução. Seu arquiteto de nuvem pode usar essa orientação para ajudar a visualizar os principais componentes para uma implementação típica dessa arquitetura. Use este artigo como ponto de partida para projetar uma solução bem arquitetada que se alinhe aos requisitos específicos de sua carga de trabalho.

Essa ideia de solução ilustra um pipeline de DevSecOps que usa o GitHub para infraestrutura como código (IaC). Ao tratar as definições de infraestrutura como a fonte da verdade, as cargas de trabalho podem automatizar a validação, a verificação de segurança, a governança e a conformidade em todo o ciclo de vida da implantação.

Padrões de implantação padronizados, desenvolvimento assistido por IA, verificação de configuração e segurança de código, governança controlada por políticas e gerenciamento de ciclo de vida ajudam a melhorar a segurança, aumentar a eficiência operacional, reduzir a descompasso de configuração e fornecer ambientes de nuvem confiáveis.

Arquitetura

Diagrama que mostra a arquitetura de DevSecOps para IaC.

Baixe um arquivo do Visio dessa arquitetura.

Fluxo de dados

O fluxo de dados a seguir corresponde ao diagrama anterior:

  1. Os desenvolvedores usam o desenvolvimento orientado a teste e assistido por IA para criar e manter o código de infraestrutura, módulos reutilizáveis, testes e fluxos de trabalho de implantação. Eles desenvolvem testes de unidade, testes de integração e verificações de política como código (PaC) juntamente com definições de infraestrutura.

  2. Os desenvolvedores registram a IaC, os testes e as verificações nos repositórios do GitHub para validar a qualidade, a segurança e a conformidade antes de enviar pull requests.

  3. As solicitações de pull disparam testes automatizados no GitHub Actions. Esse fluxo de trabalho gera e valida as visualizações de implantação antes da implantação.

  4. GitHub Advanced Security fornece verificações de segurança no nível do repositório. As verificações incluem verificação de código ou fluxos de trabalho de revisão de dependência, quando apropriado, e habilitar a verificação secreta e a proteção por push no repositório para detectar segredos expostos.

  5. Uma ação de segurança de DevOps configurada verifica as definições de infraestrutura para configurações incorretas e relata descobertas à segurança do DevOps no Microsoft Defender para Nuvem. Defender para Nuvem correlaciona essas descobertas com insights de postura de segurança na nuvem para ajudar a priorizar a correção antes da implantação.

  6. O pipeline de implantação provisiona ou atualiza recursos do Azure usando artefatos de IaC reutilizáveis a partir de definições de infraestrutura aprovadas, como os Módulos Verificados do Azure (AVM). As pilhas de implantação do Azure ajudam a manter o alinhamento entre os recursos implantados e as definições controladas por código-fonte, e as configurações de negação da implantação ajudam a reduzir o desvio de configuração ao restringir alterações fora de banda. As alterações manuais aprovadas são documentadas e reconciliadas por meio do controle do código-fonte para preservar o Git como a fonte autoritativa da verdade.

  7. O DevSecOps monitora e defende continuamente contra ameaças e vulnerabilidades de segurança. A Política do Azure impõe a governança da nuvem.

  8. A automação configurada cria uma issue no GitHub quando os serviços de monitoramento ou segurança detectam uma anomalia. Por exemplo, Defender para Nuvem pode identificar um recurso exposto publicamente que viola os requisitos de segurança. Um grupo de ações do Azure Monitor ou uma regra de automação do Microsoft Sentinel pode invocar um fluxo de trabalho do Aplicativos Lógicos do Azure que cria uma issue no GitHub para análise e correção.

Componentes

  • O GitHub é uma plataforma de hospedagem de código para controle de versão e colaboração. Nessa arquitetura, GitHub armazena modelos de IaC em repositórios centrais para desenvolvimento, teste, fluxos de trabalho de governança e desenvolvimento assistido por IA com GitHub Copilot.

  • O GitHub Actions é uma ferramenta de automação de CI/CD (integração contínua e implantação contínua) que permite que os fluxos de trabalho criem, testem e implantem código diretamente dos repositórios do GitHub. Nessa arquitetura, o GitHub Actions automatiza o teste de unidade, a verificação de segurança e o provisionamento de infraestrutura para pipelines de IaC.

  • GitHub Segurança Avançada fornece recursos de segurança no nível do repositório, incluindo verificação secreta e detecção de vulnerabilidades de dependência. Nessa arquitetura, o GitHub Advanced Security ajuda a identificar credenciais expostas, dependências de software livre vulneráveis e outros riscos de segurança do repositório antes que o código seja mesclado e implantado.

  • A segurança do DevOps no Defender para Nuvem centraliza as descobertas de segurança do DevOps e as correlaciona com o contexto de nuvem. Nessa arquitetura, uma ação de Segurança da Microsoft DevOps GitHub configurada verifica artefatos IaC em busca de configurações incorretas e relata as descobertas para Defender para Nuvem para priorização e correção.

  • Azure Módulos Verificados (AVM) são módulos IaC predefinidos mantidos por Microsoft. Nessa arquitetura, as cargas de trabalho usam a AVM para implantar módulos de padrão e recursos reutilizáveis que se alinham às diretrizes do Azure Well-Architected Framework.

  • As pilhas de implantação do Azure permitem que as cargas de trabalho gerenciem os recursos implantados como unidades únicas gerenciadas pelo ciclo de vida. As pilhas de implantação do Azure ajudam a manter o alinhamento entre os recursos implantados e as definições de infraestrutura versionadas em controle de código-fonte, oferecem suporte ao gerenciamento do ciclo de vida e reduzem o desvio de configuração por meio da aplicação de controles de governança e configurações de negação.

  • Defender para Nuvem é uma plataforma de gerenciamento de segurança que fornece proteção contra ameaças em cargas de trabalho de nuvem híbrida. Nessa arquitetura, ele monitora continuamente a infraestrutura implantada para vulnerabilidades e ameaças e complementa as descobertas de segurança do DevOps com insights de segurança de runtime.

  • O Microsoft Sentinel é uma solução de SIEM (gerenciamento de informações e eventos de segurança) e SOAR (resposta automatizada de orquestração de segurança) nativa na nuvem que usa IA e análise para detectar e responder a ameaças. Nessa arquitetura, Microsoft Sentinel monitora a atividade de infraestrutura e gera alertas ou problemas de GitHub quando detecta anomalias.

  • Azure Policy avalia Azure recursos em relação aos padrões organizacionais e de carga de trabalho. Dependendo do efeito de política atribuído, Azure Policy pode auditar, modificar, corrigir ou negar configurações não compatíveis. Por exemplo, uma definição de política com o efeito deny pode bloquear a implantação de uma máquina virtual cujo SKU não é permitido.

  • O Azure Monitor é uma plataforma de telemetria e observabilidade que coleta métricas de desempenho e logs de atividades de recursos do Azure. Nessa arquitetura, Azure Monitor detecta condições irregulares de infraestrutura e dispara alertas para que a triagem e a correção possam ser iniciadas.

Detalhes do cenário

Ao adotar IaC, crie testes automatizados à medida que desenvolve o código. Gere planos de implantação e estados de configuração de infraestrutura para emular implantações reais. O desenvolvimento orientado por testes reduz a complexidade de testar a IaC à medida que sua carga de trabalho cresce.

Execute testes de integração em relação aos recursos de Azure implantados usando SDKs do Azure e APIs, Azure Resource Graph, ferramentas de validação específicas da carga de trabalho ou estruturas de teste automatizadas. Esses testes ajudam a verificar a configuração de recursos, a conectividade, os controles de segurança e a preparação operacional.

O PaC é outro método importante para fornecer infraestrutura que esteja em conformidade com as regulamentações e a governança corporativa. Você pode adicionar fluxos de trabalho PaC em seus pipelines para automatizar a governança da nuvem.

Proteger a infraestrutura no início do ciclo de vida de desenvolvimento reduz o risco de problemas de segurança e conformidade após a implantação. Integre o GitHub Advanced Security e a segurança do Defender para Nuvem DevOps aos fluxos de trabalho de DevSecOps para identificar vulnerabilidades, problemas de qualidade de código, violações de políticas, exposição de segredos e riscos de configuração no código de IaC. Essa abordagem é semelhante ao SAST (teste de segurança de aplicativo) estático para o código do aplicativo.

O desvio de configuração pode ser difícil de resolver quando a infraestrutura já está implantada e em operação, especialmente em ambientes de produção. Use GitHub Actions com OpenID Connect (OIDC) e Microsoft Entra Workload Identity Federation para provisionar e gerenciar recursos Azure sem armazenar credenciais. Restrinja as permissões de implantação por meio de atribuições de controle de acesso baseado em função do Azure (Azure RBAC) com privilégio mínimo e de controles de proteção de ambiente. Para fazer alterações manuais excepcionais, use o acesso privilegiado just-in-time, registre a alteração e crie automaticamente um problema de GitHub para reconciliar a definição de infraestrutura por meio do controle do código-fonte. Evite a configuração manual sempre que possível e trate o Git como a fonte autoritativa do estado de infraestrutura.

Para ajudar a evitar desvios na origem, use pilhas de implantação do Azure quando um grupo de recursos do Azure definidos em um modelo compartilha um ciclo de vida. Leve em consideração as limitações da stack de implantação e aplique as configurações de negação adequadas para restringir alterações fora de banda no plano de controle. Mantenha a definição de IaC versionada no controle de código-fonte.

Para ajudar a evitar incidentes de segurança, monitore continuamente o ambiente de nuvem em busca de ameaças e vulnerabilidades. Use Defender para Nuvem, Microsoft Sentinel, Azure Monitor e outras ferramentas de proteção contra ameaças e SIEM para detectar atividades anormais. Essas ferramentas podem alertar automaticamente os administradores de segurança e gerar problemas de GitHub para investigação e correção.

Possíveis casos de uso

As equipes centrais de engenharia de plataforma podem fornecer fluxos de trabalho reutilizáveis do GitHub Actions, controles de PaC e pilhas de implantação do Azure para equipes de aplicações, dados e IA como caminhos preferenciais aprovados. GitHub Copilot ajuda os desenvolvedores a criar definições de infraestrutura, testes e fluxos de trabalho de implantação. Uma ação configurada Segurança da Microsoft DevOps valida a segurança e a configuração da infraestrutura antes da implantação e relata as descobertas para a segurança do DevOps no Defender para Nuvem. A organização pode acelerar a entrega de infraestrutura, mantendo os padrões de governança, consistência e segurança.

Serviços financeiros, serviços de saúde, setor público ou empresas regulamentadas podem usar o DevSecOps para IaC para automatizar a implantação de infraestrutura, a imposição de políticas, a validação de segurança e os relatórios de conformidade. Azure Policy, Defender para Nuvem, Microsoft Sentinel e stacks de implantação do Azure ajudam a manter a auditabilidade das alterações na infraestrutura, reduzir o desvio de configuração e dar suporte à conformidade em todo o ciclo de vida da infraestrutura. GitHub é a fonte autoritativa da verdade para todas as modificações de infraestrutura e controles de governança.

Colaboradores

A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.

Principais autores:

  • Vito Chin | Arquiteto sênior de soluções de nuvem
  • Yee Shian Lee | Arquiteto sênior de soluções de nuvem

Para ver perfis não públicos no LinkedIn, entre no LinkedIn.

Próximas etapas