主题
FIPS 合规镜像
在符合 FIPS 140 的容器镜像上运行自托管 LangSmith 安装
NOTE
FIPS 和气隙环境中的 LangSmith 部署需要在推出前与你的 LangChain 客户经理沟通。在更改安装之前,请联系我们以确定许可、支持的配置和升级路径。
从 v15 起,每个由 LangChain 编写的 LangSmith 镜像都有一个以 FIPS 140 模式运行的 -fips 对应镜像。当你的自托管部署需要 FIPS 合规时(例如联邦机构、国防承包商和受监管行业),请使用这些镜像。
镜像如何构建
-fips 变体构建在 Chainguard FIPS 容器镜像之上,这些镜像附带经 NIST 验证的加密模块(根据基础镜像不同,可能是 OpenSSL FIPS provider、Bouncy Castle FIPS 或 BoringCrypto)。模块列表及其 CMVP 证书请参阅 Chainguard 的 FIPS 承诺。
每个由 LangChain 编写的镜像都有一个 -fips 对应镜像,与非 FIPS 版本以相同标签发布:
| 非 FIPS 镜像 | FIPS 镜像 |
|---|---|
langchain/langsmith-ace-backend | langchain/langsmith-ace-backend-fips |
langchain/langsmith-backend | langchain/langsmith-backend-fips |
langchain/langsmith-frontend | langchain/langsmith-frontend-fips |
langchain/langgraph-operator | langchain/langgraph-operator-fips |
NOTE
从 LangSmith 0.16.21(chart 0.16.0-rc.17)起镜像更少。 platform backend、playground、host backend 以及 Fleet 工具服务器和触发服务器现在都从单个 langsmith-backend 镜像运行,因此不再需要 langsmith-go-backend-fips、langsmith-playground-fips、hosted-langserve-backend-fips、agent-builder-tool-server-fips 和 agent-builder-trigger-server-fips。chart 中已移除对应的 values.yaml 键:platformBackendImage、playgroundImage、hostBackendImage、fleetToolServerImage 和 fleetTriggerServerImage;你仍为它们设置的任何值都会被忽略。
在更早的版本中,这五个镜像也会以相同标签发布 -fips 对应镜像;请同样将每个键指向其 -fips 仓库。
LangChain 不发布 PostgreSQL、Redis 和 ClickHouse 的 FIPS 变体。如果你的部署需要这些组件符合 FIPS,请自带 FIPS 模式的服务,并通过外部 Postgres、外部 Redis 或外部 ClickHouse 连接。
ACE 后端 FIPS 边界说明
langsmith-ace-backend-fips 与其他所有 -fips 镜像构建在相同的 Chainguard FIPS 基础之上,但其代码执行运行时(Deno 和 Pyodide/WebAssembly)自带加密库,不会动态链接系统经 FIPS 验证的 OpenSSL,因此该执行运行时的技术层面落在 FIPS 140 模块边界之外。
我们认为这对受监管环境是可以接受的:FIPS 管控平台对敏感数据的加密操作,而 ACE 不执行任何此类操作。它不会向用户代码注入密钥,不持久化数据,也不执行静态数据加密,其执行子进程没有网络访问权限。ACE 是供 LangSmith 后端调用的集群内 HTTP 服务;当 TLS 由经 FIPS 验证的 mesh 或 ingress 在上游终止时,ACE 不执行任何范围内的加密操作。
使用 FIPS 镜像
更新 LangSmith Helm 安装中的 values.yaml,将每个 LangChain 镜像仓库指向其 -fips 对应仓库,同时保留现有标签。将 0.16.21 替换为你想要部署的 LangSmith 版本:
yaml
images:
aceBackendImage:
repository: "langchain/langsmith-ace-backend-fips"
pullPolicy: IfNotPresent
tag: "0.16.21"
backendImage:
repository: "langchain/langsmith-backend-fips"
pullPolicy: IfNotPresent
tag: "0.16.21"
frontendImage:
repository: "langchain/langsmith-frontend-fips"
pullPolicy: IfNotPresent
tag: "0.16.21"
operatorImage:
repository: "langchain/langgraph-operator-fips"
pullPolicy: IfNotPresent
tag: "0.16.21"按照升级 LangSmith指南应用更改并升级。
验证 FIPS 模式
Chainguard 在每个 FIPS 镜像中都附带 openssl-fips-test 工具。对某个 pod 运行它,会打印 FIPS 自检结果、当前活动的 FIPS provider 版本以及适用 CMVP 证书的链接。
检查正在运行的 pod:
bash
kubectl exec <pod-name> -- openssl-fips-test预期输出(节选):
text
Checking OpenSSL lifecycle assurance.
✓ Self-test KAT_Integrity HMAC ... passed.
✓ Self-test Module_Integrity HMAC ... passed.
...
✓ 29 out of 29 self-tests passed.
✓ Check FIPS cryptographic module is available... passed.
✓ Check FIPS approved only mode (EVP_default_properties_is_fips_enabled)... passed.
Public OpenSSL API (libssl.so & libcrypto.so):
name: OpenSSL 3.6.0 1 Oct 2025
version: 3.6.0
FIPS cryptographic module provider details (fips.so):
name: OpenSSL FIPS Provider
version: 3.1.2
Locate applicable CMVP certificate(s) at: CMVP #4985你也可以在 Kubernetes 之外验证镜像:
bash
docker run --rm --entrypoint openssl-fips-test langchain/langsmith-backend-fips:0.16.21有关解读输出的更多细节,请参阅 Chainguard 的 FIPS 验证指南。
为气隙部署镜像
将镜像镜像到私有仓库时,-fips 命名约定同样适用。请遵循镜像镜像指南,并将每个仓库替换为其 -fips 对应仓库。无论是否使用 FIPS,气隙推出都需要在开始前与你的 LangChain 客户经理确定范围。