随着大型模型技术的日益成熟,越来越多企业积极尝试在内部应用这一前沿技术,上线各类创新的 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 种常用的角色):
在数据层,Zilliz Cloud 提供了 3 种内建角色:Admin、Read-Only 和 Read-Write,用于控制对 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 团队成员邀请为项目成员角色。对于有数据隔离需求的电商、客服等业务,通过自定义角色,只需创建一个集群即可满足,进一步降低成本。
步骤如下:
例如,作为一家面向企业的 SaaS 服务提供商,你希望推出知识库应用:允许用户上传知识文件,结合大模型进行智能问答。
在后台,你计划将这些知识文件存储在向量数据库中。你的小型客户估计有 2 万家,其中单个客户的数据量相对较小,不超过 10 万条;而你的大型客户大概有 50 个,他们的数据量较大,在千万到亿不等,对数据隔离和服务稳定性有严格的要求,希望支持知识库数据的对外集成。
在这类场景下,你的客户无需登录 Zilliz Cloud,管控层的组织管理员和项目管理员均应设置在你的团队。