FIPS 和气隙网络(Airgapped)环境下的 LangSmith 部署,在正式推出前需要与您的 LangChain 客户经理进行沟通。在更改安装前,请联系以确定许可范围、支持的配置和升级路径。
从版本 v15 开始,每个由 LangChain 编写的 LangSmith 镜像都有一个对应的 -fips 版本,可在 FIPS 140 模式下运行。当您的自托管部署需要满足 FIPS 合规要求时(例如在联邦机构、国防承包商和受监管行业中),请使用这些镜像。

镜像的构建方式

-fips 变体基于 Chainguard FIPS 容器镜像 构建,其中包含了经过 NIST 验证的加密模块(根据基础镜像的不同,可能是 OpenSSL FIPS provider、Bouncy Castle FIPS 或 BoringCrypto)。有关模块列表及其 CMVP 证书,请参考 Chainguard 的 FIPS 承诺。 每个由 LangChain 编写的镜像都有一个对应的 -fips 版本,其标签与非 FIPS 版本相同:
从 LangSmith 0.16.21(Chart 版本 0.16.0-rc.17)开始,镜像数量有所减少。 平台后端、Playground、宿主后端以及 Fleet 工具和触发服务器现在都运行在单一的 langsmith-backend 镜像中,因此不再需要 langsmith-go-backend-fips、langsmith-playground-fips、hosted-langserve-backend-fips、agent-builder-tool-server-fips 和 agent-builder-trigger-server-fips。相应的 values.yaml 键:platformBackendImage、playgroundImage、hostBackendImage、fleetToolServerImage 和 fleetTriggerServerImage 已从 Chart 中移除;您为它们设置的任何值都将被忽略。在更早的版本中,这五个镜像也发布了带有 -fips 后缀的对应版本;请将这些键指向其各自的 -fips 仓库。
PostgreSQL、Redis 和 ClickHouse 没有由 LangChain 发布为 FIPS 变体。如果您的部署需要这些组件满足 FIPS 要求,请自行提供 FIPS 模式的服务,并通过外部 PostgreSQL、外部 Redis 或外部 ClickHouse 进行连接。

ACE 后端 FIPS 边界说明

langsmith-ace-backend-fips 与所有其他 -fips 镜像基于相同的 Chainguard FIPS 基础镜像构建,但其代码执行运行时(Deno 和 Pyodide/WebAssembly)捆绑了它们自己的加密库,并且不动态链接系统中经过 FIPS 验证的 OpenSSL,因此从技术上讲,执行运行时本身不在 FIPS 140 模块边界之内。 我们认为这在受监管环境中是可以接受的:FIPS 管控的是平台对敏感数据的加密操作,而 ACE 并不执行此类操作。它不会向用户代码注入任何密钥,不持久化数据,也不执行静态数据加密,并且其执行子进程没有网络访问权限。ACE 是一个集群内的 HTTP 服务,由 LangSmith 后端调用;当上游 TLS 由经过 FIPS 验证的服务网格或 Ingress 终止时,ACE 不执行任何属于管控范围内的加密操作。

使用 FIPS 镜像

在您的 LangSmith Helm 安装中更新 values.yaml 文件,将每个 LangChain 镜像仓库指向其对应的 -fips 版本,同时保留您现有的标签。将 0.16.21 替换为您想要部署的 LangSmith 版本:
应用更改并按照升级 LangSmith 指南进行升级。

验证 FIPS 模式

Chainguard 在每个 FIPS 镜像内部都包含了 openssl-fips-test 工具。针对一个 Pod 运行它,可以打印出 FIPS 自检信息、活动的 FIPS 提供程序版本以及相关 CMVP 证书的链接。 检查一个正在运行的 Pod:
预期输出(节选):
您也可以在 Kubernetes 之外验证一个镜像:
有关解读输出结果的更多详情,请参阅 Chainguard 的 FIPS 验证指南。

气隙网络部署镜像

将镜像镜像到私有注册表时,-fips 命名约定同样适用。请遵循镜像镜像指南,并将每个仓库替换为其对应的 -fips 版本。气隙网络环境的推出(无论是否包含 FIPS)都需要在开始前与您的 LangChain 客户经理确定范围。