Onboarding · Il tuo primo assegno in 15 minuti

Iniziare conWAFPass

Installare lo stack di conformità WAF++ open source ed eseguire la prima valutazione in cinque passaggi. Nessuna credenziali cloud, nessuna scatola nera — solo analisi statica sul tuo Infrastructure-as-Code.

V1.1.0
WAFPass CLI
8
Pilastri
83+
Controlli
Docker.
Completo pronto
Apache 2.0
Codice di licenza
RICERCATO

Da zero al primo assegno in cinque passi.

Seguire il percorso numerato qui sotto. Ogni passo si collega alla sezione corrispondente in modo da non perdere mai l'orientamento.

Inizio rapido: il tuo primo WAF++ Verifica

Questo tutorial ti dà un risultato garantito. Installerai il WAFPass CLI, scarica il WAF++ controlli, creare un file Terraform minimale e vedere la bandiera WAFPass un vero e proprio risultato.

1

Scegli il tuo percorso

Per questo tutorial hai solo bisogno del CLI. Se si desidera già il cruscotto completo + server, saltare aDocker Composedopo la prima scansione.

2

Installare il CLI

WAFPass è pubblicato su PyPI comewafpass-core. Python 3.11+ è raccomandato.

Bash
$ pip install wafpass-core
$ wafpass --versione
3

Ottieni i controlli

Scarica il catalogo dei controlli WAF++ ed estrarlo in uncontrols/cartella accanto a dove si esegue le scansioni.

Bash
$ unzip wafpp-controls.zip -d controlli/
$ ls control/ | head -5
4

Creare un file Terraform minimale e scansionarlo

Salvare questo esempio deliberatamente imperfetto comemain.tf. WAFPass dovrebbe contrassegnare almeno un rilevamento di sicurezza.

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
}
Bash
$ --output json | jq '.summary'
5

Vedi i risultati

Nel terminal si vedrà un riassunto come questo — un FAIL per il secchio S3 pubblico, raggruppato per pilastro e controllo.

{
  "total_controls": 83,
  "passed": 81,
  "failed": 2,
  "pillars": {
    "security": { "passed": 18, "failed": 2 }
  }
}

Per esplorare i risultati visivamente, eseguire ilDocker Compose stacke spingere il JSON ahttp://localhost:8000/runs.

L'INTERNO

Tre componenti. Un flusso di lavoro di conformità.

Installare solo il CLI per le pipeline CI/CD, o aggiungere il server e il cruscotto per la storia persistente e l'esplorazione visiva.

wafpass CLI

Motore di valutazione core. Parses Terraform e AWS CDK, funziona in qualsiasi pipeline CI/CD. Nessuna credenziali cloud necessaria.

PyPI: wafpass-core
wafpass-server

API REST FastAPI con PostgreSQL. Negozi corre, rinuncia, accettazione dei rischi, i risultati segreti e gli eventi di audit completi.

PyPI: wafpass-server
wafpass-dashboard

Reagisci cruscotto web. 22+ pagine di esplorazione di conformità, esportazione di prove revisori e gestione del ruolo RBAC.

Reazione + Vite
A — RACCOMANDATO

Docker Compose: Full Stack

Il WAF2p/pass monorepo spedisce unificatodocker-compose.yml. Clone una volta, configurare il.env, e portare l'intero stack in un unico comando.

Bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ cp.env.example .env
$ # Edit .env — set POSTGRES PASSWORD, WAFPASS JWT SECRET, ecc.
$ docker comporre -d
Servizio URL pagina Descrizione
wafpass-dashboard http://localhost:3000 Reagisci cruscotto
wafpass-server http://localhost:8000 API REST di FastAPI
Portachiavi (SSO) http://localhost:8080 Fornitore di identità (admin / admin)
Postgres localhost:5432 Database PostgreSQL

Spingere il primo risultato della scansione:

Bash
$ controllo wafpass ./infra/ --output json
$ wafpass check ./infra/ --output json | curl -s -X POST http://localhost:8000/runs \
-H "Content-Type: applicazione/json" -d @-
Visualizza tutto 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:
Opzione B — FLEXIBLE

Installare i componenti singolarmente

Installare solo ciò di cui hai bisogno. Inizia con il CLI per l'integrazione immediata CI/CD, quindi aggiungi server e dashboard quando sei pronto per la storia persistente e l'esplorazione della conformità visiva.

1
Installare wafpass CLI

Il motore di valutazione del nucleo — parse IaC, valutare i controlli, generare report

Da PyPI (consigliato)

Bash
$ pip install wafpass-core
$ uv add wafpass-core # consigliato per progetti Python

Dalla fonte

Bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ uv pip install -e . # raccomandato
$ pip install -e ".[pdf]" # con supporto di report PDF
$ pip install -e ".[dev]" # with dev dependencies

macOS (Apple M-series)

Bash
$ installazione della birra git python
$ https://github.com/WAF2p/pass.git &&cd pass
$ uv pip install -e .
$ wafpass --version # verifica installazione
2
Installare wafpass-server

FastAPI strato di persistenza — i negozi corre, waivers, i risultati segreti e gli eventi di audit

Da PyPI (consigliato)

Bash
$ pip install wafpass-server
$ uv add wafpass-server # consigliato per progetti Python

Configure & start

Bash
$ cp .env.example .env # set DATABASE URL e JWT segreto
$ alembic upgrade head # applicare le migrazioni del database
$ uvicorn wafpass server.main:app --reload --port 8000

API docs disponibili ahttp://localhost:8000/api/docs

3
Installare wafpass-dashboard

React web cruscotto — 22+ opinioni di conformità, esportazione di prove, RBAC

Bash
$ git clone https://github.com/WAF2p/wafpass-dashboard.git
$ cd wafpass-dashboard
$ npm install
$ cp.env.example .env.local # set VITE API URL
$ npm run dev # dev server all'indirizzo http://localhost:5173
$ npm run build # production building
PRECOMMIT HOOK

Blocca commit non conformi.

WAFPass spedisce un gancio pre-commesso che esegue controlli di conformità prima di ognigit commit. I commit non conformi sono bloccati automaticamente — nessuna chiamata cloud, nessuna attesa CI supplementare.

Funziona su macOS, Linux e Windows (Git Bash / PowerShell).

Configurazione di una volta

Bash
$ bash hooks/install.sh # macOS / Linux / Git Bash
$ .\hooks\install.ps1 # Windows PowerShell
POST-INSTALLAZIONE

Alzati e scappa.

Scarica i controlli, esegui la tua prima scansione e apri la dashboard per esplorare la tua postura di conformità.

1. Controllo di download

I controlli WAF++ vengono pubblicati separatamente e scaricati su richiesta.

  1. Visitawaf2p.dev/wafpass/
  2. Fare clicScarica Controlli
  3. Estrai nella tua directory di controllo
Bash
$ git clone https://github.com/WAF2p/framework.git
$ cp framework/modules/controls/controls/*.yml controls/
2. Eseguire la prima scansione

Punta WAFPass al tuo codice Terraform o CDK e ottieni un rapporto completo di conformità.

Bash
$ controllo wafpass ./infra/
$ controllo wafpass ./infra/ --output pdf \
--pdf-out report.pdf
3. Aprire il Dashboard

Esplora la tua postura di conformità, gestisci i waivers e esporta i pacchetti di prove.

  1. Aprilocalhost:3000(Docker) olocalhost:5173(dev)
  2. Accedi con le credenziali di amministratore dal tuo.env
  3. Esplora i risultati, la deriva e la matrice di conformità
CONTROLLO

Problemi e correzioni comuni.

risposte rapide ai problemi di configurazione più frequenti.

Controlli non trovati

Sewafpass checkreport "controls directory not found", il CLI visualizzerà automaticamente le istruzioni per il download. Seguire ilpost-installazionepassi sopra.

Porto già in uso

Utilizzare una porta diversa per il server o il cruscotto:

$ uvicorn wafpass server.main:app --port 8001
$ npm run dev -- --port 5174

Errori di connessione del database

Verifica che PostgreSQL sia in esecuzione e il tuoDATABASE_URLè corretto:

$ psql $DATABASE URL -c "SELECT 1"

Docker build fallisce

Assicurarsi che tutti e tre i repository siano clonati fianco a fianco nella stessa directory principale:

$ 1
Pass/
wafpass-server/
wafpass-dashboard/
CONTINUARE IL RED THREAD

Hai fatto il tuo primo assegno. E dopo?

Scegli il passo successivo che corrisponde al tuo ruolo: approfondire la conoscenza del framework, collegare WAFPass in CI/CD, o esplorare il cruscotto visivo completo.