WASM विस्तार
संपूर्ण उत्पादन प्रोफाइलवर आधारित स्वतंत्र Wasm बिल्ड, ज्यात मर्यादित धोरण हुक, ACME, मेट्रिक्स आणि OpenTelemetry समाविष्ट आहेत
हे काय देते
संपूर्ण उत्पादन प्रोफाइलवर आधारित स्वतंत्र Wasm बिल्ड, ज्यात मर्यादित धोरण हुक, ACME, मेट्रिक्स आणि OpenTelemetry समाविष्ट आहेत.
| feature | साठी वापरा |
|---|---|
| प्रवेश निर्णय | Live native HTTP/1 access-decision hooks priority ordering, first-deny-wins composition आणि fail-closed behavior वापरतात. |
| हेडर hooks | request-headers आणि response-headers hooks फक्त allow-listed synthetic headers, जसे policy-tier example, set किंवा remove करू शकतात. |
| रूट निर्णय | route-decision hooks फक्त continue, deny किंवा configured matching canary आणि mirror route branches निवडू शकतात. |
| Cache निर्णय | cache-lookup hooks continue, pass, bypass किंवा deny करू शकतात. cache-store hooks memory/disk cache writes आधी continue, skip storage किंवा deny करू शकतात. |
चालवा
स्वतंत्र 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 roots
Plugin फाइल्स मंजूर root खालील absolute path असलेल्या regular file असाव्यात; symlink किंवा parent path नसावेत.
[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"]
मर्यादित execution
Fuel, memory, table, instance, compile-timeout, compile-worker आणि प्रत्येक-call 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
उत्पादन नोट्स
कंटेनरचे फक्त-वाचन माउंट होस्टवरील फाइलचे संरक्षण करत नाही. होस्ट संरचना आणि प्लगइन निर्देशिका लेखनाची परवानगी नसलेल्या विश्वासार्ह खात्याच्या मालकीखाली ठेवा.
- सार्वजनिक प्लगइन मॅनिफेस्टमध्ये निश्चित SHA-256 डायजेस्ट असणे आवश्यक आहे. संपूर्ण प्रक्रियेत एकावेळी जास्तीत जास्त दोन मॉड्यूल संकलित होतात. संकलित आउटपुटची डीफॉल्ट मर्यादा 32 MiB आहे आणि ती 256 MiB पेक्षा जास्त असू शकत नाही.
- config file आणि तिची प्रत्येक अस्तित्वात असलेली parent directory विश्वासार्ह ownership खाली ठेवा आणि group किंवा इतर user ना लिहिण्याची परवानगी देऊ नका.
- release versions किंवा image digests pin करा.
- secrets files, environment किंवा container secrets मध्ये ठेवा, public docs मध्ये नाही.