Estensioni WASM
Build Wasm apposta, basatu supra lu prufilu cumpletu di pruduzzioni, cu hook di pulìtica limitati, ACME, mètrichi e OpenTelemetry
Chi ti duna
Build Wasm apposta, basatu supra lu prufilu cumpletu di pruduzzioni, cu hook di pulìtica limitati, ACME, mètrichi e OpenTelemetry.
| Funzione | Usalu pi |
|---|---|
| Dicisioni d’accessu | I native HTTP/1 access-decision hook live usanu ordini di priurità, cumpusizioni first-deny-wins e cumpurtamentu fail-closed. |
| Header-hook | I hook request-headers e response-headers ponnu mittiri o livari sulu header sintètichi pirmisi, comu l’esempiu policy-tier. |
| Decisioni di rotta | L’hook route-decision ponnu sulu cuntinuari, nigari o scigghiri rami di rotta canary e mirror configurati e currispunnenti. |
| Decisioni cache | Li hook cache-lookup ponnu fari continue, pass, bypass o deny. Li hook cache-store ponnu fari continue, skip storage o deny prima dî scritturi memory/disk cache. |
Esegui
Aḍḍòpira l'archiviu o l'immàggini apposta profile-wasm; lu build cumpletu nurmali arresta apposta senza Wasm.
L'immàggini ufficiali Wasm havi lu runtime, ma nun havi plugin di l'operaturi. Munta li mòduli rivisti a sula littura e fissa ogni mòdulu cu 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
Radici plugin appruvati
I file dî plugin hannu a èssiri file nurmali cu percorsi assoluti sutta radici appruvati, senza link simbolici o percorsi parenti.
[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"]
Esecuzzioni limitata
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 dû container a sula littura nun pruteggi li file dû host. Teni la cunfigurazzioni dû host e la directory dî plugin sutta prupitati fidata e senza pirmissu di scrittura.
- Li manifesti pùbbrici dî plugin hannu a cunteniri nu digest SHA-256 fissu. 'N tuttu lu prucessu si cumpìlanu ô massimu dui mòduli â vota. L'output cumpilatu havi nu lìmiti predefinutu di 32 MiB e nun po supirari 256 MiB.
- Teni li file di cunfigurazzioni e tutti li directory matri esistenti sutta prupietà fidata e nun scrivibili dû gruppu o d’àutri utenti.
- Fissa versioni release o digest image.
- Teni li sigreti n file, environment o secret container, nun ntâ ducumentazzioni pùbblica.