Fluxheim/Dokumentácia/WASM rozšírenia

WASM rozšírenia

Samostatné zostavenie Wasm založené na úplnom produkčnom profile, s ohraničenými hákmi politík, ACME, metrikami a OpenTelemetry

Čo poskytuje

Samostatné zostavenie Wasm založené na úplnom produkčnom profile, s ohraničenými hákmi politík, ACME, metrikami a OpenTelemetry.

FunkciePouži pre
Rozhodnutia o prístupeŽivé natívne HTTP/1 access-decision hooky používajú poradie priorít, kompozíciu first-deny-wins a fail-closed správanie.
Header-hookyHooky request-headers a response-headers môžu nastaviť alebo odstrániť iba povolené syntetické headery, napríklad v príklade policy-tier.
Rozhodnutia trásroute-decision hooky môžu iba pokračovať, odmietnuť alebo vybrať nakonfigurované zodpovedajúce canary a mirror vetvy trasy.
Cache rozhodnutiacache-lookup hooky môžu pokračovať, poslať na origin, obísť cache alebo odmietnuť. cache-store hooky môžu pokračovať, preskočiť uloženie alebo odmietnuť pred zápismi do memory/disk cache.

Spustiť

Použite samostatný archív alebo obraz profile-wasm; bežné úplné zostavenie zámerne zostáva bez Wasm.

Oficiálny obraz Wasm obsahuje behové prostredie, ale žiadne zásuvné moduly prevádzkovateľa. Skontrolované moduly pripojte iba na čítanie a každý modul pripnite pomocou 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

Schválené korene pluginov

Súbory pluginov musia byť absolútne bežné súbory pod schválenými koreňmi, bez symbolických odkazov alebo nadradených ciest.

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

Obmedzené spúšťanie

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 poznámky

Pripojenie kontajnera iba na čítanie nechráni súbory na hostiteľovi. Konfigurácia hostiteľa a adresár zásuvných modulov majú patriť dôveryhodnému účtu bez práva zápisu.

  • Verejné manifesty doplnkov musia obsahovať pevne určený odtlačok SHA-256. V celom procese sa môžu súčasne kompilovať najviac dva moduly. Predvolený limit skompilovaného výstupu je 32 MiB a nemožno prekročiť 256 MiB.
  • Konfiguračné súbory a každý existujúci nadradený adresár ponechajte v dôveryhodnom vlastníctve a bez práva zápisu pre skupinu alebo ostatných používateľov.
  • Fixuj release version alebo image digest.
  • Drž secret vo file, environment alebo container secrets, nie vo verejnej dokumentácii.

Full docs on GitHub

Slovenčina