某自动驾驶客户,在火山引擎使用单个账号管理多个团队的云资源,业务场景包括:
内部存在多个业务团队,如云超算中心、公有云业务等,需要确保不同团队成员可访问的资源是按照业务进行隔离的,不同团队间严格约束资源访问权限;
为提高内部资源管理的效率,会要求员工为云资源打上重要的标识,比如生产环境信息、资源归属者信息、业务分类信息等,基于该标识批量管理资源;
运维团队需要定期排查资源,并按需拆分在火山引擎的账单,财务内部确认成本分摊无误后再执行付款,并且出账时希望可以从团队、人员、应用等多个视角查看账单。
随着企业在火山上的资源规模不断扩大,需要对云上资源进行严格的分组分类管理,进而帮助提升运维效率,保障业务安全,看清资源成本。在这个过程中会遇到以下几个挑战:
效率:如何能够统一按照的规范,对资源进行分组分类,保障资源持续高效可治理,实现云上日常高效运维;
安全:如何把控资源权限边界,进行灵活的业务权限隔离,并且在员工离职或者转调过程中能便捷管理授权;
成本:按年计费的商品如何按照项目、月份实现分摊,并在财务管理上看清各个团队的真实费用情况。
火山引擎的资源管理服务为客户提供了资源项目和资源标签两个企业 IT 管理产品,项目是容纳若干资源的一个容器,支持项目管理的资源只能加入到唯一项目中,有利于维护资源分组的隔离性和数据安全。标签是由一组 KV 键值对组成,通过标签可以从不同维度对资源进行分类和聚合管理,支持标签管理的资源可以同时绑定多个标签。项目和标签均可以满足分权分账的场景,客户可根据不同的业务需求选择一种或者组合的方式达成业务目标。
项目是火山引擎提供的资源分组管理的一种机制,一个资源必须且仅能归属一个项目,基于项目能力企业可以快速解决单账号下的资源隔离及授权管理等复杂性问题。为确保项目管理可以符合企业管理预期,建议参考下述原则设计项目管理架构:
项目互斥原则:按照一致的维度划分项目,该维度可以是企业部门、部署环境、工作业务等,但是注意维度之间不可有重叠,保证项目之间互斥,保证一个资源部不可被多个项目共用。若有存在某些公共资源被多个项目复用的场景时,建议创建一个专门存放公共资源的项目,并在命名上加以区分。若期望有更灵活的管理视角,可以采用标签进行管理。
全面覆盖原则:划分项目时需要考虑是否可以覆盖当前账号下的所有资源,并且尽可能考虑未来业务发展变化,避免因为项目为度分配不合适带来的调整成本及风险。建议不要使用 Default 项目管理资源,Default 项目是系统预置的初始项目,当新创建一个资源且为明确分组时会默认添加到 Default 项目中,企业需要根据业务场景对资源进行合理分组。
最小化授权原则:结合项目和访问控制策略可以实现搭建精细化的权限管理体系,授予项目权限时需要遵循最小化授权原则,同一个企业人员可以同时被授予多个项目的管理权限,也可以仅授予单个项目下的部分资源管理权限,企业权限管理员切记不要为员工授予超出其本职工作外的权限,避免越权可能导致的安全风险。
标签是火山引擎提供的资源分类管理的一种机制,基于标签可以从不同维度对具有相同特征的云资源进行分类、搜索和聚合,灵活的管理方式让企业内的资源管理更加轻松。在使用标签对资源进行标记时,建议参考下述原则设计标签管理架构:
集体详尽原则:所有核心资源需要在资源规划阶段为其绑定标签键值对,方便后续通过标签来检索、管理资源。例如某企业有五个业务团队,标签键是 department,那么应该有对应的五个标签值表示对应的业务团队。
有限简化原则:虽然一个资源上可以标记多个标签,但是建议只保留核心标签值,删除多余的标签值,避免由于标签过多导致的误操作。同时尽量避免对同一个属性使用两个或两个以上的标签键,例如标记归属者用 owner 表示时,就不再建议使用其他相同含义的标签键,如 belonger、possessor 等。
最小化授权原则:结合标签和访问控制台策略同样可以实现搭建精细化的权限管理体系,授予标签权限时需要遵循最小授权原则,基于标签可以实现对附加到资源的标签、传递给请求的标签、附加到发出请求主体上标签进行各维度灵活的授权管理,在为员工授予标签权限时不可包括非本职工作的权限,避免越权可能导致的安全风险。
云成本管理中,企业通常需要采用 Showback 或 Chargeback 的方式进行财务处理。其中 Showback 是指在整个组织中提供费用的可见性,而无需向各团队进行实际的结算;与之相对,Chargeback 就会需要在费用清晰之后,向资源实际发生的业务部门进行内部结算。在企业可根据实际的业务情况进行选择 Showback 或者 Chargeback,但无论哪种方式,都要求能够清晰的对各个业务产生的费用做好分类和归集。
基于火山引擎提供的项目和标签能力,可以满足客户按需分拆账单的诉求。项目和标签可以组合使用,企业可根据实际业务场景特点来按需选择一种或组合的方式来进行分账管理。通过项目或标签进行分账管理一般包括以下几个流程:
规划资源分类维度:根据业务场景,提前规划使用项目和标签对资源进行管理。若企业的分拆账单的维度较多,建议选择标签完成分账。
为资源关联项目/标签:客户可以在云产品控制台或者通过 OpenAPI 的方式将资源与项目/标签进行绑定,绑定结果会同步到费用中心。
启用费用标签:当使用标签时,客户需在费用标签处将需要作为分账标记的标签启用作为费用标签,费用标签支持标记在账单相关数据中。
获取分账数据:客户可以通过费用中心获取到包含资源及项目/标签信息的分账数据。通过投递 TOS 和 OpenAPI 的方式,客户可将分账账单数据集成至企业内部的 BI 系统,以进一步加工复杂的数据分析报表。
分账数据分析:客户也可通过火山提供的费用分析工具进行多维度灵活的费用趋势和费用构成分析,如筛选数据后进一步根据项目、标签、产品等多种维度的分类汇总分析。
解决方案中使用了火山引擎提供的如下功能:
序号 | 业务功能 | 产品 | 使用的功能 | 方案价值 |
---|---|---|---|---|
1 | 使用项目进行资源分组 | 项目 | 项目管理 | 可以对不同业务使用的云资源进行分组管理,有利于维护资源独立和数据安全 |
2 | 对项目进行授权管理 | 项目 | 项目权限管理 | 支持为 IAM 用户授予不同的项目权限,基于项目实现数据的逻辑隔离,降低越权风险 |
3 | 使用标签进行资源分类 | 标签 | 标签管理 | 支持灵活按照多种维度对资源进行打标,通过资源标签从不同维度对云资源进行分类和聚合管理 |
4 | 使用标签进行授权管理 | 标签 | 标签权限管理 | 支持基于标签控制 IAM 身份的权限,实现不同用户可以拥有不同云资源访问和操作权限,达成精细化权限管控目的 |
5 | 设置费用标签 | 账单管理 | 费用标签管理 | 客户可将需要分账的标签定义为费用标签,只有费用标签会跟随计费显示在账单之上。以避免不需要的标签也出现在账单上带来数据冗余。 |
6 | 对某些云产品的分拆项进行分账 | 账单管理 | 分账账单 | 客户使用的一些用量型产品的账单费用由分拆项综合产生,如 CDN 的流量费用由各“域名”产生、对象存储的存储费用由各“bucket”产生、共享带宽包的带宽费用由各 eip 产生,其中域名、bucket、eip 等被称为该产品的分拆项 |
7 | 将费用明细通过存储桶订阅 | 账单管理 | 账单订阅设置 | 每月完成出账后,通过短信、邮箱、站内信的形式,将该月账单发送至指定联系人。可集成实现自定义的费用看板。 |
满足企业应对云上大量资源进行的分组分类管理的诉求,并且基于管理场景达成精细化权限管控和成本分拆的业务预期,优势具体体现在以下几点:
提升管理效率:资源完成分组分类后,客户能够从项目、标签视角进行资源部署、资源监控等,无需再单独处理各个资源。
降低运维风险:资源完成分组分类后,客户能够对 IAM 子用户进行项目、标签维度的精细化授权管理,避免资源权限泄漏。
看清成本分摊:资源完成分组分类后,客户可以灵活按照项目、标签维度进行便捷分账,生成消费账单,解决不同业务的成本分摊问题。