AstraFlow星图平台权限管理实践:实现费用信息按需可见
模型调用、用量监控、费用账单——不同角色关注的信息并不相同。通过优刻得AstraFlow星图平台结合 IAM 自定义策略,可以实现更细粒度的权限控制,让不同用户看到与自己工作相关的信息。
为什么越来越多企业关注费用权限管理?
在与企业客户和合作伙伴的沟通过程中,我们经常收到类似需求:
“研发团队需要查看模型调用情况和 Token 消耗,但不希望看到具体结算价格和账单信息。”
“我们将星图能力开放给下游客户使用,希望客户能够查看调用量和使用情况,但费用信息只保留给管理人员查看。”
随着越来越多企业将 AI 能力纳入日常业务流程,如何在开放使用能力的同时做好费用信息管理,逐渐成为权限体系中的一个重要课题。
本文结合实际场景,介绍星图平台如何实现更合理的费用可见性控制。
场景一:企业内部协作
不少企业会通过星图平台统一接入大模型服务,并通过主账号统一采购资源,再向研发、产品、运营等团队分配使用权限。
在这种模式下,不同团队通常需要:
查看模型调用情况
监控 Token 消耗
管理自己的 API Key
但与此同时,部分费用相关信息往往只需要管理者或财务人员掌握,例如:
模型结算价格
商务折扣信息
项目费用统计
历史账单明细
因此,很多企业希望在保证正常使用的前提下,对费用信息进行更细粒度的权限隔离。
场景二:渠道商服务终端客户
另一类常见场景来自渠道合作伙伴。
渠道商将星图模型能力集成到自身产品或解决方案中,再向终端客户提供服务。为了方便管理,部分合作伙伴会基于 UCloud 主子账号体系,为不同客户分配独立账号。
这种方式能够满足:
独立调用模型
独立管理 API Key
独立查看调用情况
但对于渠道商而言,终端客户通常只需要了解自己的使用情况,而不需要接触平台侧的计费信息。
因此,很多合作伙伴希望实现:
保留调用量可见
保留资源使用统计
隐藏价格与账单信息
从而让不同角色获得与自身职责相匹配的信息视图。
为什么系统策略无法实现费用隔离?
要回答这个问题,需要先了解星图平台的权限模型。
UCloud IAM(身份与访问管理)目前支持系统策略和自定义策略两种方式。
系统策略的问题在于:“查看用量"和"查看费用"被捆绑在同一个"只读"能力里。 给子用户授予了"星图只读访问”,他能看模型、看用量,同时也能看账单、看价格——这两件事在系统策略层面分不开。
要拆开它们,就需要借助 IAM 自定义策略进行更精细的权限控制,实现真正意义上的“按需可见”。
核心方案:一条 Deny 策略,精准封堵 20 个计费 API
UCloud IAM 自定义策略支持在 API 级别设置Effect: Deny。也就是说,你可以精确地告诉系统:
这个子用户,禁止调用以下任何计费相关 API。
星图(产品线uai_modelverse)当前对外开放的 API 中,与计费、账单、订单直接相关的共20 个,分为三类:
订单类(9 个):
ListPaidOrders、ListUnpaidOrders、ListPaidOrderSummary、ListUnpaidOrderSummary、GetOrderAmount、CompleteUnpaidOrder、DownloadListPaidOrders、DownloadListUnpaidOrders、DownloadOrderSummary账单类(7 个):
ListPaidBills、ListUnpaidBills、ListTxPaidBills、DownloadBillSummary、DownloadListBills、DownloadListPaidBills、DownloadListUnpaidBills金额汇总类(4 个):
GetMonthlyAmount、GetMonthlyPaidBill、GetCurrentMonthlyUnpaidBill、GetUserBillingByKey(加上GetFilterOptions防止费用维度筛选器暴露)
全部写入一条 Deny 策略,一次性封堵。
将下方 JSON 复制到 IAM 自定义策略的脚本编辑器中即可:
{"Version":"1","Statement":[{"Effect":"Deny","Action":["uai_modelverse:CompleteUnpaidOrder","uai_modelverse:DownloadBillSummary","uai_modelverse:DownloadListBills","uai_modelverse:DownloadListPaidBills","uai_modelverse:DownloadListPaidOrders","uai_modelverse:DownloadListUnpaidBills","uai_modelverse:DownloadListUnpaidOrders","uai_modelverse:DownloadOrderSummary","uai_modelverse:GetCurrentMonthlyUnpaidBill","uai_modelverse:GetFilterOptions","uai_modelverse:GetMonthlyAmount","uai_modelverse:GetMonthlyPaidBill","uai_modelverse:GetOrderAmount","uai_modelverse:GetUserBillingByKey","uai_modelverse:ListPaidBills","uai_modelverse:ListPaidOrderSummary","uai_modelverse:ListPaidOrders","uai_modelverse:ListUnpaidBills","uai_modelverse:ListUnpaidOrderSummary","uai_modelverse:ListUnpaidOrders","uai_modelverse:ListTxPaidBills"],"Resource":["*"]}]}绑定后的效果:被限制的子用户模型照调、Key 照管、用量照看——唯独金额、折扣、账单、订单,全部不可见。
三步完成配置
第一步:创建策略
登录 UCloud 控制台,进入访问控制 → 策略管理 → 创建自定义策略。
https://console.ucloud.cn/uaccount/iam/policy_manage/operate?type=create
第二步:绑定子用户
进入目标子用户详情页 →个人权限 → 添加权限,搜索刚创建的策略名称,选中添加到右侧,生效范围选择“全部项目”,确定。
🔗 直达:https://console.ucloud.cn/uaccount/iam/user_manage/detail
第三步:验收效果
用被限制的子账号登录星图,访问费用中心。
预期结果:费用相关页面无法加载数据或提示无权限;子用户仍可正常浏览模型广场、管理 API Key、查看 Token 消耗。
配置效果一览
该用的一个不少,不该看的一个没有。
两种组织方式,按需取用
💡 进阶技巧:子用户数量多了以后,建议创建用户组(如"渠道客户组"),将策略绑定到用户组。之后新建的客户子账号只需加入该组,即可自动继承费用隐藏策略,无需逐个配置。
本文基于 UCloud AstraFlow 星图平台及 IAM 访问控制体系撰写。策略适用于当前版本,更新以官方文档为准。
