Fluxheim/Dokumenti/Estensjonijiet WASM

Estensjonijiet WASM

Kumpilazzjoni Wasm apposta bbażata fuq il-profil sħiħ tal-produzzjoni, b'punti ta' intervent limitati għall-politiki, ACME, metriċi u OpenTelemetry

X’jagħtik

Kumpilazzjoni Wasm apposta bbażata fuq il-profil sħiħ tal-produzzjoni, b'punti ta' intervent limitati għall-politiki, ACME, metriċi u OpenTelemetry.

KaratteristikaUżah għal
Deċiżjonijiet ta’ aċċessNative HTTP/1 access-decision hooks live jużaw ordni ta’ prijorità, kompożizzjoni first-deny-wins u mġiba fail-closed.
Header-hooksrequest-headers u response-headers hooks jistgħu jistabbilixxu jew ineħħu biss headers sintetiċi permessi, bħall-eżempju policy-tier.
Deċiżjonijiet tar-rottaroute-decision hooks jistgħu biss ikomplu, jiċħdu jew jagħżlu friegħi ta’ rotta canary u mirror konfigurati u mqabbla.
Deċiżjonijiet cachecache-lookup hooks jistgħu jkomplu, jgħaddu lejn l-origin, jevitaw jew jiċħdu. cache-store hooks jistgħu jkomplu, jaqbżu l-ħażna jew jiċħdu qabel kitbiet fil-cache tal-memorja/diska.

Ħaddem

Uża l-arkivju jew l-immaġni apposta profile-wasm; il-kumpilazzjoni sħiħa normali titħalla apposta mingħajr Wasm.

L-immaġni uffiċjali ta' Wasm fiha l-ambjent ta' eżekuzzjoni iżda ma fiha ebda plugin tal-operatur. Immonta l-moduli riveduti għall-qari biss u orbot kull modulu ma' 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

Għeruq approvati tal-plugins

Il-fajls tal-plugins iridu jkunu fajls regolari b’passaġġ assolut taħt għeruq approvati, mingħajr symbolic links jew 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"]

Eżekuzzjoni limitata

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

Noti tal-produzzjoni

Immuntar tal-kontejner għall-qari biss ma jipproteġix il-fajls fuq il-magna ospitanti. Żomm il-konfigurazzjoni tal-magna ospitanti u d-direttorju tal-plugins taħt il-kontroll ta' kont fdat mingħajr permess għall-kitba.

  • Il-manifesti pubbliċi tal-plugins irid ikollhom digest SHA-256 fiss. Fil-proċess kollu jiġu kkumpilati mhux aktar minn żewġ moduli fl-istess ħin. L-output ikkumpilat għandu limitu predefinit ta' 32 MiB u ma jistax jaqbeż 256 MiB.
  • Żomm il-fajls tal-konfigurazzjoni u kull direttorju ġenitur eżistenti taħt sjieda fdata u mhux miktuba minn grupp jew utenti oħra.
  • Pin ħarġa versions jew image digests.
  • Keep sigrieti in fajls, environment, jew kontenitur sigrieti, not in pubbliku docs.

Full docs on GitHub

Malti