Commencez parWAFPass
Installez la pile de conformité WAF++ open-source et lancez votre première évaluation en cinq étapes. Pas d'identification cloud, pas de boîte noire — juste une analyse statique sur votre Infrastructure-as-Code.
De zéro à votre première vérification en cinq étapes.
Suivez le chemin numéroté ci-dessous. Chaque étape se connecte à la section correspondante afin de ne jamais perdre l'orientation.
Démarrage rapide : votre premier WAF++ contrôle
Ce tutoriel vous donne un résultat garanti. Vous allez installer le WAFPass CLI, télécharger le WAF++ contrôle, crée un fichier Terraform minimal, et voir WAFPass drapeau une vraie découverte.
Choisissez votre chemin
Pour ce tutoriel, vous n'avez besoin que de l'ICL. Si vous voulez déjà le tableau de bord complet + serveur, sautez àComposez Dockeraprès le premier scan.
Installez le CLI
WAFPass est publié à PyPIwafpass-core. Python 3.11+ est recommandé.
Obtenez les contrôles
Télécharger le catalogue de contrôle WAF++ et l'extraire dans uncontrols/dossier à côté de l'endroit où vous lancez des scans.
Créer un fichier Terraform minimal et le scanner
Gardez cet exemple délibérément imparfaitmain.tf. WAFPass devrait signaler au moins une recherche de sécurité.
provider "aws" {
region = "eu-central-1"
}
resource "aws_s3_bucket" "public" {
bucket = "wafpp-first-check-demo"
}
resource "aws_s3_bucket_public_access_block" "public" {
bucket = aws_s3_bucket.public.id
block_public_acls = false
block_public_policy = false
ignore_public_acls = false
restrict_public_buckets = false
}
Voir les résultats
Dans le terminal, vous verrez un résumé comme celui-ci — un FAIL pour le seau public S3, groupé par pilier et contrôle.
{
"total_controls": 83,
"passed": 81,
"failed": 2,
"pillars": {
"security": { "passed": 18, "failed": 2 }
}
}
Pour explorer visuellement les résultats, lancez laPile Docker Composeet pousse le JSON àhttp://localhost:8000/runs.
Deux façons d'exécuter WAFPass.
Commencez par le CLI pour le premier balayage le plus rapide, ou déployez la pile complète si vous avez besoin de persistance, d'historique et d'un tableau de bord visuel.
Pile Docker Compose
CLI + Serveur + Tableau de bord + PostgreSQL + Keycloak dans une commande. Le meilleur pour les équipes, les auditeurs et tous ceux qui veulent un historique de conformité persistant.
Configuration complète de la pile → Plus viteCLI seulement
Installerwafpass-coreà partir de PyPI et effectuer des vérifications directement dans votre terminal ou pipeline CI. Ajouter Server et Dashboard plus tard lorsque vous en avez besoin.
Trois composantes. Un travail de conformité.
Installez simplement le CLI pour les pipelines CI/CD, ou ajoutez le serveur et le tableau de bord pour l'historique persistant et l'exploration visuelle.
Moteur d'évaluation de base. Parses Terraform et AWS CDK, fonctionnent dans n'importe quel pipeline CI/CD. Pas d'identifiants cloud nécessaires.
PyPI: wafpass-coreAPI REST FastAPI avec PostgreSQL. Les magasins fonctionnent, les renonciations, les acceptations de risques, les constatations de secrets et les événements de vérification complets.
PyPI: serveur wafpassRéagissez au tableau de bord web. 22+ pages d'exploration de la conformité, d'exportation de preuves prêtes à l'audit et de gestion du rôle du CCRA.
Réagir + VitComposez Docker: Complet complet
Le WAF2p/pass monorepo expédie undocker-compose.yml. Clone une fois, configurer votre.env, et faire monter toute la pile en une seule commande.
| Services | URL | Désignation des marchandises |
|---|---|---|
| wafpass-dashboard | http://localhost:3000 |
Réagir au tableau de bord |
| wafpass-serveur | http://localhost:8000 |
API REST FastAPI |
| Porte-clés (SSO) | http://localhost:8080 |
Fournisseur d'identité (admin / admin) |
| postgres | localhost:5432 |
Base de données PostgreSQLTM |
Poussez votre premier résultat :
Voir le fichier complet docker-compose.yml
services:
# ── PostgreSQL ────────────────────────────────────────────
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-wafpass}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-wafpass}
POSTGRES_DB: ${POSTGRES_DB:-wafpass}
volumes:
- postgres_data:/var/lib/postgresql/data
- ./keycloak/init.sql:/docker-entrypoint-initdb.d/01-keycloak-db.sql:ro
ports:
- "${POSTGRES_PORT:-5432}:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-wafpass} -d ${POSTGRES_DB:-wafpass}"]
interval: 5s
timeout: 5s
retries: 10
# ── wafpass-server ────────────────────────────────────────
wafpass-server:
build:
context: .
dockerfile: wafpass-server/Dockerfile
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-wafpass}:${POSTGRES_PASSWORD:-wafpass}@postgres:5432/${POSTGRES_DB:-wafpass}
WAFPASS_ENV: ${WAFPASS_ENV:-local}
CORS_ORIGINS: ${API_URL:-http://localhost:3000},http://wafpass-dashboard,http://cloud.waf2p
WAFPASS_CONTROLS_DIR: ${WAFPASS_CONTROLS_DIR:-/app/controls}
WAFPASS_JWT_SECRET: ${WAFPASS_JWT_SECRET:-change-me-in-production}
WAFPASS_JWT_EXPIRE_MINUTES: ${WAFPASS_JWT_EXPIRE_MINUTES:-60}
WAFPASS_JWT_REFRESH_DAYS: ${WAFPASS_JWT_REFRESH_DAYS:-7}
WAFPASS_ADMIN_USERNAME: ${WAFPASS_ADMIN_USERNAME:-admin}
WAFPASS_ADMIN_PASSWORD: ${WAFPASS_ADMIN_PASSWORD:-admin}
WAFPASS_ADMIN_ROLE: ${WAFPASS_ADMIN_ROLE:-admin}
WAFPASS_API_KEY: ${WAFPASS_API_KEY:-key}
ports:
- "8000:8000"
# ── Keycloak (SSO / IdP — dev mode) ──────────────────────
keycloak:
image: quay.io/keycloak/keycloak:26.1
command: start-dev
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/${KEYCLOAK_DB:-keycloak}
KC_DB_USERNAME: ${KEYCLOAK_DB_USER:-keycloak}
KC_DB_PASSWORD: ${KEYCLOAK_DB_PASSWORD:-keycloak}
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN_USER:-admin}
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-admin}
KC_HTTP_ENABLED: "true"
KC_HOSTNAME_STRICT: "false"
KC_HEALTH_ENABLED: "true"
ports:
- "${KEYCLOAK_PORT:-8080}:8080"
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:8080/health/ready || exit 1"]
interval: 15s
timeout: 5s
retries: 20
start_period: 60s
# ── wafpass-dashboard ─────────────────────────────────────
wafpass-dashboard:
build:
context: ./wafpass-dashboard
dockerfile: Dockerfile
restart: unless-stopped
depends_on:
- wafpass-server
ports:
- "3000:80"
volumes:
postgres_data:
Installer les composants individuellement
Installez seulement ce dont vous avez besoin. Commencez par l'IDC pour l'intégration immédiate CI/CD, puis ajoutez le serveur et le tableau de bord lorsque vous êtes prêt pour l'exploration persistante de l'historique et de la conformité visuelle.
Le moteur d'évaluation de base — analyse IaC, évaluation des contrôles, production de rapports
PyPI (recommandé)
Source
macOS (Série Apple M)
La couche de persistance FastAPI — les magasins fonctionnent, les renonciations, les conclusions de secrets et les événements de vérification
PyPI (recommandé)
Configuration du démarrage de &
Les documents API disponibles àhttp://localhost:8000/api/docs
Réagir tableau de bord web — 22 + vues de conformité, exportation de preuves, RBAC
Bloquer les commits non conformes.
WAFPass expédie un crochet pré-engagement qui effectue des vérifications de conformité avant chaquegit commit. Les commits non conformes sont bloqués automatiquement — pas d'appel cloud, pas d'attente CI supplémentaire.
Fonctionne sur macOS, Linux et Windows (Git Bash / PowerShell).
Configuration unique
Lève-toi et cours.
Téléchargez les commandes, lancez votre premier scan et ouvrez le tableau de bord pour explorer votre posture de conformité.
Les commandes WAF++ sont publiées séparément et téléchargées sur demande.
- Visitewaf2p.dev/wafpass/
- Cliquez surTélécharger les contrôles
- Extraire dans votre répertoire de contrôles
Point WAFPass à votre code Terraform ou CDK et obtenir un rapport de conformité complet.
Explorez votre posture de conformité, gérez les dispenses et exportez des trousses de preuves.
- Ouvrir
localhost:3000oulocalhost:5173(dev) - Connectez-vous avec les identifiants admin de votre
.env - Explorer les résultats, la dérive et la matrice de conformité
Problèmes courants & corrige.
Réponses rapides aux problèmes de configuration les plus fréquents.
Contrôles non trouvés
Siwafpass checkrapports "régime de contrôle non trouvé", le CLI affichera automatiquement les instructions de téléchargement. Suivez laaprès l'installationpas plus haut.
Port déjà utilisé
Utilisez un port différent pour le serveur ou le tableau de bord :
Erreurs de connexion à la base de données
Verify PostgreSQLTM fonctionne et votreDATABASE_URLest correct:
La construction de Docker échoue
Assurez-vous que les trois dépôts sont clonés côte à côte dans le même répertoire parent :
Tu as fait ton premier chèque. Et ensuite ?
Choisissez l'étape suivante qui correspond à votre rôle : approfondir les connaissances du cadre, transférer WAFPass dans CI/CD, ou explorer le tableau de bord visuel complet.
Explorez les 8 piliers
Comprendre le cadre WAF++ et les contrôles derrière chaque pilier.
Lire plus → AnnexeAjouter aux actions GitHub
Bloquer les fusions non conformes avant qu'elles n'atteignent votre branche principale.
Configurer action → 03Lire les documents
Référence CLI, API serveur, configuration et utilisation avancée.
Ouvrir docs →