本文将描述什么是 WASM 扩展以及其好处。
什么是 WASM 扩展?
WASM 扩展是WebAssembly的软件插件,可用于扩展 Istio 代理(Envoy)。
这些 WASM 扩展在一个沙盒环境中执行,对外部系统的访问受到限制,并且可以使用不同的编程语言及其 SDK 创建。
这个沙盒环境提供了隔离
,以防止一个插件中的编程错误或崩溃影响其他插件,并提供了安全性
,以防止一个插件从系统获取信息。
WASM 扩展的好处是什么?
Envoy 可以使用过滤器
进行扩展,有各种内置的过滤器用于不同的协议,可以配置为在网络流量的一部分执行。
通过这些过滤器(网络、HTTP)的组合,你可以增强传入请求、转换协议、收集统计信息、修改响应、执行身份验证等等。
为了拥有自定义过滤器,有几种选择:
- 使用 C++ 编写自己的过滤器并将其与 Envoy 打包。 这意味着重新编译 Envoy 并维护不同版本。
- 使用依赖于 HTTP Lua 过滤器的 Lua 脚本。 适用于简单的脚本和更复杂的部署过程。
- 使用基于 WASM 的扩展 允许使用不同的编程语言编写复杂的脚本,并自动化部署过程。
一些 WASM 扩展的好处包括:
- 使用自定义功能扩展网关
- 应用有效载荷验证(在 Istio 过滤器上不可能,因为它们只操作元数据)
- 快速应对 CVE 或 0 天漏洞(例如 Log4Shell)
- 在 AUTHZ 和 AUTHN 上添加自定义安全验证
- 改善应用程序的安全性,而不触及其代码库
进一步阅读: