Fluxheim/Dokumentacioni/Zgjerime WASM

Zgjerime WASM

Ndërtim i posaçëm Wasm i bazuar në profilin e plotë të prodhimit, me pika ndërhyrjeje të kufizuara për politikat, ACME, metrika dhe OpenTelemetry

Çfarë të jep

Ndërtim i posaçëm Wasm i bazuar në profilin e plotë të prodhimit, me pika ndërhyrjeje të kufizuara për politikat, ACME, metrika dhe OpenTelemetry.

VeçoriaPërdore për
Vendime aksesiNative HTTP/1 access-decision hooks live përdorin rend prioriteti, përbërje first-deny-wins dhe sjellje fail-closed.
Header-hooksrequest-headers dhe response-headers hooks mund të vendosin ose heqin vetëm header sintetikë të lejuar, si shembulli policy-tier.
Vendime të rrugëzimitroute-decision hooks mund vetëm të vazhdojnë, të refuzojnë ose të zgjedhin degë route canary dhe mirror të konfiguruara e që përputhen.
Vendime cachecache-lookup hooks mund të bëjnë continue, pass, bypass ose deny. cache-store hooks mund të bëjnë continue, skip storage ose deny para shkrimeve memory/disk cache.

Ekzekuto

Përdorni arkivin ose imazhin e posaçëm profile-wasm; build-i i zakonshëm i plotë qëllimisht mbetet pa Wasm.

Imazhi zyrtar Wasm përmban mjedisin e ekzekutimit, por jo shtojca të operatorit. Montoni modulet e shqyrtuara vetëm për lexim dhe fiksoni çdo modul me 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

Rrënjë të miratuara të shtojcave

Skedarët e plugin-eve duhet të jenë skedarë të zakonshëm me shteg absolut nën rrënjë të miratuara, pa lidhje simbolike ose shtigje prind.

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

Ekzekutim i kufizuar

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

Shënime prodhimi

Një montim kontejneri vetëm për lexim nuk mbron skedarët e tij në host. Mbajini konfigurimin e hostit dhe dosjen e shtojcave në pronësi të një llogarie të besuar pa leje shkrimi.

  • Manifestet publike të shtojcave duhet të përmbajnë një digest SHA-256 të fiksuar. Në të gjithë procesin mund të kompilohen njëkohësisht jo më shumë se dy module. Dalja e kompiluar ka kufi të parazgjedhur 32 MiB dhe nuk mund të kalojë 256 MiB.
  • Mbajini skedarët e konfigurimit dhe çdo direktori prind ekzistuese nën pronësi të besuar dhe jo të shkrueshme nga grupi ose përdorues të tjerë.
  • Fikso versionet e publikimit ose image digests.
  • Mbaji sekretet në skedarë, environment ose container secrets, jo në dokumente publike.

Full docs on GitHub

Shqip