Désactiver les contrôles standard de sécurité sur tous les comptes membres du Security Hub dans un environnement multi-comptes - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Désactiver les contrôles standard de sécurité sur tous les comptes membres du Security Hub dans un environnement multi-comptes

Créée par Michael Fuellbier (AWS) et Ahmed Bakry (AWS)

Récapitulatif

Important

AWS Security Hub prend désormais en charge la configuration centralisée pour les normes et les contrôles de sécurité, pour tous les comptes. Cette nouvelle fonctionnalité répond à de nombreux scénarios couverts par la solution dans ce modèle de guide AWS prescriptif. Avant de déployer la solution selon ce modèle, consultez la section Configuration centrale dans Security Hub.

Dans le cloud Amazon Web Services (AWS), les contrôles AWS Security Hub standard, tels que CIS AWS Foundations Benchmark ou AWS Foundational Security Best Practices, ne peuvent être désactivés (désactivés) que manuellement d'un seul Compte AWS coup. Dans un environnement multi-comptes, vous ne pouvez pas désactiver les contrôles sur plusieurs comptes membres du Security Hub en « un seul clic » (c'est-à-dire en un seul appel d'API). Ce modèle montre comment désactiver en un clic les contrôles standard du Security Hub sur tous les comptes membres du Security Hub gérés par votre compte administrateur du Security Hub.

Conditions préalables et limitations

Prérequis

  • Un environnement multi-comptes composé d'un compte administrateur Security Hub qui gère plusieurs comptes de membres

  • AWS Command Line Interface (AWS CLI) version 2, installée

  • AWS Serverless Application Model Interface de ligne de commande (AWS SAM CLI), installée

Limites

  • Ce modèle ne fonctionne que dans un environnement multi-comptes où un seul compte administrateur Security Hub gère plusieurs comptes de membres.

  • L'initiation de l'événement entraîne de multiples invocations parallèles si vous modifiez un grand nombre de commandes dans un laps de temps très court. Cela peut entraîner un ralentissement de l'API et entraîner l'échec des appels. Par exemple, ce scénario peut se produire si vous modifiez de nombreux contrôles par programmation à l'aide de la CLI Security Hub Controls.

Architecture

Le schéma suivant montre un exemple de AWS Step Functions flux de travail qui désactive les contrôles standard du Security Hub sur plusieurs comptes membres du Security Hub (tel qu'il est affiché depuis le compte administrateur du Security Hub).

Flux de travail AWS Step Functions

Le diagramme inclut le flux de travail suivant :

  1. Une EventBridge règle Amazon est initiée selon un calendrier quotidien et appelle la machine à états. Vous pouvez modifier le calendrier de la règle en mettant à jour le Schedule paramètre dans votre AWS CloudFormation modèle.

  2. Une EventBridge règle est initiée chaque fois qu'un contrôle est activé ou désactivé dans le compte administrateur du Security Hub.

  3. Une machine d'état Step Functions propage l'état des contrôles standard de sécurité (c'est-à-dire les contrôles activés ou désactivés) du compte administrateur du Security Hub aux comptes des membres.

  4. Un rôle entre comptes AWS Identity and Access Management (IAM) est déployé dans chaque compte membre et assumé par la machine d'état. La machine d'État active ou désactive les commandes de chaque compte membre.

  5. Une table Amazon DynamoDB contient des exceptions et des informations sur les contrôles à activer ou à désactiver dans un compte donné. Ces informations remplacent les configurations extraites du compte administrateur Security Hub pour le compte membre spécifié.

Note

L'objectif de la EventBridge règle planifiée est de garantir que les comptes membres du Security Hub récemment ajoutés ont le même statut de contrôle que les comptes existants.

Outils

Services AWS

  • Amazon DynamoDB est un service de base de données NoSQL entièrement géré, offrant des performances rapides, prévisibles et évolutives.

  • Amazon EventBridge est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, AWS Lambda des fonctions, des points de terminaison d'appel HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres. Comptes AWS

  • AWS Command Line Interface (AWS CLI) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande.

  • AWS Lambda est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.

  • AWS Serverless Application Model (AWS SAM) est un framework open source qui vous aide à créer des applications sans serveur dans le. AWS Cloud

  • AWS Security Hubfournit une vue complète de votre état de sécurité dans AWS. Il vous permet également de vérifier que votre AWS environnement est conforme aux normes et aux meilleures pratiques du secteur de la sécurité.

  • AWS Step Functionsest un service d'orchestration sans serveur qui vous aide à combiner des AWS Lambda fonctions et d'autres fonctions Services AWS pour créer des applications critiques pour l'entreprise.

Référentiel de code

Le code de ce modèle est disponible dans le référentiel GitHub AWS Security Hub Cross-Account Controls Disabler. Le référentiel de code contient les fichiers et dossiers suivants :

  • UpdateMembers/template.yaml — Ce fichier contient les composants déployés dans le compte administrateur du Security Hub, notamment la machine d'état Step Functions et les règles. EventBridge

  • member-iam-role/template.yaml — Ce fichier contient le code permettant de déployer le rôle IAM entre comptes dans un compte membre.

  • StateMachine.json — Ce fichier définit le flux de travail de la machine à états.

  • GetMembers/index.py — Ce fichier contient le code de la machine GetMembersd'état. Un script récupère l'état des contrôles standard de sécurité dans tous les comptes membres du Security Hub existants.

  • UpdateMember/index.py — Ce fichier contient un script qui met à jour l'état du contrôle dans chaque compte membre.

  • CheckResult/index.py — Ce fichier contient un script qui vérifie l'état de l'appel du flux de travail (accepté ou échec).

Épopées

TâcheDescriptionCompétences requises

Identifiez l'identifiant du compte administrateur du Security Hub.

Configurez un compte administrateur Security Hub, puis notez l'identifiant du compte administrateur.

Architecte du cloud

Déployez le CloudFormation modèle qui inclut le rôle IAM entre comptes dans les comptes des membres.

Pour déployer le modèle member-iam-role/template.yaml dans tous les comptes membres gérés par le compte administrateur du Security Hub, exécutez la commande suivante :

aws cloudformation deploy \ --template-file member-iam-role/template.yaml \ --capabilities CAPABILITY_NAMED_IAM \ --stack-name <your-stack-name> \ --parameter-overrides SecurityHubAdminAccountId=<account-ID>

Le SecurityHubAdminAccountId paramètre doit correspondre à l'identifiant du compte administrateur Security Hub que vous avez indiqué précédemment.

AWS DevOps
TâcheDescriptionCompétences requises

Package le CloudFormation modèle qui inclut la machine à états avec AWS SAM.

Pour intégrer le UpdateMembersmodèle /template.yaml dans le compte administrateur du Security Hub, exécutez la commande suivante :

sam package \ --template-file UpdateMembers/template.yaml \ --output-template-file UpdateMembers/template-out.yaml \ --s3-bucket <amzn-s3-demo-bucket>
Note

Votre compartiment Amazon Simple Storage Service (Amazon S3) doit se trouver dans le Région AWS même compartiment que celui où vous déployez CloudFormation le modèle.

AWS DevOps

Déployez le CloudFormation modèle intégré dans le compte administrateur du Security Hub.

Pour déployer le CloudFormation modèle dans le compte administrateur du Security Hub, exécutez la commande suivante :

aws cloudformation deploy \ --template-file UpdateMembers/template-out.yaml \ --capabilities CAPABILITY_IAM \ --stack-name <stack-name>

Dans le modèle member-iam-role/template.yaml, le MemberIAMRolePath paramètre doit correspondre au paramètre et doit correspondre. IAMRolePath MemberIAMRoleName IAMRoleName

Note

Security Hub étant un service régional, vous devez déployer le modèle individuellement dans chacun d'eux Région AWS. Assurez-vous d'abord de regrouper la solution dans un compartiment Amazon S3 dans chaque région.

AWS DevOps

Ressources connexes