Fluxheim/Dokumentācija/WASM paplašinājumi

WASM paplašinājumi

Atsevišķs Wasm būvējums, kas balstīts uz pilno ražošanas profilu, ar ierobežotiem politikas āķiem, ACME, metriku un OpenTelemetry

Ko tas dod

Atsevišķs Wasm būvējums, kas balstīts uz pilno ražošanas profilu, ar ierobežotiem politikas āķiem, ACME, metriku un OpenTelemetry.

FunkcijaIzmanto tam
Piekļuves lēmumiDzīvie native HTTP/1 access-decision hooki izmanto prioritāšu secību, first-deny-wins kompozīciju un fail-closed uzvedību.
Header-hookirequest-headers un response-headers hooki var iestatīt vai noņemt tikai atļautus sintētiskus headerus, piemēram, policy-tier piemēru.
Maršruta lēmumiroute-decision hooki var tikai turpināt, liegt vai izvēlēties konfigurētus atbilstošus canary un mirror maršruta zarus.
Cache lēmumicache-lookup hooks var veikt continue, pass, bypass vai deny. cache-store hooks var veikt continue, skip storage vai deny pirms memory/disk cache rakstīšanas.

Palaist

Izmantojiet īpašo profile-wasm arhīvu vai attēlu; parastajā pilnajā būvējumā Wasm apzināti nav iekļauts.

Oficiālajā Wasm attēlā ir izpildvide, bet nav operatora spraudņu. Pievienojiet pārbaudītos moduļus tikai lasīšanai un piesaistiet katru moduli SHA-256 kontrolsummai.

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

Apstiprinātas spraudņu saknes

Plugin failiem jābūt absolūtiem regulāriem failiem zem apstiprinātām saknēm, bez symlink failiem vai 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"]

Ierobežota izpilde

Fuel, memory, table, instance, compile-timeout, compile-worker un per-call watchdog limiti uztur sandbox ierobežotu.

[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 piezīmes

Tikai lasāms konteinera montējums neaizsargā resursdatora failus. Glabājiet resursdatora konfigurāciju un spraudņu direktoriju uzticama īpašnieka pārvaldībā bez rakstīšanas tiesībām.

  • Publiskajos spraudņu manifestos jābūt fiksētam SHA-256 kopsavilkumam. Visā procesā vienlaikus drīkst kompilēt ne vairāk kā divus moduļus. Kompilētās izvades noklusējuma ierobežojums ir 32 MiB, un tā nedrīkst pārsniegt 256 MiB.
  • Glabājiet konfigurācijas failus un visus esošos augstāka līmeņa direktorijus uzticama īpašnieka pārvaldībā un neļaujiet grupai vai citiem lietotājiem tajos rakstīt.
  • Piespraud release versijas vai image digestus.
  • Turi secrets failos, environment vai container secrets, nevis publiskā dokumentācijā.

Full docs on GitHub

Latviešu