Estensioni WASM
Build Wasm dedicà, basà sul profilo completo de produzion, co hook de politica limitài, ACME, metriche e OpenTelemetry
Cosa offre
Build Wasm dedicà, basà sul profilo completo de produzion, co hook de politica limitài, ACME, metriche e OpenTelemetry.
| Funzione | Usalo per |
|---|---|
| Decisioni de acesso | I native HTTP/1 access-decision hook live dopra ordine de priorità, composizion first-deny-wins e comportamento fail-closed. |
| Header-hook | I hook request-headers e response-headers pol meter o cavar solo header sintetici permessi, come l’esempio policy-tier. |
| Decision de rota | I hook route-decision pol solo continuar, negar o selezionar rami de rota canary e mirror configurai e corispondenti. |
| Decision cache | I hook cache-lookup i pol far continue, pass, bypass o deny. I hook cache-store i pol far continue, skip storage o deny prima de scriver su memory/disk cache. |
Esegui
Dòpara l'archivio o l'imàjine dedicà profile-wasm; el build completo normale el resta aposta sensa Wasm.
L'imàjine ufisiale Wasm la contien el runtime, ma no plugin de l'operador. Monta i moduli revisionài in sola letura e fissa ogni modulo co 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
Radise plugin aprovade
I file dei plugin ga da èsar file normali co percorsi assoluti soto radise aprovà, sensa link simbolici o percorsi genitori.
[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"]
Esecuzion 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
Note production
Un mount del container in sola letura no el proteze i file del host. Tien la configurasion del host e la directory dei plugin soto proprietà fidada e sensa permesso de scritura.
- I manifesti publici dei plugin i ga da contenir un digest SHA-256 fisso. In tuto el proceso se compila al massimo do moduli par volta. L'output compilà el ga par default un limite de 32 MiB e no el pol superar 256 MiB.
- Tien i file de configurasion e tute le directory superiori esistenti soto proprietà fidada e no scrivibili dal grupo o da altri utenti.
- Fissa versioni release o digest image.
- Tieni i segreti in file, environment o secret container, no inte ła documentasion pubblica.