Aller au contenu
Sécurité medium

Prowler : audit de sécurité cloud multi-providers

16 min de lecture

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.

  • 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

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.

Architecture Prowler avec ses providers et frameworks de conformité
ProviderChecksFrameworksCas d’usage
AWS57040Comptes AWS, organisations
Azure28016Subscriptions Azure
GCP18014Projets Google Cloud
Kubernetes837Clusters K8s (minikube, EKS, AKS, GKE)
GitHub50+-Repos, organisations
M365100+-Microsoft 365, Exchange

Prowler vérifie la conformité à de nombreux standards :

FrameworkDescriptionProviders
CIS BenchmarksBonnes pratiques de sécurité par le CISAWS, Azure, GCP, K8s
NIST 800-53Standard fédéral américain (rev. 4 et 5)AWS, Azure, GCP
PCI-DSSSécurité des données de paiement (v3.2.1 et v4.0)AWS, Azure, GCP, K8s
SOC2Contrôles pour les fournisseurs de servicesAWS, Azure, GCP
HIPAAProtection des données de santéAWS, GCP
GDPRRèglement européen sur les donnéesAWS
ISO 27001Management de la sécurité (2013 et 2022)AWS, Azure, GCP, K8s
MITRE ATT&CKMapping des techniques d’attaqueAWS, Azure, GCP

Prowler s’installe via pip (Python ≥ 3.9) ou Docker.

Fenêtre de terminal
# Installation avec pipx (isolé)
pipx install prowler
# Ou avec pip
pip install prowler

Vérifiez l’installation :

Fenêtre de terminal
prowler -v
Sortie attendue
Prowler 5.17.0

Prowler utilise vos credentials AWS existants (profil configuré, variables d’environnement ou rôle IAM).

Fenêtre de terminal
# Vérifier vos credentials
aws sts get-caller-identity
Fenêtre de terminal
prowler aws

Prowler exécute tous les 570 checks sur toutes les régions de votre compte.

Fenêtre de terminal
# Scanner uniquement eu-west-1 et eu-west-3
prowler aws -f eu-west-1 eu-west-3

Pour vérifier la conformité à un framework spécifique :

Fenêtre de terminal
# CIS AWS Benchmark 2.0
prowler aws --compliance cis_2.0_aws
# NIST 800-53 Revision 5
prowler aws --compliance nist_800_53_revision_5_aws
# PCI-DSS v4.0
prowler aws --compliance pci_4.0_aws
_
_ __ _ __ _____ _| | ___ _ __
| '_ \| '__/ _ \ \ /\ / / |/ _ \ '__|
| |_) | | | (_) \ 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 │
╰──────────┴───────────┴───────────┴──────────┴────────┴──────────┴───────┴─────────╯

Prowler peut auditer n’importe quel cluster Kubernetes : minikube, kind, EKS, AKS, GKE…

Prowler utilise votre kubeconfig par défaut (~/.kube/config).

Fenêtre de terminal
# Vérifier la connexion au cluster
kubectl cluster-info
Fenêtre de terminal
prowler kubernetes
Fenêtre de terminal
# CIS Kubernetes Benchmark 1.12
prowler kubernetes --compliance cis_1.12_kubernetes
_
_ __ _ __ _____ _| | ___ _ __
| '_ \| '__/ _ \ \ /\ / / |/ _ \ '__|
| |_) | | | (_) \ 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 │
╰────────────┴───────────────────┴───────────┴──────────┴────────┴──────────┴───────╯
Fenêtre de terminal
# Avec Azure CLI (az login)
prowler azure --az-cli-auth
# Avec Service Principal
prowler azure --sp-env-auth
# Subscriptions spécifiques
prowler azure --az-cli-auth --subscription-ids sub-id-1 sub-id-2

Par défaut, Prowler génère des rapports CSV, JSON-OCSF et HTML.

Fenêtre de terminal
# Spécifier les formats
prowler 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/

Le rapport HTML est interactif et facilement partageable :

SectionContenu
OverviewRésumé graphique des résultats
FindingsListe détaillée par sévérité
ResourcesRessources affectées
RemediationRecommandations de correction

Prowler inclut un dashboard local pour visualiser les résultats :

Fenêtre de terminal
prowler dashboard

Ouvre un dashboard web sur http://localhost:8050 avec vos scans précédents.

.github/workflows/prowler.yml
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.yml
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"
SymptômeCause probableSolution
NoCredentialProvidersPas de credentials AWSConfigurez aws configure ou les variables d’environnement
AccessDenied sur certains checksPermissions insuffisantesAjoutez la policy SecurityAudit
Scan très lentToutes régions scannéesLimitez avec -f eu-west-1
Error: context deadline exceededTimeout KubernetesVérifiez la connectivité au cluster
Fenêtre de terminal
# Vérifier les credentials AWS
aws sts get-caller-identity
# Vérifier la connexion Kubernetes
kubectl auth can-i list pods --all-namespaces
# Lister les checks disponibles
prowler aws --list-checks | grep s3
# Lister les services scannables
prowler aws --list-services
  • 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
  • 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-checks pour les faux positifs acceptés
  • 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
  1. Prowler scanne 10+ providers cloud avec des centaines de contrôles de sécurité prêts à l’emploi
  2. 40+ frameworks de conformité : CIS, NIST, PCI-DSS, SOC2, HIPAA, GDPR, ISO 27001…
  3. Installation simple : pip install prowler et c’est prêt, utilise vos credentials existants
  4. Commande de base : prowler aws pour un scan complet, --compliance cis_2.0_aws pour un framework spécifique
  5. Rapports exploitables : CSV, JSON, HTML avec recommandations de remédiation
  6. Kubernetes aussi : auditez vos clusters avec les benchmarks CIS Kubernetes
  7. CI/CD ready : GitHub Actions, GitLab CI avec l’image Docker officielle