SEC11-BP06 Implantar software programaticamente - Pilar Segurança

SEC11-BP06 Implantar software programaticamente

Faça implantações de software de forma programática quando possível. Essa abordagem diminui a probabilidade de falha em uma implantação ou da introdução de um problema inesperado devido a erro humano.

Resultado desejado: manter as pessoas longe dos dados é um princípio essencial da criação segura na Nuvem AWS. Esse princípio inclui como implantar seu software.

Os benefícios de não contar com pessoas para implantar software é a maior confiança de que o componente testado é o que será implantado e de que a implantação sempre é realizada de forma consistente. O software não deve precisar de alterações para funcionar em diferentes ambientes. O uso dos princípios de desenvolvimento de aplicações de 12 fatores, especificamente a externalização da configuração, possibilita implantar o mesmo código em vários ambientes sem a necessidade de alterações. Assinar de forma criptográfica os pacotes de software é uma boa maneira de garantir que nada tenha sido alterado entre os ambientes. O resultado geral dessa abordagem é reduzir o risco em seu processo de alterações e melhorar a consistência das versões do software.

Antipadrões comuns:

  • Implantar software manualmente em produção.

  • Realizar alterações manualmente no software para suprir diferentes ambientes.

Benefícios do estabelecimento desta prática recomendada:

  • Maior confiança no processo de lançamento de software.

  • Redução do risco de uma alteração com falha afetar a funcionalidade dos negócios.

  • Maior cadência de lançamentos devido ao menor risco de alterações.

  • Recurso de reversão automática para eventos inesperados durante a implantação.

  • Capacidade de comprovar de forma criptográfica que o software testado é o software implantado.

Nível de exposição a riscos se esta prática recomendada não for estabelecida: alto

Orientações para a implementação

Crie a infraestrutura de sua Conta da AWS para remover o acesso humano persistente dos ambientes e use ferramentas de CI/CD para realizar implantações. Projete suas aplicações de forma que os dados da configuração específica do ambiente sejam obtidos de uma fonte externa, como o AWS Systems Manager Parameter Store. Assine pacotes depois de testados e valide essas assinaturas durante a implantação. Configure seus pipelines de CI/CD para enviar código da aplicação e usar canários para confirmar a implantação bem-sucedida. Utilize ferramentas como o AWS CloudFormation ou o AWS CDK para definir sua infraestrutura; depois, use o AWS CodeBuild e o AWS CodePipeline para realizar operações de CI/CD.

Etapas da implementação

  • Criar pipelines de CI/CD bem definidos para simplificar o processo de implantação.

  • O uso do AWS CodeBuild e do AWS Code Pipeline para oferecer recurso de CI/CD simplifica a integração de teste de segurança aos seus pipelines.

  • Seguir as orientações sobre separação de ambientes no whitepaper Organizar seu ambiente da AWS com o uso de várias contas.

  • Garantir que não haja nenhum acesso humano persistente aos ambientes nos quais as workloads de produção estão em execução.

  • Projetar as aplicações para oferecer compatibilidade com a externalização de dados de configuração.

  • Considerar a implantação com o uso do modelo de implantação azul/verde.

  • Implementar canários para validar a implantação bem-sucedida do software.

  • Utilizar ferramentas criptográficas, como o AWS Signer ou o AWS Key Management Service (AWS KMS), para assinar e confirmar os pacotes de software que você está implantando.

Recursos

Práticas recomendadas relacionadas:

Documentos relacionados:

Vídeos relacionados:

Exemplos relacionados: