DevSecOps para infraestrutura como código (IaC)

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 com os requisitos específicos da sua carga de trabalho.

Esta ideia de solução ilustra um pipeline DevSecOps que usa o GitHub para gerir infraestrutura como código (IaC). Ao tratar as definições de infraestrutura como fonte de verdade, as cargas de trabalho podem automatizar a validação, a análise de segurança, a governação e a conformidade ao longo de todo o ciclo de vida da implementação.

Padrões de implementação padronizados, desenvolvimento assistido por IA, segurança de código e análise de configuração, governação orientada por políticas e gestão do ciclo de vida ajudam a melhorar a segurança, aumentar a eficiência operacional, reduzir a deriva de configuração e fornecer ambientes cloud fiáveis.

Arquitetura

Diagrama que mostra a arquitetura do DevSecOps para IaC.

Descarregue um ficheiro Visio desta arquitetura.

Fluxo de dados

O seguinte fluxo de dados corresponde ao diagrama anterior:

  1. Os programadores utilizam desenvolvimento assistido por IA e orientado por testes para criar e manter código de infraestrutura, módulos reutilizáveis, testes e fluxos de trabalho de implementação. Desenvolvem testes unitários, testes de integração e verificações de políticas como código (PaC) juntamente com definições de infraestrutura.

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

  3. Os pull requests ativam testes automáticos no GitHub Actions. Este fluxo de trabalho gera e valida pré-visualizações de implementação antes da implementação.

  4. O GitHub Advanced Security fornece verificações de segurança ao nível do repositório. As verificações incluem fluxos de trabalho de varredura de código ou revisão de dependências quando apropriado, e permitem a análise de segredos e proteção push no repositório para detetar segredos expostos.

  5. Uma ação de segurança DevOps configurada analisa as definições de infraestrutura à procura de configurações incorretas e reporta as conclusões à segurança DevOps no Microsoft Defender para a Cloud. O Defender para a Cloud correlaciona essas conclusões com insights sobre a postura de segurança na cloud para ajudar a priorizar a remediação antes da implementação.

  6. O pipeline de implementação provisiona ou atualiza recursos do Azure utilizando artefactos IaC reutilizáveis de definições de infraestrutura aprovadas, como os Módulos Verificados do Azure (AVM). As pilhas de implementação do Azure ajudam a manter o alinhamento entre os recursos implementados e as definições controladas por código-fonte, e as definições de negação de implementação ajudam a reduzir a deriva de configuração ao restringir alterações fora de banda. As alterações manuais aprovadas são documentadas e reconciliadas através do controlo de versões para preservar o Git como a fonte autoritária da verdade.

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

  8. A automação configurada cria um problema no GitHub quando serviços de monitorização ou segurança detetam uma anomalia. Por exemplo, o Defender para a Cloud 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 podem invocar um fluxo de trabalho do Azure Logic Apps que cria um problema no GitHub para rever e corrigir.

Componentes

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

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

  • O GitHub Advanced Security oferece capacidades de segurança a nível de repositório, incluindo análise de segredos e deteção de vulnerabilidades de dependências. Nesta arquitetura, o GitHub Advanced Security ajuda a identificar credenciais expostas, dependências vulneráveis de código aberto e outros riscos de segurança de repositórios antes de o código ser integrado e implementado.

  • A segurança DevOps no Defender para a Cloud centraliza as descobertas de segurança DevOps e correlaciona-as com o contexto cloud. Nesta arquitetura, uma ação Microsoft Security DevOps GitHub configurada analisa artefactos IaC à procura de configurações incorretas e reporta as conclusões ao Defender para a Cloud para priorização e remediação.

  • Os Módulos Verificados do Azure (AVM) são módulos IaC pré-construídos mantidos pela Microsoft. Nesta arquitetura, as cargas de trabalho utilizam AVM para implementar módulos reutilizáveis de recursos e padrões que estejam alinhados com as orientações Azure Well-Architected Framework.

  • As pilhas de implementação do Azure permitem que as cargas de trabalho gerirem os recursos implementados como unidades únicas geridas ao longo do respetivo ciclo de vida. As pilhas de implementação do Azure ajudam a manter o alinhamento entre os recursos implementados e as definições de infraestrutura com controlo de código-fonte, apoiam a gestão do ciclo de vida e reduzem a deriva da configuração aplicando controlos de governação e negando definições.

  • Defender para a Cloud é uma plataforma de gestão de segurança que oferece proteção contra ameaças em cargas de trabalho híbridas na cloud. Nesta arquitetura, monitoriza continuamente a infraestrutura implementada para vulnerabilidades e ameaças, complementando as descobertas de segurança DevOps com insights de segurança em tempo de execução.

  • O Microsoft Sentinel é uma solução de gerenciamento de eventos e informações de segurança (SIEM) e de orquestração de segurança (SOAR) nativa da nuvem que usa IA e análises para detetar e responder a ameaças. Nesta arquitetura, o Microsoft Sentinel monitoriza a atividade da infraestrutura e gera alertas ou Issues do GitHub quando deteta anomalias.

  • O Azure Policy avalia os recursos do Azure em relação aos padrões organizacionais e de carga de trabalho. Dependendo do efeito da política atribuída, o Azure Policy pode auditar, modificar, remediar ou negar configurações não compatíveis. Por exemplo, uma definição de política com o deny efeito pode bloquear a implementaçã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 dos recursos do Azure. Nesta arquitetura, o Azure Monitor deteta condições irregulares da infraestrutura e dispara alertas para que a triagem e remediação possam começar.

Detalhes do cenário

Quando adotares o IaC, cria testes automatizados à medida que desenvolves o código. Gerar planos de implementação e estados de configuração da infraestrutura para emular implementações reais. O desenvolvimento orientado por testes reduz a complexidade de testar o IaC quando a sua carga de trabalho aumenta.

Execute testes de integração contra recursos Azure implementados utilizando SDKs do Azure e APIs, Azure Resource Graph, ferramentas de validação específicas para workload ou frameworks de teste automatizados. Estes testes ajudam a verificar a configuração dos recursos, conectividade, controlos de segurança e prontidã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 logo no início do ciclo de desenvolvimento reduz o risco de problemas de segurança e conformidade após a implementação. Integre GitHub Advanced Security e Defender para a Cloud DevOps Security nos fluxos de trabalho 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 IaC. Esta abordagem é semelhante ao teste estático de segurança de aplicações (SAST) para código de aplicação.

A deriva de configuração pode ser difícil de resolver quando a infraestrutura está implementada e operacional, especialmente em ambientes de produção. Use o GitHub Actions com OpenID Connect (OIDC) e o Microsoft Entra Workload Identity Federation para provisionar e gerir recursos do Azure sem armazenar credenciais. Restringa permissões de implementação através de atribuições de controlo de acesso baseado em funções do Azure (Azure RBAC) com privilégio mínimo e controlos de proteção do ambiente. Para efetuar alterações manuais excecionais, utilize acesso privilegiado just-in-time, registe a alteração e crie automaticamente um Issue no GitHub para reconciliar a definição da infraestrutura através do controlo de código-fonte. Evite a configuração manual sempre que possível e trate o Git como a fonte autoritativa do estado da infraestrutura.

Para ajudar a evitar desvios na sua origem, utilize pilhas de implementação do Azure quando um conjunto de recursos do Azure definidos num modelo tiver um ciclo de vida comum. Tenha em conta as limitações da pilha de implementação e aplique definições de negação adequadas para restringir alterações no plano de controlo fora de banda. Mantém a definição de IaC versionada no controlo de versão.

Para ajudar a prevenir incidentes de segurança, monitorize continuamente o ambiente cloud em busca de ameaças e vulnerabilidades. Use o Defender para a Cloud, Microsoft Sentinel, Azure Monitor e outras ferramentas de proteção contra ameaças e SIEM para detetar atividade anormal. Estas ferramentas podem alertar automaticamente os administradores de segurança e levantar questões no GitHub para investigação e remediação.

Potenciais casos de utilização

As equipas de engenharia da plataforma central podem fornecer fluxos de trabalho reutilizáveis do GitHub Actions, controlos PaC e pilhas de implementação do Azure às equipas de aplicações, dados e IA como caminhos dourados aprovados. O GitHub Copilot ajuda os programadores a criar definições de infraestrutura, testes e fluxos de trabalho de implementação. Uma ação DevOps Microsoft Security configurada valida a segurança e configuração da infraestrutura antes da implementação e reporta as conclusões à segurança DevOps no Defender para a Cloud. A organização pode acelerar a entrega da infraestrutura, mantendo padrões de governação, consistência e segurança.

Serviços financeiros, saúde, setor público ou empresas reguladas podem usar DevSecOps para IaC para automatizar a implementação de infraestruturas, aplicação de políticas, validação de segurança e relatórios de conformidade. As pilhas de implementação Azure Policy, Defender para a Cloud, Microsoft Sentinel e Azure ajudam a manter alterações auditáveis na infraestrutura, reduzir a deriva da configuração e suportar a conformidade ao longo de todo o ciclo de vida da infraestrutura. O GitHub é a fonte fidedigna para todas as alterações à infraestrutura e os controlos de governação.

Contribuidores

A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.

Principais autores:

Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.

Próximos passos