对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

从 MongoDB 到搜索的安全连接

本页介绍当您使用Kubernetes Operator 的MongoDB控制器运行MongoDB Search 和 Vector Search 时,如何为 mongod(或 mongos)打开到 mongot 的连接配置 TLS。在此连接上,mongot 运行监听服务器,mongod 为客户端。您可以通过 MongoDBSearch资源的 spec.security.tls区块进行配置。

本页面不涉及mongot mongod向 源数据开启的连接。有关该方向(包括 mongot 如何进行身份验证以及如何信任源 mongod 的证书)的详情,请参阅 保护从搜索到 MongoDB 的连接。

有关此页上引用的每个 MongoDBSearch 设置的完整模式,请参阅 MongoDB Search 和向量搜索设置。

mongot 监听服务器支持三种概念模式:

模式
行为

残疾人

监听服务器仅接受明文连接。当省略 spec.security.tls 时,这是默认值。

TLS

监听服务器需要来自 mongod 的 TLS 加密连接,并提供服务器证书。客户端验证证书,但不提供自己的客户端证书。

mTLS

监听服务器需要 TLS,并且要求客户端 (mongod) 提交一个证书,mongot 对该证书进行验证,以确保其对可信证书授权机构有效。当 mongod 使用 X.509 对 mongot 进行身份验证时,需要 mTLS,因为 X.509 身份验证即客户端提交证书。请参阅从搜索到 MongoDB 保护连接。

Kubernetes 操作符 将此配置显示为单个 spec.security.tls 块。当源 mongod 也使用 TLS 时,监听服务器以 mTLS 模式运行。在这种情况下,mongot 会针对源 mongod 的 CA 验证客户端证书,而不是针对 spec.security.tls 上配置的 CA。要配置该信任,请参阅保护从搜索到 MongoDB 的连接。

要在 mongot 监听服务器上启用 TLS,请在 MongoDBSearch 资源上设置 spec.security.tls.certsSecretPrefix。Kubernetes 操作符按名称前缀从同一命名空间中的 Kubernetes Secret 资源查找 TLS 材料:

spec:
security:
tls:
certsSecretPrefix: my-mongot

使用上述前缀,Kubernetes 操作符通过在这些前缀后附加固定后缀来推导 TLS 密钥名称。对于副本集,它会从名为 my-mongot-<name>-search-cert 的 Secret 中读取 tls.crt 和 tls.key 对,其中 <name> 是 MongoDBSearch 资源的 metadata.name。有关所有命名模式(包括分片集群部署),请参阅 spec.security.tls.certsSecretPrefix。在 mTLS 模式下,mongot 用于验证 mongod 客户端证书的 CA 来自于源 mongod 的 TLS 配置,而不是来自 spec.security.tls。请参阅 确保从 Search 到 MongoDB 的连接安全。

注意

spec.security.tls.certsSecretPrefix 是新部署的推荐字段。旧版 spec.security.tls.certificateKeySecretRef.name 字段仍受支持,当两者在同一 MongoDBSearch 资源上设置时,会优先使用旧版字段。旧版字段上的现有部署可继续工作,无需作任何更改。

以下限制适用于 mongot TLS:

  • 无可配置的密码套件。mongot 协商的密码套件不能通过 MongoDBSearch CRD 或 mongot 配置进行配置。该套件固定为 mongot 附带的值。

  • 不支持 FIPS。 mongot 在此版本中不提供 FIPS 验证的 TLS 模式。

  • 监听服务器上无主机名或 SAN 验证。 mongot 验证入站客户端证书是否由可信CA签名,但不验证证书上的主题主机名或SAN条目。监听路径上的身份验证依赖证书权限和在保护从搜索到MongoDB的连接中配置的X.509主题标识名授权。

  • 最低 TLS 版本为 1.2。 mongot 不接受 TLS 1.0 或 1.1 连接。

轮换 TLS 材料的流程与轮换客户端证书的流程相同:更新引用的 Secret 并重启 mongot 节点。有关该程序,请参阅 保护从搜索到 MongoDB 的连接。

警告

在运行的部署上启用 TLS 会导致短暂但真实的服务中断,而非无缝更改。mongot 的 gRPC 监听器是二进制的:它可以接受明文或 TLS,但不能同时接受两者。从禁用切换到 TLS 会将 mongot 和 mongod 的 searchTLSMode 滚动到一起,新的搜索查询在切换过程中会暂时失败。在已启用 TLS 的部署上轮换证书不会出现此间隙,因为监听器模式不会改变。规划初始 TLS 启用的维护窗口。