Extensions WASM
Compilació Wasm dedicada basada en el perfil de producció complet, amb hooks de política limitats, ACME, mètriques i OpenTelemetry
Què t'aporta
Compilació Wasm dedicada basada en el perfil de producció complet, amb hooks de política limitats, ACME, mètriques i OpenTelemetry.
| Funció | Usa-ho per a |
|---|---|
| Decisions d’accés | Els hooks access-decision HTTP/1 natius en viu fan servir ordre de prioritat, composició first-deny-wins i comportament fail-closed. |
| Hooks de headers | Els hooks request-headers i response-headers només poden establir o eliminar headers sintètics permesos, com l’exemple policy-tier. |
| Decisions de ruta | Els hooks route-decision només poden continuar, denegar o seleccionar branques de ruta canary i mirror configurades i coincidents. |
| Decisions de cache | Els hooks cache-lookup poden fer continue, pass, bypass o deny. Els hooks cache-store poden fer continue, skip storage o deny abans d’escriure a la cache de memòria/disc. |
Executar
Utilitzeu l'arxiu o la imatge profile-wasm dedicats; la compilació completa normal roman expressament sense Wasm.
La imatge Wasm oficial conté l'entorn d'execució, però no connectors de l'operador. Munteu els mòduls revisats en mode de només lectura i fixeu cada mòdul amb SHA-256.
podman pull ghcr.io/valkyoth/fluxheim:v1.8.0-wasm
podman run --rm \
-v ./fluxheim.toml:/etc/fluxheim/fluxheim.toml:ro,Z \
-v /srv/infra/fluxheim/plugins:/etc/fluxheim/plugins:ro,Z \
ghcr.io/valkyoth/fluxheim:v1.8.0-wasm
Arrels de plugins aprovades
Els fitxers dels connectors han de ser fitxers regulars amb camí absolut sota arrels aprovades, sense enllaços simbòlics ni camins pare.
[wasm]
enabled = true
plugin_roots = ["/etc/fluxheim/plugins"]
max_total_concurrent_executions = 256
max_total_preview_concurrent_executions = 32
max_total_cache_concurrent_executions = 256
[[wasm.plugins]]
name = "security_headers"
path = "/etc/fluxheim/plugins/security_headers.wasm"
sha256 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
abi = "fluxheim-policy-v1"
host_call_namespace = "fluxheim-policy-v1"
phases = ["response-headers"]
fail_mode = "fail-closed"
[[wasm.attachments]]
plugin = "security_headers"
vhost = "example"
priority = 100
phases = ["response-headers"]
Execució limitada
Fuel, memory, table, instance, compile-timeout, compile-worker and per-call watchdog limits keep the sandbox bounded.
[wasm.plugins.limits]
max_module_bytes = "1MiB"
max_compiled_artifact_bytes = "32MiB"
max_memory_bytes = "16MiB"
max_table_elements = 10000
fuel = 5000000
timeout_ms = 50
compile_timeout_ms = 500
Notes de producció
Un muntatge de contenidor de només lectura no protegeix els fitxers de l'amfitrió. Feu que un compte de confiança sense permisos d'escriptura sigui el propietari de la configuració de l'amfitrió i del directori de connectors.
- Els manifests públics dels connectors han d'incloure un resum SHA-256 fix. Com a màxim es compilen dos mòduls alhora en tot el procés. La sortida compilada té un límit predeterminat de 32 MiB i no pot superar els 256 MiB.
- Manteniu els fitxers de configuració i tots els directoris pare existents sota una propietat de confiança i sense permisos d’escriptura per al grup ni per a altres usuaris.
- Fixa versions de release o image digests.
- Mantingues secrets en fitxers, entorn o container secrets, no en docs públics.