轻松管理基于 RAG 的知识库!RBAC 的最佳实践来了

2024-03-01

By 汤雪

轻松管理基于 RAG 的知识库!RBAC 的最佳实践来了

随着大型模型技术的日益成熟,越来越多企业积极尝试在内部应用这一前沿技术,上线各类创新的 AI 应用,这标志着科技领域的一大飞跃。在这个发展趋势中,向量数据库凭借其强大的数据支持,成为 RAG(Retrieval-Augmented Generation)、智能体等 AI 应用的关键技术。

然而,随着企业应用和数据的不断蓬勃增长以及多样化发展,对于数据访问的安全性需求也逐渐升高。如何隔离不同项目、不同用户之间的数据和资源,使团队协作更加高效,成为许多企业面临的一项重要挑战。在这篇文章中,我们将探索 Zilliz Cloud 基于角色的访问控制及不同场景下的最佳实践。

01.了解 Zilliz Cloud RBAC

Zilliz Cloud 的 RBAC(角色权限访问控制)功能提供了一种结构化和可扩展的方法来管理数据访问权限,保障数据安全。RBAC 通过以下层面实现访问控制:用户账户、组织、项目。

其中,组织是将拥有共同目标的多个项目汇聚在一起,例如,将某个特定业务单元下的所有项目整合在同一组织中。

在一个组织下,用户可以创建若干项目,并管理组织级别的资源,包括账单、组织成员、事件、系统设置以及回收站等。

项目是组织内部用于归类集群和其他相关资源的逻辑分组单位。在一个项目中,你可以创建若干集群,并管理集群级别的资源,包括项目成员、API 密钥、安全设置和监控等。

02.Zilliz Cloud RBAC 是如何工作的?

Zilliz Cloud 权限设计遵循 RBAC 原则,分为管控层和数据层 2 层角色。在管控层,角色掌管集群、项目、用户和账单等资源的操作权限,而在数据层,角色则专注于控制对 Cluster 数据的增、删、改、查的能力。

在管控层,Zilliz Cloud 支持 4 种角色(组织管理员、项目所有者和项目成员是 3 种常用的角色):

  • 组织管理员:拥有对组织的全部管理权限,包括组织设置、管理支付方式及账单、API Key、组织中的所有项目以及相关资源。
  • 组织成员:在组织中具有有限的访问权限,可以查看组织设置并邀请用户加入组织。组织成员对组织层面、项目层面和集群层面的资源的具体权限范围由其在项目中的角色确定。
  • 项目所有者:拥有对项目的全部管理权限,包括项目设置、项目内的 API Key、项目内的所有集群以及相关资源。
  • 项目成员: 对项目内的所有集群具有读写权限,可以查看集群详情并管理 Collection和 Index。

在数据层,Zilliz Cloud 提供了 3 种内建角色:Admin、Read-Only 和 Read-Write,用于控制对 Cluster 数据的读写和管理权限:

  • Admin(管理员):拥有 Cluster 的最高权限,可以执行所有操作。
  • Read-write(读写):具有对 Cluster 数据进行读写的权限,适用于需要修改数据的场景。
  • Read-only(只读):具有对 Cluster 下所有数据进行只读访问的权限,适用于只需要查看数据而不修改的场景。

然而,考虑到特定业务需求,例如,只允许授权人员访问敏感数据或者希望使用 Collection 作为多租户隔离单元以确保安全隔离数据访问,Zilliz Cloud 允许用户创建自定义角色。这些自定义角色能够定义对特定 Collection、Partition 或操作的权限,确保在使用 Zilliz Cloud 时实现数据权限最小化原则。

以上概述了 Zilliz Cloud 权限设计框架和多种角色,详细能力对比可参考 (https://docs.zilliz.com.cn/docs/user-roles)。

03.Zilliz Cloud RBAC 的最佳实践

中小型团队协同的最佳实践

例如,你是公司的 infra 团队负责人,专注于运维向量数据库,以满足 3-5 个业务团队推荐、搜索相关的 AI 应用需求,如电商、客服部门。

你希望可以具备创建集群、执行扩缩容操作,同时支持所有集群用量监控能力,Infra 团队成员可以监控集群健康状态,对所有集群进行建表、数据删改;对于业务团队而言,他们期望支持对 Collection 进行数据的增删改查,不同业务之间数据不可见;而财务同事则需要具备管理支付方式以及收取账单的能力。

针对这类场景,我们推荐你将自己和财务同事设为 Zilliz Cloud 的组织管理员角色,将 Infra 团队成员邀请为项目成员角色。对于有数据隔离需求的电商、客服等业务,通过自定义角色,只需创建一个集群即可满足,进一步降低成本。

步骤如下:

  • 首先,创建一个 Enterprise Plan 集群,通过 SDK 创建两个自定义角色,用于电商和客服,限定它们仅能够读写电商和客服相关的表。
  • 其次,创建两个 Cluster 用户并与电商和客服自定义角色分别绑定。
  • 最后,将集群 Endpoint 和 Cluster 用户名密码提供给业务团队,即满足数据操作的安全性和独立性。

企业知识库的最佳实践

例如,作为一家面向企业的 SaaS 服务提供商,你希望推出知识库应用:允许用户上传知识文件,结合大模型进行智能问答。

在后台,你计划将这些知识文件存储在向量数据库中。你的小型客户估计有 2 万家,其中单个客户的数据量相对较小,不超过 10 万条;而你的大型客户大概有 50 个,他们的数据量较大,在千万到亿不等,对数据隔离和服务稳定性有严格的要求,希望支持知识库数据的对外集成。

在这类场景下,你的客户无需登录 Zilliz Cloud,管控层的组织管理员和项目管理员均应设置在你的团队。

针对小型客户,我们建议创建共享集群以节省成本,相同结构的文件,存储在同一个 Collection 下,每个客户以 Partition Key 做数据隔离,客户搜索时,仅返回该 Partition Key 下的数据。

针对大型客户,建议基于数据规模为不同客户创建不同规格的独立集群,满足隔离性。然后,为每个客户创建指定 Cluster 的 Custmized API Key,角色为 built-in Read-Write,以连接专属集群,灵活满足各类外部应用的数据集成。

04.结论

总结来看,Zilliz Cloud 基于角色的权限设计,为用户提供了高度灵活和精细的权限控制。结合自定义角色,无论是个人用户、小型企业,还是中大型企业的各类复杂场景需求,Zilliz Cloud 都能够满足,欢迎各位注册使用 (https://cloud.zilliz.com.cn/signup)。

  • 汤雪

    汤雪

准备好开始了吗?

立刻创建 Zilliz Cloud 集群,存储和检索您的向量。

免费试用 Zilliz Cloud