简介
随着企业内越来越多的业务在云上部署,云资源的费用支出逐步增多,企业也越发需要对这些云资源的费用进行分摊。 单账户下企业分账最佳实践 中,我们已经学习到可以通过为云资源设置标签(如 标注资源的创建者是谁),然后结合费用中心的费用明细信息,实现分账。大致工作流程如下:
资源的创建者通常是某个子账号或者角色,如果能在资源创建后,自动为资源设置创建者标签,将进一步提升分账效率,尤其是当企业人员比较多时。期望的工作流程如下:
为了实现这一自动化打标流程,我们可以使用借助操作审计的跟踪功能来实现。
操作审计会记录云账号内的操作日志,这份操作审计日志可以被实时消费。
因此我们可以部署一个消费程序,在处理到资源创建对应的操作事件时,调用标签服务 API,为资源打上创建者标签。最后,结合带标签的费用明细,就可以实现分组分账了,工作流程如下:
快速体验
这里我们提供了一个“一键创建跟踪并部署一个消费日志的自动打标程序”,帮助您快速体验。
完成部署后,新建的 VPC 都会被打上类似这样的标签
• key: created_by
• value: ram-user:xiaoming
用于标注创建者是谁
方案详情
如果您对如何使用标签来进行分账不太了解,或者对快速体验中的帮组您自动化搭建的示例感兴趣,希望了解这一方案背后的实现原理和细节,可以参考如下的详细步骤介绍。
基于自动打标的分账方案,分为如下三个主要步骤:
1.创建跟踪
使用操作审计跟踪功能,记录云上操作日志并投递到
日志服务中
2.消费操作日志
解析创建者信息并调用 Tag API 对资源进行进行标签设置
3.使用费用中心分账
使用费用中心的费用分析功能,或导出带标签的云资源费用明细,完成分账
创建跟踪
如果您的账号中已经有操作审计跟踪,则可以跳过这一步骤
• 原理介绍: 操作审计默认会帮助您记录账号内最近 90 天的操作日志,但如果想要实时响应这些操作事件,则需要创建一个跟踪,并设置投递到日志服务中,借助其实时消费功能,可以完成后续的消费事件并进行标签设置动作。
• 创建跟踪:
• 如果您习惯控制台操作,则可以参考这篇文档,在操作审计控制台中,完成跟踪创建
• 如果您希望通过通过 SDK 调用 API 来操作,则可以参考操作审计的 CreateTrail API 介绍
• 如果您希望使用 IaC 方案自动化创建跟踪,则可以参考:
使用 阿里云资源编排 ROS 创建 操作审计跟踪
使用 Terraform 创建操作审计跟踪
消费操作审计日志
• 原理介绍:
日志消费:操作审计跟踪可以将操作日志投递到日志服务中,日志服务提供类似 Kafka 等消息队列一样的 日志数据实时消费功能,消费方式可以是 函数计算、Flink 或是自行开发的程序。
标签设置:在完成消费后,为了实现自动标签设置,我们使用了 标签服务的 TagResources API,来完成对资源的标签设置。
使用费用中心分账
• 原理介绍:
阿里云费用中心中有云上所有资源的详细账单,其中包含了标签,结合 资源-标签-费用 这样的详细账单信息,我们就可以实现按标签分组的分账
有如下几种方式可以帮助您完成基于标签的分账:
基于标签分账方式一:使用分账账单控制台
此方式适合于仅需要快速查看某个标签对应资源的费用支出的情况
如:您想快速查看某个成员(如小明)创建的资源目前已经产生多少费用。
步骤1,开通 用户中心-费用管理-费用分析 功能(功能开启 T+1 日后,可以根据标签进行分账)
步骤2,添加筛选条件 - 标签,选择 created_by: xiaoming,应用筛选条件然后搜索,即可得到标签分组对应的费用支出情况
基于标签分账方式二:导出账单明细
此方式适合于需要对费用支出进行详细的分组统计分析的情况
如:您需要按创建者分组来分组统计账单信息;或您需要结合账单数据 + 创建者-项目归属关系来综合分析项目支出情况
步骤1,开通 用户中心-费用管理-分账账单 功能 (功能开启 T+1 日后,可以查看和导出带标签的账单明细)
步骤2,进入分账账单功能,确保定制列中“实例标签”已被勾选
步骤3,选择统计周期为明细,点击 “导出账单 CSV”,获取带标签的详细账单数据
步骤4,在本地使用 CSV 数据进行标签分组分账统计(可以使用 Excel 打开 CSV 文件,或者将 CSV 导入到数据中使用 SQL 分析)
基于标签分账方式三:使用 API 导出账单
此方式适合于需要对费用支出进行周期性的自动分组统计分析的情况,
如:您所在的企业已经或者正在构建自己的自动化财务系统,同时需要按创建者分组来分组统计账单信息,或您需要结合账单数据 + 创建者-项目归属关系来综合分析项目支出情况
步骤1,开通 用户中心-费用管理-分账账单 功能
步骤2,使用 QuerySplitItemBill API 查询分账账单,导入到数据库或写入到本地 CSV 文件
步骤3,结合导出的分账账单数据,进行分账分析
基于标签分账方式四:使用财务单元分账
此方式适合于需要按照项目团队纬度来进行分账的情况
如:小明和大飞是项目 A 组,小红和小强是项目 B 组,您希望直接在控制台上按照项目组来分组分账
步骤1,打开 用户中心-企业财务-财务单元
步骤2,新增财务单元,可以按照项目或者团队名命名,
本示例填写 项目A组
步骤3,设置自动分配资源规则,
本示例设置了自动将标签为 created_by: xiaoming, created_by: dafei 的资源,分配到项目 A 组,即小明和大飞创建的资源带来的成本视为项目A组的成本支出
步骤4,打开 用户中心-费用账单-账单明细,按照财务单元查看账单或导出账单 CSV
FAQ
A:基于标签来实现分账很方便,但对于存量资源、ActionTrail 不支持的产品如何确保都有标签?
Q:可以使用配置审计的 require-tags 规则校验功能
A:目前我正在使用的云产品资源还不支持设置标签怎么办?
Q:可以通过工单或者客户经理向阿里云提出需求,我们会尽快去完成支持。如果您需要立即支持记录所有新增资源的创建者信息,也可以在消费过程中筛选出创建资源的操作事件,然后将资源 ID 和 操作者 信息写入到 TableStore 之类的持久化存储产品中。