Fluxheim/Dokumendid/WASM-laiendused

WASM-laiendused

Täielikul tootmisprofiilil põhinev eraldi Wasm-järk piiratud poliitikakonksude, ACME, mõõdikute ja OpenTelemetryga

Mida see annab

Täielikul tootmisprofiilil põhinev eraldi Wasm-järk piiratud poliitikakonksude, ACME, mõõdikute ja OpenTelemetryga.

FunktsioonKasuta selleks
LigipääsuotsusedReaalajas native HTTP/1 access-decision-hookid kasutavad prioriteedijärjekorda, first-deny-wins-koostamist ja fail-closed-käitumist.
Header-hookidrequest-headers ja response-headers hookid saavad seada või eemaldada ainult lubatud sünteetilisi headereid, näiteks policy-tier näites.
Marsruudiotsusedroute-decision hookid saavad ainult jätkata, keelata või valida seadistatud sobivad canary ja mirror marsruudiharud.
Cache otsusedcache-lookup hookid saavad teha continue, pass, bypass või deny. cache-store hookid saavad enne memory/disk cache’i kirjutusi teha continue, skip storage või deny.

Käivita

Kasutage spetsiaalset profile-wasm-arhiivi või -tõmmist; tavaline täisjärk jääb teadlikult Wasmita.

Ametlik Wasm-tõmmis sisaldab käituskeskkonda, kuid mitte operaatori pluginaid. Ühendage kontrollitud moodulid kirjutuskaitstult ja kinnitage iga moodul SHA-256-ga.

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

Heakskiidetud pluginate juurkaustad

Pluginafailid peavad olema absoluutsed regulaarsed failid kinnitatud juurte all, ilma symlink-failide või parent-teedeta.

[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"]

Piiratud käivitus

Fuel-, memory-, table-, instance-, compile-timeout-, compile-worker- ja per-call watchdog-piirangud hoiavad liivakasti piiratuna.

[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 märkmed

Kirjutuskaitstud konteineri ühendus ei kaitse hosti faile. Hoidke hosti seadistus ja pluginakataloog usaldusväärse omaniku käes ilma kirjutusõiguseta.

  • Avalikud pluginamanifestid peavad sisaldama fikseeritud SHA-256 räsi. Kogu protsessis kompileeritakse korraga kõige rohkem kaks moodulit. Kompileeritud väljundi vaikepiir on 32 MiB ja see ei tohi ületada 256 MiB.
  • Hoidke konfiguratsioonifailid ja kõik olemasolevad ülemkataloogid usaldusväärse omaniku all ning ärge lubage rühmal ega teistel kasutajatel neisse kirjutada.
  • Fikseeri release-versioonid või image digestid.
  • Hoia secrets failides, environmentis või container secretsis, mitte avalikes docsides.

Full docs on GitHub

Eesti