Úsalo si
Choose and run the BlackShield enforcement appliance that matches your control gap: edge firewall, microsegmentation, host runtime protection, WAF, SQL firewall, or identity-aware proxy.
Choose and run the BlackShield enforcement appliance that matches your control gap: edge firewall, microsegmentation, host runtime protection, WAF, SQL firewall, or identity-aware proxy. Audiencia: Founders, platform engineers, and security engineers who need clear deployment choices and working appliance examples. Tiempo típico de configuración: 10-20 minutes.
Choose and run the BlackShield enforcement appliance that matches your control gap: edge firewall, microsegmentation, host runtime protection, WAF, SQL firewall, or identity-aware proxy.
Use these views to match an appliance to a real traffic path before you put it in line.
Place only the appliance that matches the boundary you actually control; each appliance polls BlackShield and reports findings independently.
flowchart LR Internet["Internet and external clients"] Edge["Edge Firewall / TCP Reverse Proxy"] Internal["Internal network segments"] Hosts["Linux hosts"] App["Application and API tier"] Data["Data and SQL-like access path"] Admin["Admin and identity-sensitive paths"] Control["BlackShield control plane"] Internet --> Edge Edge --> App Internal --> App Internal --> Hosts App --> Data Admin --> App Edge -. "threat intel sync and findings" .-> Control Internal -. "segmentation policy and findings" .-> Control Hosts -. "runtime indicators and findings" .-> Control App -. "WAF signatures and findings" .-> Control Data -. "data policy and findings" .-> Control Admin -. "identity policy and findings" .-> Control
The perimeter appliance is a TCP edge proxy, while the application appliance is the HTTP/WAF control.
Use inline appliances where traffic already has a listener, proxy, or query path that can be routed through the container.
flowchart TB Client["Client"] TcpProxy["Edge firewall / TCP reverse proxy"] TcpService["Public TCP service"] Browser["Browser or API client"] Waf["Web Application Firewall reverse proxy"] Api["HTTP app or API"] Worker["Service issuing query"] SqlProxy["SQL firewall / database activity proxy"] Database["Database-facing service"] Operator["Admin user or service"] IamGate["Identity-aware proxy / admin access gateway"] AdminApi["Admin API"] Client --> TcpProxy --> TcpService Browser --> Waf --> Api Worker --> SqlProxy --> Database Operator --> IamGate --> AdminApi
Endpoint runtime monitoring is host-local rather than an inline traffic proxy; run it only where host process visibility is allowed.
The container starts with a common BlackShield connection, then specific env vars determine which enforcement behavior is active. UPSTREAM_ADDR enables TCP forwarding, UPSTREAM_URL enables WAF proxying, and METRICS_ADDR enables local Prometheus metrics.
flowchart LR Base["BLACKSHIELD_API_URL and BLACKSHIELD_API_KEY"] Metrics["METRICS_ADDR"] Listen["LISTEN_ADDR"] Tcp["UPSTREAM_ADDR"] Http["UPSTREAM_URL"] FailClosed["FAIL_CLOSED=true"] Endpoint["ENFORCEMENT_MODE=enforce"] Body["MAX_BODY_BYTES"] Base --> Sync["Sync policy or threat intelligence"] Base --> Findings["Report findings and health"] Metrics --> Prometheus["Expose local Prometheus metrics"] Listen --> Listener["Open appliance listener"] Tcp --> TcpForward["Enable perimeter TCP forwarding"] Http --> ReverseProxy["Enable application WAF reverse proxy"] FailClosed --> Blocking["Block when sync health is unavailable"] Endpoint --> ActiveResponse["Enable endpoint active response"] Body --> BodyLimit["Enforce request body inspection limit"]
Leave fail-closed and endpoint enforcement in audit-friendly settings until sync health and telemetry are proven.
Paso 1
Start with the boundary where a missing active control would hurt first. The edge firewall protects TCP entry points; the WAF handles HTTP inspection.
Cómo se ve el éxito
The customer knows which single appliance to try first and understands that perimeter is not the WAF.
Paso 2
All appliances use the same API origin and API key pattern, then sync threat intelligence or policy before reporting blocked activity as findings.
Cómo se ve el éxito
Every generated example uses only runtime settings supported by the matching Go entrypoint.
Paso 3
Treat the first deployment as a proof point: confirm the appliance starts, exposes metrics, syncs successfully, and creates useful BlackShield findings before widening the blast radius.
Cómo se ve el éxito
Appliance events appear in BlackShield alongside scanner, network sensor, and security-agent evidence.
Solo demostración
Esta configuración está diseñada para facilitar el uso. Para desplegar clientes de escaneo a escala, planifique su arquitectura de despliegue en consecuencia o contáctenos para obtener las mejores prácticas empresariales.
Descarga los archivos exactos usados en esta guía o ejecuta el instalador de un solo comando para escribirlos localmente antes del despliegue.
Creates `deploy/blackshield-perimeter/` by default. Pass `network`, `endpoint`, `application`, `data`, or `security` as the first argument to generate a different appliance runtime.
BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com \
bash <(curl -fsSL https://blackshield.chaplau.com/source-bundles/appliance-docker.sh) perimeter
cd deploy/blackshield-perimeterservices:
perimeter-appliance:
image: public.ecr.aws/blackshield-security/perimeter-appliance:1.0.8
restart: unless-stopped
ports:
- "8081:8081"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8081
- UPSTREAM_ADDR=10.0.1.15:80
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090
- FAIL_CLOSED=falseservices:
network-appliance:
image: public.ecr.aws/blackshield-security/network-appliance:1.0.8
restart: unless-stopped
ports:
- "8082:8082"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8082
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090services:
endpoint-appliance:
image: public.ecr.aws/blackshield-security/endpoint-appliance:1.0.8
restart: unless-stopped
pid: "host"
ports:
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090
- SCAN_INTERVAL=5s
- ENFORCEMENT_MODE=auditservices:
application-appliance:
image: public.ecr.aws/blackshield-security/application-appliance:1.0.8
restart: unless-stopped
ports:
- "8083:8083"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8083
- UPSTREAM_URL=http://10.0.2.22:8080
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090
- MAX_BODY_BYTES=1048576
- FAIL_CLOSED=falseservices:
data-appliance:
image: public.ecr.aws/blackshield-security/data-appliance:1.0.8
restart: unless-stopped
ports:
- "8084:8084"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8084
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090services:
security-appliance:
image: public.ecr.aws/blackshield-security/security-appliance:1.0.8
restart: unless-stopped
ports:
- "8085:8085"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8085
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090