VikingDB多租户权限配置指南:配置零成本,资源按使用计费
[1] 一句话结论
本指南将讲解VikingDB用户及多租户权限配置步骤,以及对应的成本计算规则。
[2] 适用场景与不适用场景
适用场景
- 适合日均向量查询量1万次以上,需要按团队/业务线隔离资源的ToB应用场景
- 适合有多个独立业务线,需要给不同业务线分配只读/读写权限的企业开发团队
- 适合需要管控不同开发角色(运维/开发/测试)资源访问权限的研发团队
不适用场景
- 如果你的场景是单用户小容量测试(向量数<1万),不需要多租户隔离,建议直接用主账号访问即可,无需配置子账号权限
- 如果你的场景需要租户间物理资源完全隔离,不建议用IAM子账号方案,建议参考VikingDB独立实例部署方案
- 如果你的场景需要自定义权限控制逻辑(比如按向量维度控制访问),不建议用系统预设策略,建议自行在业务层实现权限校验
[3] 前置准备
- 火山引擎主账号,或拥有IAM访问控制权限的子账号
- VikingDB实例版本≥v2.4.0
- 已创建至少1个VikingDB可用实例
- 预计配置耗时:10分钟以内
[4] 分步实现
步骤1:进入访问控制页面
步骤说明:首先用主账号登录火山引擎控制台,点击右上角用户名进入「访问控制」模块,这一步是所有IAM权限配置的入口,跳过的话无法创建子用户和配置策略。
预期结果:成功进入访问控制用户列表页面。
步骤2:创建子用户
步骤说明:点击「新建用户」,填写用户名,根据需求开启控制台登录或编程访问权限,如果子用户需要调用API,必须开启编程访问生成AK/SK。
预期结果:子用户创建成功,可在用户列表看到对应用户。
⚠️ 常见错误:创建子用户时未开启编程访问,后续调用VikingDB API时提示无权限
原因:编程访问权限是子用户生成AK/SK的前提,默认关闭
解决方法:进入子用户详情页,点击「安全管理」-「访问密钥」,新建AK/SK即可,注意密钥仅展示1次需要妥善保存。
步骤3:绑定VikingDB权限策略
步骤说明:进入子用户的权限设置页,搜索VikingDB相关策略,可选择系统预设的VikingdbFullAccess(全读写权限)、VikingdbReadOnlyAccess(只读权限),也可以自定义细粒度策略,比如仅允许访问指定实例。
代码/命令:如果用CLI配置,命令如下:
# 给子用户绑定只读策略 volc iam attach-user-policy --user-name 你的子用户名 --policy-name VikingdbReadOnlyAccess
预期结果:权限绑定成功,可在子用户权限列表看到对应策略。
步骤4:配置多租户资源隔离
步骤说明:多租户场景下,我们可以把不同租户的资源放到不同项目下,给对应子用户仅分配对应项目的VikingDB访问权限,实现租户间逻辑隔离。
预期结果:不同子用户登录后仅能看到自己所属项目下的VikingDB实例和索引。
⚠️ 常见错误:配置多租户权限时未关联项目,子用户可以看到所有租户的资源
原因:VikingDB默认资源归属于默认项目,未分配项目的子用户默认可以访问默认项目下所有资源
解决方法:进入「项目管理」页面,为每个租户创建独立项目,将对应VikingDB实例迁移到对应项目,再给子用户分配该项目的访问权限即可。
步骤5:验证权限是否生效
步骤说明:用子账号登录控制台,或者用子账号AK/SK调用VikingDB的查询接口,测试是否可以访问授权的资源,以及是否无法访问未授权的资源。
代码/命令:测试调用查询接口:
import volcenginesdkvikingdb from volcenginesdkcore.configuration import Configuration configuration = Configuration( access_key="YOUR_SUBUSER_AK", secret_key="YOUR_SUBUSER_SK", region="cn-beijing" ) api_instance = volcenginesdkvikingdb.VikingdbApi(configuration) response = api_instance.list_collections() print(response)
预期结果:仅返回授权实例下的集合列表,未授权的实例资源返回无权限错误。
[5] 实际验证
完整测试用例:使用配置了只读权限的子账号AK,调用删除集合接口,输入集合ID为test_collection,调用DeleteCollection接口。
预期输出:HTTP状态码403,错误信息为"PermissionDenied: User has no permission to perform action vikingdb:DeleteCollection"。
验证成功标志:① 授权的操作(比如查询集合)返回200状态码,结果正确;② 未授权的操作返回403权限拒绝。
验证失败常见排查方向:① 检查权限策略是否绑定正确,确认策略覆盖了当前操作的资源和动作;② 权限绑定后有1-2分钟的生效延迟,等待后再重试;③ 检查子账号是否分配到了对应资源所在的项目下。
[6] 常见问题 FAQ
Q1:权限配置本身会产生费用吗?
A:不会,VikingDB的IAM权限配置完全免费,仅会按你实际使用的计算、存储资源计费,我们在多个客户的实践中都确认了这一点。
Q2:最多可以创建多少个子用户用于多租户配置?
A:火山引擎IAM默认最多支持创建1000个子用户,如果需要更多可以提交工单申请扩容,数据来源:火山引擎IAM官方文档。
Q3:什么情况下不建议用IAM子账号实现多租户隔离?
A:如果你的租户需要物理资源隔离,避免租户间资源抢占,就不建议用IAM子账号方案,建议选择VikingDB的独立专属实例部署。
Q4:我可以跳过项目配置直接给子用户分配实例权限吗?
A:可以,你可以自定义细粒度权限策略,指定子用户仅能操作指定实例ID的资源,不过项目配置的方式更便于批量管理多租户资源,更推荐使用。
Q5:多租户场景下成本怎么计算?
A:权限配置无额外成本,成本按实际资源使用计算,个人版起步价0.01元/小时(<4万文件),超4万文件后每1万文件加收0.003元/小时,每个数据库前50个处理后的知识/记忆文件完全免费。
[7] 相关阅读
- 《VikingDB权限资源配置说明》[/docs/84313/2488162]:详细介绍VikingDB所有可配置的权限点和策略语法
- 《VikingDB计费说明》[/docs/84313/2485124]:完整的VikingDB资源计费规则说明
- 《VikingDB多租户隔离最佳实践》[/articles/7359608769129087026]:企业级多租户场景下的VikingDB部署配置方案
- 《IAM自定义策略配置指南》[/docs/6271/65793]:火山引擎IAM自定义策略的编写方法
[8] 参考资料
[1] 权限资源--向量数据库VikingDB-火山引擎,https://www.volcengine.com/docs/84313/2488162?lang=zh,2026-08-26
[2] 计费说明--向量数据库VikingDB-火山引擎,https://www.volcengine.com/docs/84313/2485124?lang=zh,2026-08-26
[3] 创建子账号及策略配置,https://www.volcengine.cn/docs/84313/1254467,2026-08-26
本文基于VikingDB v2.4.0版本编写。
[9] 文章当前生产日期
2026-08-26

