Fluxheim/Belgeler/WASM uzantıları

WASM uzantıları

Tam üretim profilini temel alan, sınırlandırılmış ilke kancaları, ACME, ölçümler ve OpenTelemetry içeren özel Wasm derlemesi

Size ne sağlar

Tam üretim profilini temel alan, sınırlandırılmış ilke kancaları, ACME, ölçümler ve OpenTelemetry içeren özel Wasm derlemesi.

ÖzellikŞunun için kullan
Erişim kararlarıCanlı native HTTP/1 access-decision hook’ları öncelik sırası, first-deny-wins birleşimi ve fail-closed davranışı kullanır.
Header hook’larırequest-headers ve response-headers hook’ları yalnızca policy-tier örneği gibi izin verilen sentetik header’ları ayarlayabilir veya kaldırabilir.
Rota kararlarıroute-decision hook’ları yalnızca devam edebilir, reddedebilir veya yapılandırılmış eşleşen canary ve mirror rota dallarını seçebilir.
Cache kararlarıcache-lookup hook’ları continue, pass, bypass veya deny yapabilir. cache-store hook’ları memory/disk cache yazımlarından önce continue, skip storage veya deny yapabilir.

Çalıştır

Özel profile-wasm arşivini veya imajını kullanın; normal tam derleme bilinçli olarak Wasm içermez.

Resmî Wasm imajı çalışma zamanını içerir ancak işletmeci eklentilerini içermez. İncelenmiş modülleri salt okunur bağlayın ve her modülü SHA-256 ile sabitleyin.

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

Onaylı eklenti kökleri

Plugin dosyaları onaylı köklerin altında mutlak yollu normal dosyalar olmalıdır; sembolik bağlantılar veya üst dizin yolları kullanılamaz.

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

Sınırlı çalıştırma

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

Üretim notları

Salt okunur konteyner bağlantısı ana makinedeki dosyaları korumaz. Ana makine yapılandırmasını ve eklenti dizinini yazma izni olmayan güvenilir bir hesaba ait tutun.

  • Herkese açık eklenti bildirimleri sabit bir SHA-256 özeti içermelidir. Süreç genelinde aynı anda en fazla iki modül derlenir. Derlenmiş çıktının varsayılan sınırı 32 MiB'dir ve 256 MiB'yi aşamaz.
  • Yapılandırma dosyalarını ve mevcut tüm üst dizinleri güvenilir sahiplik altında tutun; grup veya diğer kullanıcılar tarafından yazılabilir olmamalarını sağlayın.
  • Sürüm versiyonlarını veya imaj digest'lerini sabitleyin.
  • Gizli bilgileri genel belgelerde değil; dosyalarda, environment değerlerinde veya container secret'larında tutun.

Full docs on GitHub

Türkçe