WASM plėtiniai
Atskiras Wasm rinkinys, paremtas visu gamybiniu profiliu, su apribotais politikos kabliais, ACME, metrikomis ir OpenTelemetry
Ką tai suteikia
Atskiras Wasm rinkinys, paremtas visu gamybiniu profiliu, su apribotais politikos kabliais, ACME, metrikomis ir OpenTelemetry.
| Funkcija | Naudok tam |
|---|---|
| Prieigos sprendimai | Gyvi native HTTP/1 access-decision hookai naudoja prioritetų tvarką, first-deny-wins kompoziciją ir fail-closed elgseną. |
| Header-hookai | request-headers ir response-headers hookai gali nustatyti arba pašalinti tik leidžiamus sintetinius headerius, kaip policy-tier pavyzdyje. |
| Maršruto sprendimai | route-decision hookai gali tik tęsti, atmesti arba pasirinkti sukonfigūruotas atitinkančias canary ir mirror maršruto šakas. |
| Cache sprendimai | cache-lookup hooks gali atlikti continue, pass, bypass arba deny. cache-store hooks gali atlikti continue, skip storage arba deny prieš rašymą į memory/disk cache. |
Vykdyti
Naudokite specialų profile-wasm archyvą arba atvaizdą; įprastas pilnas rinkinys sąmoningai lieka be Wasm.
Oficialiame Wasm atvaizde yra vykdymo aplinka, bet nėra operatoriaus papildinių. Patikrintus modulius prijunkite tik skaitymui ir kiekvieną modulį užfiksuokite pagal 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
Patvirtintos įskiepių šaknys
Plugin failai turi būti absoliutūs reguliarūs failai po patvirtintomis šaknimis, be symlink failų ar parent paths.
[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"]
Ribotas vykdymas
Fuel, memory, table, instance, compile-timeout, compile-worker ir per-call watchdog ribos išlaiko sandbox ribotą.
[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
Production pastabos
Tik skaitymui prijungtas konteinerio tomas neapsaugo pagrindinio kompiuterio failų. Pagrindinio kompiuterio konfigūraciją ir papildinių katalogą patikėkite patikimam savininkui be rašymo teisių.
- Viešuose papildinių aprašuose turi būti fiksuota SHA-256 santrauka. Visame procese vienu metu gali būti kompiliuojami ne daugiau kaip du moduliai. Numatytoji sukompiliuotos išvesties riba yra 32 MiB, o didžiausia riba – 256 MiB.
- Konfigūracijos failai ir visi esami jų pirminiai katalogai turi priklausyti patikimam savininkui, o grupė ir kiti naudotojai neturi turėti teisės į juos rašyti.
- Fiksuok release version arba image digest.
- Laikyk secret file, environment arba container secrets, o ne public docs.