⚠️ 此页面为自动翻译,翻译可能不完美。
blog-post

Manticore Search 的内置认证与授权

搜索不再只是网站上的一个框。在许多部署中,Manticore Search 更像一个内部数据服务:应用程序向它查询,导入任务更新它的表,仪表盘从它读取数据,而运维人员修改模式。当这一切都只依赖网络层面的信任时,访问控制很快就会变得脆弱。

这就是 Manticore Search 现在具备内置认证与授权的原因。它在 27.x 发布线中引入,并发布在 27.1.5 发布文章 中,让 Manticore 能够检查谁在连接,以及该用户被允许做什么。

该功能适用于 SQL、HTTP/HTTPS 客户端、分布式远程代理以及复制相关操作。

Manticore 新增了什么

Manticore 现在为核心访问路径提供认证与授权支持:

  • SQL/MySQL 客户端使用用户名和密码进行身份验证。
  • HTTP 客户端可以使用 Basic 认证或 Bearer 令牌。
  • 权限按操作和目标授予。
  • 认证事件可以按可配置级别记录日志。
  • 用户和权限通过专门的 SQL 命令管理。

授权模型使用五种操作:

  • read 用于搜索和只读访问。
  • write 用于数据变更。
  • schema 用于表和模式管理。
  • replication 用于集群操作。
  • admin 用于认证与授权管理。

目标是普通名称和通配符,例如 productslogs_**。这样这个模型就更贴近人们对 Manticore 表和集群的既有认知。

对运维人员意味着什么

常见的情况是,某个客户端应用可以搜索一张表,但没有写入权限。数据导入流程可以更新文档,但不能修改模式。模式迁移任务可以运行,但不会被授予安全管理员权限。运维人员可以管理认证与授权,而不会自动获得业务数据的读取权限。

一旦搜索成为共享基础设施的一部分,这些权限边界就很重要。重点不只是把外部人挡在外面,而是让每个受信任的客户端都只被限制在它真正需要的范围内。

Manticore 现在为这些控制提供了原生落点。用户通过他们已经在用的协议进行认证。Manticore 根据操作和目标检查权限。运维人员通过 SQL 命令管理访问。应用程序继续保持原有的 SQL 或 HTTP 集成方式。

为什么这对 SaaS 和共享搜索很重要

SaaS 和共享服务团队通常需要一层搜索来服务多个产品、团队或租户。有些集成面向客户,有些是内部工具,还有些在后台运行。它们不应默认继承同样的信任级别。

在内置认证出现之前,团队往往不得不在 Manticore 外部解决其中的大部分问题。一个常见的变通方法是在 Manticore 前面放置 nginx,并在那一层依赖 HTTP Basic 认证。这样可以保护一个入口点,但不能让 Manticore 拥有自己的用户和权限模型。现在,团队可以在数据实际提供的地方更直接地建模这些控制。

这让 Manticore 更适合用于面向客户的敏感数据搜索、具有不同权限级别的内部工具,以及多个服务共用的搜索集群。

认证与授权本身并不是一套合规方案。不过,它们属于审查人员希望看到的那类控制。对于 GDPR、SOC 2 以及内部安全审查,展示具名用户、受限权限和认证日志,比展示一个能做所有事情的共享凭据更有说服力。

部署说明

运维人员可以启用认证、引导首个管理员,然后用熟悉的 SQL 命令管理用户和权限。应用程序无需为了开始发送凭据就引入一个新的、Manticore 特定的网关。SQL 客户端使用用户名和密码。HTTP 客户端使用 Basic 认证或 Bearer 令牌。

对于现有部署,要把这次切换当作一次正式上线,而不只是一次配置变更。默认情况下,认证在配置前是禁用的。一旦启用,未发送凭据的客户端应当失败,因此应先更新应用程序,并在切换生产流量之前测试预期中的拒绝情况。

对于分布式或复制拓扑,请仔细规划部署。先升级远程代理和复制对等节点,再升级查询或管理它们的主节点,并且只在整个拓扑都运行兼容版本后再启用认证。

了解更多

如需实操演示,请参阅这篇实践发布文章:

如何使用内置认证与授权保护 Manticore Search

如需了解现有部署的处理方式,请查看上线清单:

Manticore Search 现有部署的认证迁移加固清单

如需完整参考,请查看手册页面:

认证与授权手册

安装Manticore Search

在 Linux 或 macOS 上用一条命令安装 Manticore Search:

curl https://manticoresearch.com | sh

有关高级安装选项,请参阅完整安装指南手册

安装Manticore Search