某知名车企,在不同时期的多个业务项目陆续迁移到了火山引擎,不同项目的资源由不同团队进行负责。项目下同时又区分生产、测试、UAT几个环境,需要确保资源之间的隔离和管理。
由于历史原因,来源于公司不同预算的资源,都开通了账号。随着业务逐渐发展,管理难度增加,运维团队开始要求实现账号及资源的统一治理和管控,需要逐渐收敛账号的创建和管理。
对不同项目预算来源的云资源,如何进行统一管理。
不同项目组在同一云账号下面的资源,如何实现权限隔离和分账;
在企业管理和使用云的过程中,云账号是一个最基础的独立单元。可以把账号理解为一栋大厦的独立房间,每个房间具备了完整的配套服务,客户可以方便的租用这个房间并使用其中的全套服务设置。因此有些场景下也经常将账号称作租户。对于大型企业,不同的部门或者不同预算来源的项目,通常会使用独立账号来使用云资源。但如果开通太多账号,从管理的角度也会带来一定的复杂度。
火山引擎提供了企业组织功能,帮助企业统一管理多个账号。使用企业组织,可以实现:
组织和管理云账号:在企业组织内一目了然查看所有云账号,使用企业组织节点(OU)对云账号进行分类。
全局的权限设置:通过企业组织管控策略SCP,对组织内所有的账号进行全局权限策略,比如限制业务账号设置网络架构、禁止修改安全组等等。
多账号统一配置:通过企业组织的可信服务,实现多个账号统一身份管理、资源配额模板、收集日志审计等能力。
企业组织中,主要包含以下几个重要概念:
术语 | 解释 |
---|---|
管理账号(Master Account,简称MA) | 企业组织在管理账号下开通,管理账号也是组织的超级管理员,对整个组织,组织单元和成员账号拥有完全控制权限。 |
组织单元(Organization Unit,简称OU) | 账号的组织和分类单元,可根据子公司、业务线、项目等维度进行账号的组织。开通企业组织功能后,会预置一个Root OU,作为该组织最顶层的单元。每个组织单元下可放置其他OU或账号。 |
成员账号 | 具体承载业务的账号,通常对应企业的一个部门或者预算单元,成员账号可通过企业组织直接创建出来,也可以通过官网完成注册,然后邀请加入组织。 |
认证主体 | 对于集团型客户,要求多个企业认证主体的账号统一管理。企业组织支持管理多个企业认证主体的成员账号。可以在认证主体中添加其他公司信息,之后可以创建或者邀请此认证主体的账号。 |
管控策略 | 对整个组织、部分OU或账号设置资源访问的权限边界,建立整体访问控制原则。对于各个成员账号,内部的用户权限无法超出管控策略设置边界,以达到统一管控的目的。 |
使用企业组织,可以将不同预算来源的账号统一纳管,确保这些账号符合企业管理规范。企业内的IT预算通常是以企业部门、产品、业务线等维度管理。下图是一个简单的组织管理框架:
该企业启用了企业组织,将历史上其他预算来源的账号纳入到整个组织,并对新纳入的账号设置了管控策略,限制该账号创建业务不涉及的云资源,避免预期之外的成本产生。
在单账号内,如果需要进行进一步的资源划分,可以使用项目这一种资源管理方式。正如其名称,该功能主要用于对不同项目使用的云资源进行分组管理。对比使用账号来进行资源隔离,使用项目可确保云资源之间默认可互相访问,对于跨项目之间的资源互访更加容易。比如一个账号内VPC之间打通会更加简单,负载均衡也默认可添加本账号内的服务器组。于此同时,项目也可以提供权限级的隔离和基础分账。
使用项目管理资源,需要理解以下几个概念:
术语 | 解释 |
---|---|
资源 | 资源是云计算的最基础管理对象,每个资源在火山引擎拥有唯一的资源ID来定位。为了使得资源表达更加可理解,在火山引擎通常使用trn对资源进行描述。trn的格式为: |
项目 | 项目是资源管理分组的一个单元,账号中默认存在default项目,创建出来的资源是默认放在这个项目内。用户可以创建多个项目,根据归属将资源放在对应的项目内。 |
项目授权 | 在使用访问控制授权时,可以指定某个策略是全局生效,或者仅对某个项目生效。在指定策略对某个项目生效后,用户仅对访问此项目的资源会应用到权限策略中描述的内容。 |
结合在方案1中的企业组织和账号,通常一个企业内的完整资源管理分为以下几层:
根据管控需求,在项目和环境的维度进行资源划分。在设置好项目之后,将对应的资源移入。
建立项目之后,可以使用访问控制中的IAM用户组对三类身份进行分类:
管理员:拥有账号所有操作权限
只读用户:拥有所有资源的读操作,并按照两个项目分别授权
普通用户:拥有所有资源的读写操作,并按照两个项目分别授权
在访问控制中,对管理员授予全局权限,而只读用户和普通用户,根据用户所负责的项目,将项目作为权限生效的范围。
根据业务的持续发展,我们推荐采用Landing Zone模式规划账号架构。Landing Zone是一套顶层多账号架构设计方案,帮助客户安全、高效的部署云服务,并支持业务的可持续扩展。完整的Landing Zone提供安全、网络、身份权限管理、合规性和监控功能等能力,帮助企业通过自动化的方式实现上云架构部署。一个简单的Landing Zone架构可用参考下图:
使用Landing Zone,可为客户带来以下的优势:
安全合规
业务隔离: 采用多账号架构,实现资源、身份、权限和费用的隔离,保障安全和财税履约合规;
合规管控: 搭建事前、事中和事后的管理策略,全面保障企业内的安全和合规。
高效管理
统一管控: 通过统一的控制面,实现多账号下整体的费用、资源、网络和安全架构设计,简化运维管理流程;
自动化: 通过OpenAPI和IaC实现自动化运维和管理,快速部署云基础设施环境。
业务易扩展
模块化:基于可扩展的账号架构,设置账号基线,快速响应业务需求并模块化部署对应的资源;
可定制性:根据企业需求进行账号结构和基线设计,满足不同的业务和管理需求。
上述方案,应用到以下的火山引擎产品功能
序号 | 业务功能 | 产品 | 使用的功能 | 方案描述和价值 |
---|---|---|---|---|
1 | 纳管业务账号 | 企业组织 | 邀请成员账号 | 在账号下开通企业组织,并把其他业务的账号邀请加入企业组织,纳入统一管控。 |
2 | 限制业务账号功能 | 企业组织 | 对组织节点或成员账号设置管控策略,禁止创建不需要的云产品。避免不必要的费用产生和风险操作 | |
3 | 使用项目进行资源分类 | 项目 | 使用项目对业务和环境进行划分,确保资源归属清晰。 | |
4 | 按照项目进行授权 | 访问控制 | 按照项目和角色进行授权,避免业务人员操作不属于自己的项目,带来业务风险。 |