SEC01-BP06 Automatiser le déploiement des contrôles de sécurité standard - Framework AWS Well-Architected

SEC01-BP06 Automatiser le déploiement des contrôles de sécurité standard

Appliquez les pratiques DevOps modernes lorsque vous développez et déployez des contrôles de sécurité standard dans tous vos environnements AWS.  Définissez des contrôles et des configurations de sécurité standard à l’aide de modèles d’infrastructure en tant que code (IaC), capturez les modifications dans un système de contrôle de version, testez les modifications dans le cadre d’un pipeline CI/CD et automatisez le déploiement des modifications dans vos environnements AWS.

Résultat souhaité : les modèles IaC capturent des contrôles de sécurité standardisés et les transmettent à un système de contrôle de version.  Les pipelines CI/CD sont situés à des endroits qui détectent les changements et automatisent les tests et le déploiement de vos environnements AWS.  Des barrières de protection sont en place pour détecter et signaler les erreurs de configuration des modèles avant de procéder au déploiement.  Les charges de travail sont déployées dans des environnements où des contrôles standard sont en place.  Les équipes peuvent déployer des configurations de service approuvées via un mécanisme en libre-service.  Des stratégies de sauvegarde et de restauration sécurisées sont en place pour contrôler les configurations, les scripts et les données associées.

Anti-modèles courants :

  • Apporter des modifications à vos contrôles de sécurité standard manuellement, via une console Web ou une interface de ligne de commande.

  • S’appuyer sur des équipes chargées de la charge de travail individuelles pour mettre en œuvre manuellement les contrôles définis par une équipe centrale.

  • S’appuyer sur une équipe de sécurité centrale pour déployer des contrôles au niveau de la charge de travail à la demande d’une équipe responsable d’une charge de travail.

  • Permettre aux mêmes personnes ou équipes de développer, de tester et de déployer des scripts d’automatisation des contrôles de sécurité sans séparation appropriée des tâches ni freins et contrepoids. 

Avantages du respect de cette bonne pratique : l’utilisation de modèles pour définir vos contrôles de sécurité standard vous permet de suivre et de comparer les modifications au fil du temps à l’aide d’un système de contrôle de version.  L’utilisation de l’automatisation pour tester et déployer les modifications crée de la standardisation et de la prévisibilité, ce qui augmente les chances de réussite du déploiement et réduit les tâches manuelles répétitives.  La fourniture d’un mécanisme en libre-service permettant aux équipes responsables de la charge de travail de déployer des services et des configurations approuvés réduit le risque d’erreurs et de mauvaise utilisation de la configuration. Cela leur permet également d’intégrer des contrôles plus tôt dans le processus de développement.

Niveau d’exposition au risque si cette bonne pratique n’est pas respectée : moyen

Directives d’implémentation

Si vous suivez les pratiques décrites dans SEC01-BP01 Séparer les charges de travail à l’aide de comptes, vous vous retrouverez avec plusieurs Comptes AWS pour différents environnements que vous gérez à l’aide d’AWS Organizations.  Bien que ces environnements et charges de travail puissent nécessiter des contrôles de sécurité distincts, vous pouvez standardiser certains contrôles de sécurité au sein de votre organisation.  Cela concerne notamment l’intégration de fournisseurs d’identité centralisés, la définition de réseaux et de pares-feux, et la configuration d’emplacements standard pour le stockage et l’analyse des journaux.  De la même manière que vous pouvez utiliser l’infrastructure en tant que code (IaC) pour appliquer la même rigueur de développement de code d’application au provisionnement de l’infrastructure, vous pouvez également utiliser l’IaC pour définir et déployer vos contrôles de sécurité standard.

Dans la mesure du possible, définissez vos contrôles de sécurité de manière déclarative, par exemple dans AWS CloudFormation, et stockez-les dans un système de contrôle source.  Utilisez les pratiques DevOps pour automatiser le déploiement de vos contrôles afin de rendre les versions plus prévisibles, les tests automatisés à l’aide d’outils tels que AWS CloudFormation Guard et la détection des écarts entre les contrôles déployés et la configuration souhaitée.  Vous pouvez utiliser des services tels que AWS CodePipeline, AWS CodeBuild et AWS CodeDeploy pour construire un pipeline CI/CD. Consultez les instructions de la section Organisation de votre environnement AWS à l’aide de plusieurs comptes pour configurer ces services dans leurs propres comptes, distincts des autres pipelines de déploiement.

Vous pouvez également définir des modèles pour standardiser la définition et le déploiement de Comptes AWS, des services et des configurations.  Cette technique permet à une équipe de sécurité centrale de gérer ces définitions et de les fournir aux équipes responsables de la charge de travail via une approche en libre-service.  L’un des moyens d’y parvenir consiste à utiliser Service Catalog, dans lequel vous pouvez publier des modèles sous forme de produits que les équipes chargées des charges de travail peuvent intégrer dans leurs propres déploiements de pipeline.  Si vous en utilisez AWS Control Tower, certains modèles et contrôles sont disponibles comme point de départ.  Control Tower fournit également la fonctionnalité Account Factory, qui permet aux équipes chargées de la charge de travail de créer de nouveaux Comptes AWS en utilisant les normes que vous définissez.  Cette fonctionnalité permet de supprimer les dépendances vis-à-vis d’une équipe centrale chargée d’approuver et de créer de nouveaux comptes lorsqu’ils sont identifiés comme nécessaires par vos équipes responsables des charges de travail.  Vous pouvez avoir besoin de ces comptes pour isoler les différents composants de la charge de travail en fonction de raisons telles que la fonction qu’ils remplissent, la sensibilité des données traitées ou leur comportement.

Étapes d’implémentation

  1. Déterminez comment vous allez stocker et gérer vos modèles dans un système de contrôle de version.

  2. Créez des pipelines CI/CD pour tester et déployer vos modèles.  Définissez des tests pour vérifier les erreurs de configuration et vérifier que les modèles sont conformes aux normes de votre entreprise.

  3. Créez un catalogue de modèles standardisés pour permettre aux équipes responsables des charges de travail de déployer des services et des Comptes AWS en fonction de vos besoins.

  4. Mettez en œuvre des stratégies de sauvegarde et de restauration sécurisées pour vos configurations de contrôle, vos scripts et les données associées.

Ressources

Bonnes pratiques associées :

Documents connexes :

Exemples connexes :

Outils associés :