Réaliser un inventaire sécurité d’un compte AWS avec Prowler, en se concentrant sur les contrôles liés au compte AWS, à IAM et aux bonnes pratiques de gouvernance des identités.
Préparer un environnement local
Installer Prowler
Vérifier l’identité AWS utilisée
Lancer une analyse ciblée IAM
Lancer une analyse ciblée sur les contrôles du compte AWS
Prowler a besoin de droits en lecture large sur le compte pour exécuter ses contrôles. Le profil utilisé doit disposer au minimum de la politique AWS managée SecurityAudit ou ReadOnlyAccess.
Sans ces droits, les analyses peuvent échouer silencieusement ou produire des résultats partiels sans message d’erreur explicite.
Vérifier les politiques attachées au profil default :
3.3. Stocker l’identifiant du compte et les variables du TP
Fenêtre de terminal
ID_COMPTE=$(awsstsget-caller-identity\
--profiledefault\
--queryAccount\
--outputtext)
PROFIL_AWS="default"
REGION_AWS="eu-west-1"
DATE_ANALYSE=$(date+"%Y%m%d-%H%M%S")
echo"$ID_COMPTE"
echo"$PROFIL_AWS / $REGION_AWS / $DATE_ANALYSE"
Étape 4 : Première analyse IAM
4.1. Lancer les contrôles IAM
Fenêtre de terminal
prowleraws\
--profile"$PROFIL_AWS"\
--servicesiam\
--output-directoryrapports/iam\
--output-formatsjsoncsvhtml
4.2. Lister les rapports IAM générés
Fenêtre de terminal
findrapports/iam-typef
4.3. Ouvrir le rapport HTML IAM
Fenêtre de terminal
# macOS
open"$(lsrapports/iam/*.html|head-1)"
# Linux
xdg-open"$(lsrapports/iam/*.html|head-1)"
Le rapport IAM présente les contrôles liés aux identités, aux utilisateurs, aux clés d’accès, à l’authentification, aux rôles, aux groupes et aux politiques IAM.
Étape 5 : Analyse des résultats IAM
Note sur les grep CSV : les commandes suivantes recherchent dans l’ensemble du fichier CSV. Un mot comme FAIL ou mfa peut apparaître dans plusieurs colonnes. Les comptages donnent une estimation du volume, pas un décompte exact par colonne. Pour une analyse précise, utiliser le rapport HTML ou ouvrir le CSV dans un tableur.
Configurer contacts sécurité, facturation et opérations
Paramètres de compte non maîtrisés
Gouvernance insuffisante
Formaliser la gestion du compte
Étape 7 : Analyse par sévérité
Note : la concaténation de plusieurs CSV peut produire des lignes d’en-tête intercalées. Les grep suivants fonctionnent quand même — la ligne d’en-tête ne contient pas critical, high, medium ou low comme valeur de sévérité.
Les constats critiques et élevés sont à regarder en premier. Un constat en échec doit être interprété dans son contexte. La priorité dépend de la sévérité, de l’exposition, du type d’identité concerné et de la facilité de correction.
Étape 8 : Analyse ciblée avec des contrôles Prowler
8.1. Lister les contrôles disponibles
Fenêtre de terminal
prowleraws--list-checks|head-n50
prowleraws--list-checks|grep"^iam_"|head-n50
prowleraws--list-checks|grep"^account_"|head-n50
8.2. Exécuter un contrôle IAM précis
Prérequis : vérifier que le contrôle existe dans la version installée avant de l’exécuter :
Fenêtre de terminal
prowleraws--list-checks|grep"mfa"
Exemple avec un contrôle MFA (adapter le nom si nécessaire) :
L’exécution ciblée réduit le périmètre d’analyse et est utile pour travailler sur une famille de risques précise. Les noms de contrôles peuvent évoluer selon la version de Prowler.
Étape 9 : Remédiation simple sur IAM
9.1. Vérifier la politique de mot de passe actuelle
Fenêtre de terminal
awsiamget-account-password-policy\
--profile"$PROFIL_AWS"
Note : si aucune politique n’existe, cette commande retourne une erreur NoSuchEntity. La commande suivante crée ou remplace la politique.
9.2. Définir une politique de mot de passe renforcée
Fenêtre de terminal
awsiamupdate-account-password-policy\
--minimum-password-length14\
--require-symbols\
--require-numbers\
--require-uppercase-characters\
--require-lowercase-characters\
--allow-users-to-change-password\
--max-password-age90\
--password-reuse-prevention5\
--profile"$PROFIL_AWS"
9.3. Vérifier la politique appliquée
Fenêtre de terminal
awsiamget-account-password-policy\
--profile"$PROFIL_AWS"
Étape 10 : Inspection des utilisateurs et clés d’accès
10.1. Lister les utilisateurs IAM
Fenêtre de terminal
awsiamlist-users\
--profile"$PROFIL_AWS"
UTILISATEUR_IAM=$(awsiamlist-users\
--profile"$PROFIL_AWS"\
--query'Users[0].UserName'\
--outputtext)
echo"$UTILISATEUR_IAM"
Remplacer $UTILISATEUR_IAM par tout autre nom d’utilisateur du compte si besoin.
10.2. Lister les clés d’accès de cet utilisateur
Fenêtre de terminal
awsiamlist-access-keys\
--user-name"$UTILISATEUR_IAM"\
--profile"$PROFIL_AWS"
10.3. Consulter les politiques attachées et inline
Fenêtre de terminal
awsiamlist-attached-user-policies\
--user-name"$UTILISATEUR_IAM"\
--profile"$PROFIL_AWS"
awsiamlist-user-policies\
--user-name"$UTILISATEUR_IAM"\
--profile"$PROFIL_AWS"
Les clés d’accès permanentes doivent être limitées aux cas réellement nécessaires. Les groupes IAM ou rôles IAM sont généralement préférables aux politiques directement attachées à des utilisateurs.
Certains constats peuvent disparaître après correction. D’autres restent présents car ils dépendent d’éléments non modifiés pendant le TP. L’objectif est de comprendre le lien entre une remédiation et le résultat Prowler correspondant.
Étape 12 : Construction d’une synthèse locale
Fenêtre de terminal
cat>notes/synthese-prowler.md<<'EOF'
# Synthèse Prowler
## Compte analysé
Le compte AWS a été analysé avec Prowler à partir du profil AWS CLI configuré localement.
## Périmètre analysé
Les contrôles réalisés portent principalement sur IAM et Account.
## Constats prioritaires
- identités sans MFA
- clés d'accès anciennes ou inutilisées
- politiques IAM trop larges
- utilisateur racine
- politique de mot de passe
- contacts ou paramètres de compte incomplets
## Axes de remédiation
1. renforcer la politique de mot de passe
2. activer MFA pour les identités humaines
3. supprimer les clés d'accès inutiles
4. réduire les politiques IAM trop permissives
5. éviter les permissions directement attachées aux utilisateurs lorsque ce n'est pas nécessaire
6. compléter les informations de sécurité du compte
7. relancer Prowler après correction
## Limites de l'analyse
Prowler fournit un inventaire technique. Chaque constat doit être interprété selon le contexte réel du compte, l'usage des identités, les contraintes opérationnelles et la gouvernance en place.
EOF
catnotes/synthese-prowler.md
Nettoyage
Fenêtre de terminal
rm-rfrapportsnotes
deactivate
rm-rf.venv
cd..
rm-rftp-inventaire-securite-prowler
Points clés
Prowler analyse statiquement un compte AWS sans modifier aucune ressource
Le profil AWS doit disposer de SecurityAudit ou ReadOnlyAccess — sans cela, les analyses sont silencieusement incomplètes
Un constat en échec n’est pas toujours une vulnérabilité exploitable immédiatement
Un constat en réussite ne garantit pas que le compte est entièrement sécurisé
Prioriser par sévérité, puis par exposition réelle et facilité de correction
L’analyse ciblée (--services iam) est plus rapide qu’une analyse globale
Comparer deux analyses (avant/après correction) mesure l’efficacité d’une remédiation
Repères formateur
Résultat attendu
L’analyse Prowler produit plusieurs rapports sur IAM et le compte AWS. Les résultats dépendent de l’état initial du compte — un compte récent produit moins de constats qu’un compte utilisé depuis longtemps.
Constats fréquents
absence de MFA sur certaines identités
clés d'accès anciennes
politique de mot de passe absente ou insuffisante
utilisateur racine non protégé par MFA
politiques IAM trop larges
permissions attachées directement à des utilisateurs
contacts de compte incomplets
Analyse attendue
Les constats doivent être priorisés selon la sévérité, l’exposition réelle, le type d’identité concerné, la criticité des permissions, la facilité de correction et l’impact opérationnel.
Points de vigilance
Si le profil default ne dispose pas des droits SecurityAudit ou ReadOnlyAccess, les analyses peuvent échouer silencieusement ou être incomplètes.
Synthèse attendue
lancer une analyse ciblée IAM et Account
générer des rapports HTML, CSV et JSON
repérer les constats en échec
filtrer par sévérité
identifier les risques prioritaires
appliquer une remédiation simple (politique de mot de passe)