WASM ekstenzije
Namenska različica Wasm na podlagi celotnega produkcijskega profila z omejenimi programskimi kavlji, ACME, metrikami in OpenTelemetry
Kaj dobivaš
Namenska različica Wasm na podlagi celotnega produkcijskega profila z omejenimi programskimi kavlji, ACME, metrikami in OpenTelemetry.
| Funkcija | Uporabi za |
|---|---|
| Odločitve o dostopu | Živi native HTTP/1 access-decision hooki uporabljajo vrstni red prioritet, sestavo first-deny-wins in vedenje fail-closed. |
| Header-hooki | request-headers in response-headers hooki lahko nastavijo ali odstranijo samo dovoljene sintetične headerje, kot v primeru policy-tier. |
| Odločitve poti | route-decision hooki lahko samo nadaljujejo, zavrnejo ali izberejo konfigurirane ujemajoče se canary in mirror veje poti. |
| Cache odločitve | Hooki cache-lookup lahko nadaljujejo, preusmerijo, obidejo ali zavrnejo. Hooki cache-store lahko nadaljujejo, preskočijo shranjevanje ali zavrnejo pred zapisi v memory/disk cache. |
Zaženi
Uporabite namenski arhiv ali sliko profile-wasm; običajna polna različica namenoma ostaja brez Wasm.
Uradna slika Wasm vsebuje izvajalno okolje, vendar ne vsebuje upravljavskih vtičnikov. Pregledane module priklopite samo za branje in vsak modul pripnite s 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
Odobrene korenske poti vtičnikov
Datoteke vtičnikov morajo biti navadne datoteke z absolutno potjo pod odobrenimi koreni, brez simbolnih povezav ali nadrejenih poti.
[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"]
Omejeno izvajanje
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
Production napomene
Priklop vsebnika samo za branje ne zaščiti datotek na gostitelju. Konfiguracija gostitelja in imenik vtičnikov naj pripadata zaupanja vrednemu računu brez pravice pisanja.
- Javni manifesti vtičnikov morajo vsebovati fiksni povzetek SHA-256. V celotnem procesu se lahko hkrati prevajata največ dva modula. Prevedeni izhod ima privzeto omejitev 32 MiB in ne sme preseči 256 MiB.
- Konfiguracijske datoteke in vse obstoječe nadrejene imenike ohranite v zaupanja vrednem lastništvu ter brez dovoljenja za pisanje skupini ali drugim uporabnikom.
- Fiksiraj release version ali image digest.
- Drži secret v file, environment ali kontejner secrets, ne v public docs.