WASM екстензије
Наменска Wasm верзија заснована на пуном продукционом профилу, са ограниченим програмским кукама, ACME-ом, метрикама и OpenTelemetry-јем
Што добиваш
Наменска Wasm верзија заснована на пуном продукционом профилу, са ограниченим програмским кукама, ACME-ом, метрикама и OpenTelemetry-јем.
| Функција | Користи за |
|---|---|
| Одлуке о приступу | Живи native HTTP/1 access-decision hook-ови користе редослед приоритета, first-deny-wins композицију и fail-closed понашање. |
| Header-hook-ови | request-headers и response-headers hook-ови могу да поставе или уклоне само дозвољене синтетичке header-е, као у policy-tier примеру. |
| Одлуке рута | route-decision hook-ови могу само да наставе, одбију или изаберу конфигурисане одговарајуће canary и mirror гране руте. |
| Cache одлуке | cache-lookup hook-ови могу да наставе, проследе ка origin-у, заобиђу cache или одбију. cache-store hook-ови могу да наставе, прескоче чување или одбију пре уписа у memory/disk cache. |
Покрени
Користите наменску архиву или слику profile-wasm; уобичајена пуна верзија намерно остаје без Wasm-а.
Званична Wasm слика садржи извршно окружење, али не и операторске додатке. Прегледане модуле монтирајте само за читање и сваки модул вежите за 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
Одобрени корени додатака
Фајлови plugin-а морају бити обични фајлови са апсолутним путањама испод одобрених корена, без симболичких линкова или родитељских путања.
[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"]
Ограничено извршавање
Лимити за fuel, меморију, табеле, инстанце, време компајлирања, compile worker-е и watchdog по позиву држе sandbox у ограниченим оквирима.
[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 напомене
Монтирање контејнера само за читање не штити његове датотеке на хосту. Конфигурација хоста и директоријум додатака треба да припадају поузданом налогу без права писања.
- Јавни манифести додатака морају да садрже фиксни SHA-256 сажетак. У целом процесу истовремено се компајлирају највише два модула. Компајлирани излаз подразумевано је ограничен на 32 MiB и не може да пређе 256 MiB.
- Држите config files и све постојеће parent directories под поузданом ownership и без права уписа за group или друге users.
- Фиксирај release версион или image digest.
- Држи сецрет у file, енвиронмент или цонтаинер сецретс, не у публиц docs.