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.
Créez un rapport consolidé des découvertes de sécurité de Prowler à partir de plusieurs Comptes AWS
Créée par Mike Virgilio (AWS), Andrea Di Fabio (AWS) et Jay Durga (AWS)
Récapitulatif
Prowler
Bien qu'il existe de nombreuses méthodes pour déployer et utiliser Prowler à des fins d'évaluation, cette solution a été conçue pour un déploiement rapide, une analyse complète de tous les comptes de l'organisation ou des comptes cibles définis, et des rapports accessibles sur les résultats de sécurité. Dans cette solution, lorsque Prowler termine l'évaluation de la sécurité de tous les comptes de l'organisation, il consolide les résultats. Il filtre également tous les messages d'erreur attendus, tels que les erreurs liées aux restrictions qui empêchent Prowler de scanner les compartiments Amazon Simple Storage Service (Amazon S3) dans les comptes approvisionnés par le biais de ce service. AWS Control Tower Les résultats filtrés et consolidés sont présentés dans un modèle Microsoft Excel inclus dans ce modèle. Vous pouvez utiliser ce rapport pour identifier les améliorations potentielles des contrôles de sécurité au sein de votre organisation.
Cette solution a été conçue avec les éléments suivants à l'esprit :
Les AWS CloudFormation modèles réduisent l'effort requis pour déployer les AWS ressources selon ce modèle.
Vous pouvez ajuster les paramètres des CloudFormation modèles et du script prowler_scan.sh au moment du déploiement afin de personnaliser les modèles en fonction de votre environnement.
Les vitesses d'évaluation et de génération de rapports de Prowler sont optimisées grâce au traitement parallèle des résultats agrégés Comptes AWS, à des rapports consolidés avec des mesures correctives recommandées et à des visualisations générées automatiquement.
L'utilisateur n'a pas besoin de surveiller la progression de l'analyse. Lorsque l'évaluation est terminée, l'utilisateur est averti via une rubrique Amazon Simple Notification Service (Amazon SNS) afin qu'il puisse récupérer le rapport.
Le modèle de rapport vous permet de lire et d'évaluer uniquement les résultats pertinents pour l'ensemble de votre organisation.
Conditions préalables et limitations
Prérequis
Et Compte AWS pour héberger des services et outils de sécurité, gérés en tant que compte membre d'une organisation dans AWS Organizations. Dans ce modèle, ce compte est appelé compte de sécurité.
Dans le compte de sécurité, vous devez disposer d'un sous-réseau privé avec accès Internet sortant. Pour obtenir des instructions, consultez la section VPC avec serveurs dans des sous-réseaux privés et NAT dans la documentation Amazon Virtual Private Cloud (Amazon VPC). Vous pouvez établir un accès à Internet à l'aide d'une passerelle NAT configurée dans un sous-réseau public.
Accès au compte AWS Organizations de gestion ou à un compte doté d'autorisations d'administrateur déléguées pour CloudFormation. Pour obtenir des instructions, voir Enregistrer un administrateur délégué dans la CloudFormation documentation.
Activez un accès fiable entre AWS Organizations et CloudFormation. Pour obtenir des instructions, consultez la section Activer l'accès sécurisé avec AWS Organizations dans la CloudFormation documentation.
Limites
La cible Comptes AWS doit être gérée en tant qu'organisation dans AWS Organizations. Si vous ne l'utilisez pas AWS Organizations, vous pouvez mettre à jour le CloudFormation modèle IAM- ProwlerExecRole .yaml et le script prowler_scan.sh pour votre environnement. Au lieu de cela, vous fournissez une liste Compte AWS IDs des régions dans lesquelles vous souhaitez exécuter le script.
Le CloudFormation modèle est conçu pour déployer l'instance Amazon Elastic Compute Cloud (Amazon EC2) dans un sous-réseau privé doté d'un accès Internet sortant. L' AWS Systems Manager agent (agent SSM) a besoin d'un accès sortant pour atteindre le point de terminaison du AWS Systems Manager service, et vous avez besoin d'un accès sortant pour cloner le référentiel de code et installer les dépendances. Si vous souhaitez utiliser un sous-réseau public, vous devez modifier le modèle prowler-resources.yaml pour associer une adresse IP élastique à l'instance. EC2
Versions du produit
Prowler version 4.0 ou ultérieure
Architecture

Le schéma montre le processus suivant :
À l'aide du Gestionnaire de session, une fonctionnalité de AWS Systems Manager, l'utilisateur s'authentifie auprès de l' EC2 instance et exécute le script prowler_scan.sh. Ce script shell exécute les étapes 2 à 8.
L' EC2 instance assume le rôle
ProwlerEC2Role
IAM, qui accorde des autorisations pour accéder au compartiment S3 et pour assumer les rôlesProwlerExecRole
IAM dans les autres comptes de l'organisation.L' EC2 instance assume le rôle
ProwlerExecRole
IAM dans le compte de gestion de l'organisation et génère une liste des comptes de l'organisation.L' EC2 instance assume le rôle
ProwlerExecRole
IAM dans les comptes membres de l'organisation (appelés comptes de charge de travail dans le schéma d'architecture) et effectue une évaluation de la sécurité de chaque compte. Les résultats sont stockés sous forme de fichiers CSV et HTML sur l' EC2 instance.Note
Les fichiers HTML sont le résultat de l'évaluation Prowler. En raison de la nature du HTML, ils ne sont pas concaténés, traités ou utilisés directement dans ce modèle. Toutefois, ils peuvent être utiles pour l'examen des rapports de compte individuels.
L' EC2 instance traite tous les fichiers CSV pour supprimer les erreurs connues et attendues et consolide les résultats restants dans un seul fichier CSV.
L' EC2 instance regroupe les résultats des comptes individuels et les résultats agrégés dans un fichier zip.
L' EC2 instance télécharge le fichier zip dans le compartiment S3.
Une EventBridge règle détecte le téléchargement du fichier et utilise une rubrique Amazon SNS pour envoyer un e-mail à l'utilisateur l'informant que l'évaluation est terminée.
L'utilisateur télécharge le fichier zip depuis le compartiment S3. L'utilisateur importe les résultats dans le modèle Excel et les examine.
Outils
Services AWS
Amazon Elastic Compute Cloud (Amazon EC2) fournit une capacité de calcul évolutive dans le AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
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 Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
AWS Organizationsest un service de gestion de comptes qui vous aide à Comptes AWS en regrouper plusieurs au sein d'une organisation que vous créez et gérez de manière centralisée.
Amazon Simple Notification Service (Amazon SNS) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
AWS Systems Managervous aide à gérer vos applications et votre infrastructure exécutées dans le AWS Cloud. Il simplifie la gestion des applications et des ressources, réduit le délai de détection et de résolution des problèmes opérationnels et vous aide à gérer vos AWS ressources en toute sécurité à grande échelle. Ce modèle utilise Session Manager, une fonctionnalité de Systems Manager.
Autres outils
Prowler
est un outil de ligne de commande open source qui vous permet d'évaluer, d'auditer et de surveiller la conformité de vos comptes aux meilleures pratiques de AWS sécurité et aux autres cadres et normes de sécurité.
Référentiel de code
Le code de ce modèle est disponible dans l'évaluation de la sécurité GitHub multi-comptes via le référentiel Prowler
prowler_scan.sh — Ce script bash est utilisé pour démarrer une évaluation de sécurité multiple par Prowler, Comptes AWS en parallèle. Comme défini dans le fichier Prowler-Resources.yaml CloudFormationtemplate, ce script est automatiquement déployé dans le dossier de l'instance.
usr/local/prowler
EC2Prowler-Resources.yaml — Vous utilisez ce CloudFormation modèle pour créer une pile dans le compte de sécurité de l'organisation. Ce modèle déploie toutes les ressources requises pour ce compte afin de prendre en charge la solution. Cette pile doit être déployée avant le modèle IAM- ProwlerExecRole .yaml. Nous vous déconseillons de déployer ces ressources dans un compte hébergeant des charges de travail de production critiques.
Note
Si cette pile est supprimée et redéployée, vous devez reconstruire l'ensemble de
ProwlerExecRole
piles afin de rétablir les dépendances entre comptes entre les rôles IAM.IAM- ProwlerExecRole .yaml — Vous utilisez ce CloudFormation modèle pour créer un stack set qui déploie le rôle
ProwlerExecRole
IAM dans tous les comptes de l'organisation, y compris le compte de gestion.prowler-report-template.xlsm — Vous utilisez ce modèle Excel pour traiter les résultats du Prowler. Les tableaux croisés dynamiques du rapport fournissent des fonctionnalités de recherche, des graphiques et des résultats consolidés.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Clonez le référentiel de code. |
| AWS DevOps |
Passez en revue les modèles. |
| AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Fournir des ressources dans le compte de sécurité. | À l'aide du modèle prowler-resources.yaml, vous créez une CloudFormation pile qui déploie toutes les ressources requises dans le compte de sécurité. Pour obtenir des instructions, consultez la section Création d'une pile dans la CloudFormation documentation. Tenez compte des points suivants lors du déploiement de ce modèle :
| AWS DevOps |
Attribuez le rôle IAM dans les comptes des membres. | Dans le compte AWS Organizations de gestion ou dans un compte doté d'autorisations d'administrateur déléguées pour CloudFormation, utilisez le modèle IAM- ProwlerExecRole .yaml pour créer un CloudFormation stack set. Le stack set déploie le rôle
| AWS DevOps |
Attribuez le rôle IAM dans le compte de gestion. | À l'aide du modèle IAM- ProwlerExecRole .yaml, vous créez une CloudFormation pile qui déploie le rôle
| AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Lancez le scan. |
| Administrateur AWS |
Récupérez les découvertes du Prowler. |
| AWS général |
Arrêtez l' EC2 instance. | Pour empêcher la facturation lorsque l'instance est inactive, arrêtez l' EC2 instance qui exécute Prowler. Pour obtenir des instructions, consultez la section Arrêter et démarrer vos instances dans la EC2 documentation Amazon. | AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Importez les résultats. |
| AWS général |
Finalisez le rapport. |
| AWS général |
Tâche | Description | Compétences requises |
---|---|---|
Mettez à jour Prowler. | Si vous souhaitez mettre à jour Prowler vers la dernière version, procédez comme suit :
| AWS général |
Mettez à jour le script prowler_scan.sh. | Si vous souhaitez mettre à jour le script prowler_scan.sh vers la dernière version du dépôt, procédez comme suit :
NoteVous pouvez recevoir des avertissements concernant des fichiers générés localement qui ne figurent pas dans le GitHub dépôt, tels que la recherche de rapports. Vous pouvez les ignorer tant que le fichier prowler_scan.sh indique que les modifications stockées localement sont réintégrées. | AWS général |
Tâche | Description | Compétences requises |
---|---|---|
Supprimez toutes les ressources déployées. | Vous pouvez laisser les ressources déployées dans les comptes. Si vous arrêtez l' EC2 instance lorsqu'elle n'est pas utilisée et que vous laissez le compartiment S3 vide, cela réduit les coûts de maintenance des ressources pour les futures analyses. Si vous souhaitez déprovisionner toutes les ressources, procédez comme suit :
| AWS DevOps |
Résolution des problèmes
Problème | Solution |
---|---|
Impossible de se connecter à l' EC2 instance à l'aide du gestionnaire de session. | L'agent SSM doit être capable de communiquer avec le point de terminaison Systems Manager. Procédez comme suit :
|
Lorsque vous déployez le stack set, la CloudFormation console vous invite à | Cela indique que l'accès sécurisé n'a pas été activé entre AWS Organizations et CloudFormation. Un accès sécurisé est requis pour déployer le stack set géré par les services. Cliquez sur le bouton pour activer l'accès sécurisé. Pour plus d'informations, consultez la section Activer l'accès sécurisé dans la CloudFormation documentation. |
Ressources connexes
AWS documentation
Mise en œuvre de contrôles de sécurité sur AWS (AWS directives prescriptives)
Autres ressources
Prowler
() GitHub
Informations supplémentaires
Suppression des erreurs par programmation
Si les résultats contiennent des Access Denied
erreurs, vous devez les supprimer des résultats. Ces erreurs sont généralement dues à une influence externe sur les autorisations qui empêchent Prowler d'évaluer une ressource particulière. Par exemple, certaines vérifications échouent lors de l'examen des compartiments S3 provisionnés via. AWS Control Tower Vous pouvez extraire ces résultats par programmation et enregistrer les résultats filtrés dans un nouveau fichier.
Les commandes suivantes suppriment les lignes contenant une seule chaîne de texte (un modèle), puis affichent les résultats dans un nouveau fichier.
Pour Linux ou macOS (Grep)
grep -v -i "Access Denied getting bucket" myoutput.csv > myoutput_modified.csv
Pour Windows (PowerShell)
Select-String -Path myoutput.csv -Pattern 'Access Denied getting bucket' -NotMatch > myoutput_modified.csv
Les commandes suivantes suppriment les lignes correspondant à plusieurs chaînes de texte, puis affichent les résultats dans un nouveau fichier.
Pour Linux ou macOS (utilise un canal échappé entre les chaînes)
grep -v -i 'Access Denied getting bucket\|Access Denied Trying to Get' myoutput.csv > myoutput_modified.csv
Pour Windows (utilise une virgule entre les chaînes)
Select-String -Path myoutput.csv -Pattern 'Access Denied getting bucket', 'Access Denied Trying to Get' -NotMatch > myoutput_modified.csv
Exemples de rapports
L'image suivante est un exemple de la feuille de travail Conclusions du rapport sur les résultats consolidés de Prowler.

L'image suivante est un exemple de la feuille de travail Pass Fail figurant dans le rapport des résultats consolidés de Prowler. (Par défaut, les résultats de réussite sont exclus de la sortie.)

L'image suivante est un exemple de la feuille de travail sur la gravité figurant dans le rapport des résultats consolidés de Prowler.
