Prowler scanne vos environnements cloud et identifie les écarts de sécurité en quelques minutes. Avec plus de 570 contrôles AWS, 280 Azure, 180 GCP et 83 Kubernetes, il vérifie automatiquement la conformité aux standards CIS, NIST, PCI-DSS, SOC2 et bien d’autres.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Scanner un environnement cloud : lancer un audit AWS, Azure, GCP ou Kubernetes
- Vérifier la conformité : utiliser les frameworks CIS, NIST, PCI-DSS
- Analyser les résultats : comprendre et exploiter les rapports générés
- Automatiser : intégrer Prowler dans vos pipelines CI/CD
Qu’est-ce que Prowler ?
Section intitulée « Qu’est-ce que Prowler ? »Prowler est un outil open source de CSPM (Cloud Security Posture Management) qui audite automatiquement la sécurité de vos environnements cloud. Développé initialement pour AWS, il supporte maintenant plusieurs providers.
Analogie : Prowler est comme un inspecteur de sécurité qui visite votre infrastructure cloud avec une checklist de centaines de points à vérifier. Il note chaque problème, vous explique pourquoi c’est un risque et vous dit comment le corriger.
Providers supportés
Section intitulée « Providers supportés »| Provider | Checks | Frameworks | Cas d’usage |
|---|---|---|---|
| AWS | 570 | 40 | Comptes AWS, organisations |
| Azure | 280 | 16 | Subscriptions Azure |
| GCP | 180 | 14 | Projets Google Cloud |
| Kubernetes | 83 | 7 | Clusters K8s (minikube, EKS, AKS, GKE) |
| GitHub | 50+ | - | Repos, organisations |
| M365 | 100+ | - | Microsoft 365, Exchange |
Frameworks de conformité
Section intitulée « Frameworks de conformité »Prowler vérifie la conformité à de nombreux standards :
| Framework | Description | Providers |
|---|---|---|
| CIS Benchmarks | Bonnes pratiques de sécurité par le CIS | AWS, Azure, GCP, K8s |
| NIST 800-53 | Standard fédéral américain (rev. 4 et 5) | AWS, Azure, GCP |
| PCI-DSS | Sécurité des données de paiement (v3.2.1 et v4.0) | AWS, Azure, GCP, K8s |
| SOC2 | Contrôles pour les fournisseurs de services | AWS, Azure, GCP |
| HIPAA | Protection des données de santé | AWS, GCP |
| GDPR | Règlement européen sur les données | AWS |
| ISO 27001 | Management de la sécurité (2013 et 2022) | AWS, Azure, GCP, K8s |
| MITRE ATT&CK | Mapping des techniques d’attaque | AWS, Azure, GCP |
Installation
Section intitulée « Installation »Prowler s’installe via pip (Python ≥ 3.9) ou Docker.
# Installation avec pipx (isolé)pipx install prowler
# Ou avec pippip install prowler# Image stabledocker pull toniblyx/prowler:stable
# Exécuter un scan AWSdocker run -v ~/.aws:/root/.aws toniblyx/prowler:stable awsgit clone https://github.com/prowler-cloud/prowlercd prowlerpip install .Vérifiez l’installation :
prowler -vProwler 5.17.0Scanner AWS
Section intitulée « Scanner AWS »Prérequis
Section intitulée « Prérequis »Prowler utilise vos credentials AWS existants (profil configuré, variables d’environnement ou rôle IAM).
# Vérifier vos credentialsaws sts get-caller-identityScan complet
Section intitulée « Scan complet »prowler awsProwler exécute tous les 570 checks sur toutes les régions de votre compte.
Scan ciblé
Section intitulée « Scan ciblé »# Scanner uniquement eu-west-1 et eu-west-3prowler aws -f eu-west-1 eu-west-3# Scanner S3 et IAM uniquementprowler aws --services s3 iam
# Exclure certains servicesprowler aws --excluded-services ec2 rds# Exécuter des checks spécifiquesprowler aws --checks s3_bucket_public_access iam_root_mfa_enabled
# Exclure des checksprowler aws --excluded-checks s3_bucket_versioning_enabledScan de conformité
Section intitulée « Scan de conformité »Pour vérifier la conformité à un framework spécifique :
# CIS AWS Benchmark 2.0prowler aws --compliance cis_2.0_aws
# NIST 800-53 Revision 5prowler aws --compliance nist_800_53_revision_5_aws
# PCI-DSS v4.0prowler aws --compliance pci_4.0_awsExemple de sortie
Section intitulée « Exemple de sortie » _ _ __ _ __ _____ _| | ___ _ __| '_ \| '__/ _ \ \ /\ / / |/ _ \ '__|| |_) | | | (_) \ V V /| | __/ || .__/|_| \___/ \_/\_/ |_|\___|_|v5.17.0|_| the handy multi-cloud security tool
Date: 2026-01-23 16:48:00
Executing 570 checks, please wait...-> Scan completed! |▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉| 570/570 [100%] in 2m 30s
Overview Results:╭────────────────────┬────────────────────┬────────────────╮│ 15.2% (87) Failed │ 84.8% (483) Passed │ 0.0% (0) Muted │╰────────────────────┴────────────────────┴────────────────╯
Account 123456789012 Scan Results (severity columns are for fails only):╭──────────┬───────────┬───────────┬──────────┬────────┬──────────┬───────┬─────────╮│ Provider │ Service │ Status │ Critical │ High │ Medium │ Low │ Muted │├──────────┼───────────┼───────────┼──────────┼────────┼──────────┼───────┼─────────┤│ aws │ iam │ FAIL (12) │ 2 │ 5 │ 4 │ 1 │ 0 ││ aws │ s3 │ FAIL (8) │ 1 │ 3 │ 4 │ 0 │ 0 ││ aws │ ec2 │ FAIL (15) │ 0 │ 8 │ 7 │ 0 │ 0 │╰──────────┴───────────┴───────────┴──────────┴────────┴──────────┴───────┴─────────╯Scanner Kubernetes
Section intitulée « Scanner Kubernetes »Prowler peut auditer n’importe quel cluster Kubernetes : minikube, kind, EKS, AKS, GKE…
Prérequis
Section intitulée « Prérequis »Prowler utilise votre kubeconfig par défaut (~/.kube/config).
# Vérifier la connexion au clusterkubectl cluster-infoScan complet
Section intitulée « Scan complet »prowler kubernetesScan de conformité CIS
Section intitulée « Scan de conformité CIS »# CIS Kubernetes Benchmark 1.12prowler kubernetes --compliance cis_1.12_kubernetesExemple de sortie
Section intitulée « Exemple de sortie » _ _ __ _ __ _____ _| | ___ _ __| '_ \| '__/ _ \ \ /\ / / |/ _ \ '__|| |_) | | | (_) \ V V /| | __/ || .__/|_| \___/ \_/\_/ |_|\___|_|v5.17.0|_| the handy multi-cloud security tool
Date: 2026-01-23 16:49:48
-> Using the Kubernetes credentials below: · Kubernetes Cluster: minikube · User: minikube · Namespaces: default, kube-node-lease, kube-public, kube-system
Executing 81 checks, please wait...-> Scan completed! |▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉| 81/81 [100%] in 0.3s
Overview Results:╭───────────────────┬─────────────────────┬────────────────╮│ 9.46% (47) Failed │ 87.73% (436) Passed │ 0.0% (0) Muted │╰───────────────────┴─────────────────────┴────────────────╯
Context minikube Scan Results (severity columns are for fails only):╭────────────┬───────────────────┬───────────┬──────────┬────────┬──────────┬───────╮│ Provider │ Service │ Status │ Critical │ High │ Medium │ Low │├────────────┼───────────────────┼───────────┼──────────┼────────┼──────────┼───────┤│ kubernetes │ apiserver │ FAIL (12) │ 0 │ 5 │ 7 │ 0 ││ kubernetes │ controllermanager │ FAIL (1) │ 0 │ 0 │ 1 │ 0 ││ kubernetes │ rbac │ FAIL (19) │ 0 │ 19 │ 0 │ 0 │╰────────────┴───────────────────┴───────────┴──────────┴────────┴──────────┴───────╯Scanner Azure et GCP
Section intitulée « Scanner Azure et GCP »# Avec Azure CLI (az login)prowler azure --az-cli-auth
# Avec Service Principalprowler azure --sp-env-auth
# Subscriptions spécifiquesprowler azure --az-cli-auth --subscription-ids sub-id-1 sub-id-2# Avec compte utilisateur (gcloud auth)prowler gcp
# Avec Service Accountprowler gcp --credentials-file /path/to/sa-key.json
# Projets spécifiquesprowler gcp --project-ids project-1 project-2Formats de sortie
Section intitulée « Formats de sortie »Par défaut, Prowler génère des rapports CSV, JSON-OCSF et HTML.
# Spécifier les formatsprowler aws -M csv json-ocsf html
# Avec JSON-ASFF (pour AWS Security Hub)prowler aws -M json-asff
# Dossier de sortie personnaliséprowler aws -o /path/to/reports/Rapport HTML
Section intitulée « Rapport HTML »Le rapport HTML est interactif et facilement partageable :
| Section | Contenu |
|---|---|
| Overview | Résumé graphique des résultats |
| Findings | Liste détaillée par sévérité |
| Resources | Ressources affectées |
| Remediation | Recommandations de correction |
Dashboard local
Section intitulée « Dashboard local »Prowler inclut un dashboard local pour visualiser les résultats :
prowler dashboardOuvre un dashboard web sur http://localhost:8050 avec vos scans précédents.
Intégration CI/CD
Section intitulée « Intégration CI/CD »GitHub Actions
Section intitulée « GitHub Actions »name: Prowler Security Scan
on: schedule: - cron: '0 6 * * *' # Tous les jours à 6h workflow_dispatch:
jobs: prowler: runs-on: ubuntu-latest steps: - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: eu-west-1
- name: Run Prowler uses: prowler-cloud/prowler-action@v2 with: provider: aws compliance: cis_2.0_aws output-formats: html,json
- name: Upload results uses: actions/upload-artifact@v4 with: name: prowler-report path: output/GitLab CI
Section intitulée « GitLab CI »prowler-scan: image: toniblyx/prowler:stable stage: security script: - prowler aws --compliance cis_2.0_aws -M json html artifacts: paths: - output/ expire_in: 30 days rules: - if: $CI_PIPELINE_SOURCE == "schedule"Dépannage
Section intitulée « Dépannage »Problèmes courants
Section intitulée « Problèmes courants »| Symptôme | Cause probable | Solution |
|---|---|---|
NoCredentialProviders | Pas de credentials AWS | Configurez aws configure ou les variables d’environnement |
AccessDenied sur certains checks | Permissions insuffisantes | Ajoutez la policy SecurityAudit |
| Scan très lent | Toutes régions scannées | Limitez avec -f eu-west-1 |
Error: context deadline exceeded | Timeout Kubernetes | Vérifiez la connectivité au cluster |
Commandes de diagnostic
Section intitulée « Commandes de diagnostic »# Vérifier les credentials AWSaws sts get-caller-identity
# Vérifier la connexion Kuberneteskubectl auth can-i list pods --all-namespaces
# Lister les checks disponiblesprowler aws --list-checks | grep s3
# Lister les services scannablesprowler aws --list-servicesBonnes pratiques
Section intitulée « Bonnes pratiques »Sécurité
Section intitulée « Sécurité »- Principe du moindre privilège : créez un rôle IAM dédié avec uniquement les permissions de lecture nécessaires
- Pas de credentials en clair : utilisez des rôles IAM, des Service Accounts ou des variables d’environnement
- Chiffrez les rapports : les résultats contiennent des informations sensibles sur votre infrastructure
Organisation
Section intitulée « Organisation »- Scans réguliers : planifiez des scans quotidiens ou hebdomadaires
- Baseline : établissez une baseline et suivez l’évolution dans le temps
- Priorisation : traitez d’abord les findings Critical et High
- Muting : utilisez
--muted-checkspour les faux positifs acceptés
Performance
Section intitulée « Performance »- Ciblez les régions : scannez uniquement les régions utilisées avec
-f - Parallélisation : Prowler parallélise automatiquement les checks
- Cache : les scans suivants sont plus rapides grâce au cache local
À retenir
Section intitulée « À retenir »- Prowler scanne 10+ providers cloud avec des centaines de contrôles de sécurité prêts à l’emploi
- 40+ frameworks de conformité : CIS, NIST, PCI-DSS, SOC2, HIPAA, GDPR, ISO 27001…
- Installation simple :
pip install prowleret c’est prêt, utilise vos credentials existants - Commande de base :
prowler awspour un scan complet,--compliance cis_2.0_awspour un framework spécifique - Rapports exploitables : CSV, JSON, HTML avec recommandations de remédiation
- Kubernetes aussi : auditez vos clusters avec les benchmarks CIS Kubernetes
- CI/CD ready : GitHub Actions, GitLab CI avec l’image Docker officielle
Prochaines étapes
Section intitulée « Prochaines étapes »Ressources
Section intitulée « Ressources »- Site officiel : prowler.com
- Documentation : docs.prowler.com
- GitHub : github.com/prowler-cloud/prowler
- Prowler Hub : hub.prowler.com - Catalogue des checks et frameworks
Questions fréquentes
Section intitulée « Questions fréquentes »Définition
Prowler est un outil open source de CSPM (Cloud Security Posture Management) qui audite automatiquement la sécurité de vos environnements cloud.
Fonctionnalités principales
| Fonctionnalité | Description |
|---|---|
| Multi-cloud | AWS, Azure, GCP, Kubernetes |
| 570+ checks AWS | Contrôles de sécurité prédéfinis |
| 40+ frameworks | CIS, NIST, PCI-DSS, SOC2, HIPAA... |
| Rapports | CSV, JSON, HTML, dashboard |
Exemple d'utilisation
# Scanner AWS avec conformité CIS 2.0
prowler aws --compliance cis_2.0_aws
# Scanner Kubernetes
prowler kubernetes
Comparaison
| Critère | Prowler | Trivy |
|---|---|---|
| Focus | Posture cloud (CSPM) | Vulnérabilités (CVE) |
| Cible | Configuration AWS/Azure/GCP/K8s | Images, IaC, SBOM, secrets |
| Standards | CIS, NIST, PCI-DSS, SOC2 | CVE databases |
| Question | "Est-ce bien configuré ?" | "Y a-t-il des failles connues ?" |
Quand utiliser chacun ?
- Prowler : Vérifier que votre S3 n'est pas public, que MFA est activé, que les logs sont activés
- Trivy : Détecter une CVE critique dans votre image nginx ou une faille dans votre Terraform
Complémentaires
Les deux outils sont complémentaires dans une stratégie DevSecOps :
# Pipeline CI/CD
trivy image mon-app:latest # Vulnérabilités image
prowler aws # Configuration cloud
Installation pip (recommandé)
# Avec pipx (isolé)
pipx install prowler
# Ou avec pip
pip install prowler
Installation Docker
docker pull toniblyx/prowler:stable
# Exécuter un scan
docker run -v ~/.aws:/root/.aws toniblyx/prowler:stable aws
Prérequis
| Méthode | Prérequis |
|---|---|
| pip | Python ≥ 3.9, ≤ 3.12 |
| Docker | Docker installé |
| AWS | Credentials configurés |
Vérification
prowler -v
# Prowler 5.17.0
Scan complet
prowler aws
Exécute les 570 checks sur toutes les régions.
Scan ciblé
# Par région
prowler aws -f eu-west-1 eu-west-3
# Par service
prowler aws --services s3 iam ec2
# Par check
prowler aws --checks s3_bucket_public_access
Scan de conformité
# CIS AWS 2.0
prowler aws --compliance cis_2.0_aws
# NIST 800-53
prowler aws --compliance nist_800_53_revision_5_aws
# PCI-DSS v4.0
prowler aws --compliance pci_4.0_aws
Lister les options
prowler aws --list-compliance # 40 frameworks
prowler aws --list-services # 83 services
prowler aws --list-checks # 570 checks
Scan complet
prowler kubernetes
Utilise automatiquement ~/.kube/config.
Scan de conformité CIS
prowler kubernetes --compliance cis_1.12_kubernetes
Options disponibles
# Kubeconfig personnalisé
prowler kubernetes --kubeconfig-file /path/to/config
# Namespaces spécifiques
prowler kubernetes --namespaces production staging
# Contexte spécifique
prowler kubernetes --context my-cluster
Frameworks Kubernetes
| Framework | Description |
|---|---|
cis_1.12_kubernetes |
CIS Benchmark 1.12 |
cis_1.11_kubernetes |
CIS Benchmark 1.11 |
pci_4.0_kubernetes |
PCI-DSS v4.0 |
iso27001_2022_kubernetes |
ISO 27001:2022 |
Frameworks par provider
| Provider | Nombre | Exemples |
|---|---|---|
| AWS | 40 | CIS 2.0-5.0, NIST, PCI-DSS, SOC2, HIPAA |
| Azure | 16 | CIS 2.0-5.0, ISO 27001, PCI-DSS |
| GCP | 14 | CIS 2.0-4.0, HIPAA, SOC2 |
| Kubernetes | 7 | CIS 1.8-1.12, PCI-DSS, ISO 27001 |
Frameworks principaux
- CIS Benchmarks : Bonnes pratiques de sécurité
- NIST 800-53 : Standard fédéral américain (rev. 4 et 5)
- PCI-DSS : Sécurité des données de paiement
- SOC2 : Contrôles pour fournisseurs de services
- HIPAA : Protection des données de santé
- GDPR : Règlement européen sur les données
- ISO 27001 : Management de la sécurité
- MITRE ATT&CK : Mapping des techniques d'attaque
Lister les frameworks
prowler aws --list-compliance
prowler kubernetes --list-compliance
GitHub Actions
name: Prowler Security Scan
on:
schedule:
- cron: '0 6 * * *'
jobs:
prowler:
runs-on: ubuntu-latest
steps:
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-1
- uses: prowler-cloud/prowler-action@v2
with:
provider: aws
compliance: cis_2.0_aws
- uses: actions/upload-artifact@v4
with:
name: prowler-report
path: output/
GitLab CI
prowler-scan:
image: toniblyx/prowler:stable
script:
- prowler aws --compliance cis_2.0_aws -M json html
artifacts:
paths:
- output/
Policy recommandée
La policy SecurityAudit managée par AWS couvre la majorité des besoins :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"arn:aws:iam::aws:policy/SecurityAudit"
]
}
]
}
Permissions supplémentaires
Certains checks nécessitent des permissions additionnelles :
| Service | Permission |
|---|---|
| Support | support:Describe* |
| Account | account:Get* |
| Billing | aws-portal:View* |
Vérifier vos permissions
# Identité actuelle
aws sts get-caller-identity
# Tester un check spécifique
prowler aws --checks iam_root_mfa_enabled
Principe du moindre privilège
Créez un rôle IAM dédié avec uniquement les permissions nécessaires aux services que vous scannez.