Fluxheim/Dokumentaatio/WASM-laajennukset

WASM-laajennukset

Täydelliseen tuotantoprofiiliin perustuva erillinen Wasm-koontiversio, jossa on rajatut käytäntökoukut, ACME, mittarit ja OpenTelemetry

Mitä se antaa

Täydelliseen tuotantoprofiiliin perustuva erillinen Wasm-koontiversio, jossa on rajatut käytäntökoukut, ACME, mittarit ja OpenTelemetry.

OminaisuusKäytä sitä tähän
PääsypäätöksetLive natiivit HTTP/1 access-decision -hookit käyttävät prioriteettijärjestystä, first-deny-wins-koostamista ja fail-closed-toimintaa.
Header-hookitrequest-headers- ja response-headers-hookit voivat asettaa tai poistaa vain sallittuja synteettisiä headereita, kuten policy-tier-esimerkissä.
Reittipäätöksetroute-decision-hookit voivat vain jatkaa, estää tai valita määritettyjä mätsääviä canary- ja mirror-reittihaaroja.
Cache-päätöksetcache-lookup hooks voivat tehdä continue, pass, bypass tai deny. cache-store hooks voivat tehdä continue, skip storage tai deny ennen memory/disk cache -kirjoituksia.

Aja

Käytä erillistä profile-wasm-arkistoa tai -levykuvaa; tavallinen täydellinen koontiversio ei tarkoituksella sisällä Wasmia.

Virallinen Wasm-levykuva sisältää suoritusympäristön mutta ei ylläpitäjän liitännäisiä. Liitä tarkastetut moduulit kirjoitussuojattuina ja kiinnitä jokainen moduuli SHA-256-tiivisteellä.

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

Godkända pluginrötter

Pluginfiler måste vara absoluta, reguljära filer under godkända rötter, utan symlinkade filer eller överordnade sökvägar.

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

Begränsad körning

Gränser för fuel, minne, tabell, instans, kompilerings-timeout, kompileringsarbetare och watchdog per anrop håller sandboxen begränsad.

[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

Tuotantohuomiot

Kirjoitussuojattu konttiliitos ei suojaa isäntäkoneen tiedostoja. Pidä isäntäkokoonpano ja liitännäishakemisto luotetun, kirjoitusoikeudettoman omistajan hallinnassa.

  • Julkisten liitännäisten manifestien on sisällettävä kiinteä SHA-256-tiiviste. Koko prosessissa käännetään samanaikaisesti enintään kaksi moduulia. Käännetyn tuloksen oletusraja on 32 MiB, eikä se saa ylittää 256 MiB.
  • Pidä määritystiedostot ja kaikki olemassa olevat ylemmät hakemistot luotettujen omistajien hallinnassa, eikä ryhmällä tai muilla käyttäjillä saa olla niihin kirjoitusoikeutta.
  • Pinnaa release-versiot tai image-digestit.
  • Pidä secretit tiedostoissa, environmentissa tai container secrets -mekanismissa, ei julkisissa dokumenteissa.

Full docs on GitHub

Suomi