经验分享-基于项目与部门管理公有云资源
基于项目与部门管理公有云资源
在企业中,常常以项目的维度进行人员、资源和费用管理,对项目组成员进行适当授权,降低安全风险。在公有云上如何实现多项目的资源管理以及不同人员分权运维,一直是企业上云之后的关注点之一。
运维太难一、分权管理建议
在于多位企业IT运维总监及其员工交流后,有的授权做的并不好,往往存在越权查看甚至操作资源的情况;部分会以标签的形式来管理,但是标签太多往往会把问题弄得更加复杂,是否有更简单的方式按照项目管理资源和出账呢?
华为云提供的企业管理服务(EPS) + 统一身份认证(IAM)两项服务,可以轻松实现按照项目、用户进行云资源管理和账单统计,同时又能对权限进行细粒度管理,让上云之后的运维更加安全。
如果完全不知道华为云EPS、IAM以及权限管理的基本概念,建议可以先查看华为云EPS和IAM的简要介绍,这样实践起来会容易一些。
二、实践场景说明
为了更好理解华为云的资源管理、企业项目和人员权限,先来看一个实践案例,然后再介绍企业项目和统一身份认证的关系,示例中包括了自定义权限JSON代码,也可以根据自己的实际情况来修改。
在实践案例中,项目(或者业务)包含两个部分:泛微OA应用(业务)和数据中心迁移项目(项目);同时在统一身份认证中包含了3个用户和角色:泛微OA运维组、数据中心迁移项目组、公司财务部,如下图。
资源与用户(组)列表- 所有资源部署在华为云华东-上海一,分别分布在泛微OA应用和数据中心迁移项目两个业务中。
- 泛微OA应用需要使用ECS(云主机)、EVS(云硬盘)、CBR(备份服务)、OBS、VPC、EIP、带宽。
- 数据中心迁移项目,简称项目A,需要使用ECS、OBS、VPC、EVS、IMS、RDS服务。
用户分权要求
- 泛微OA运维组负责运维泛微OA相关的所有资源,可以新建,但是不能删除。
- 项目A的人员可以管理项目A中的资源,包含删除权限。
- 泛微OA运维人员和项目A人员仅可查看自己的资源,不可互看。
- 账单管理人员查看所有资源的账单,可以看到泛微OA和项目A的各自消费,但是不能管理资源。
三、实践步骤
根据场景需求,完成授权工作大致需要经历以下步骤。
操作流程3.1 准备工作
-
购买ECS、OBS等相关资源不做介绍,假设都已经ready,从超级管理员视图可以查看所有项目的ECS资源。
管理员ECS列表 -
参考创建IAM用户指导,创建泛微运维用户 weaver-ops、数据中心迁移项目用户 project-a-user和财务人员 finance-user,如下图。
IAM用户列表 -
参考创建用户组指导创建用户组数据中心迁移项目组、泛微OA应用运维组和公司财务部,并将对应用户加入用户组。
IAM用户组列表
!!!注意!!! ,创建用户或用户组之后,暂时不要 暂时不要 暂时不要 对用户/用户组进行授权,后续会补充说明原因。
3.2 创建权限
首先需要说明华为云在权限中已经预置单个云服务的不同角色的系统策略,比如 ECS 的运维、超级管理员和只读角色,因为需要一次管理多种云服务,所以需要创建自定义策略 泛微OA应用运维 和 迁移项目 权限。另外在创建自定义权限时,华为云权限系统需要区分 全局级权限 和 项目级权限,全局级权限 针对没有区域概念的服务,例如内容分发网络服务 CDN、对象存储服务 OBS等,大部分的服务(如ECS、VPC等)都属于项目级权限。
创建自定义权限策略3.2.1 泛微OA应用运维权限创建
根据权限要求,泛微OA运维组需要管理ECS(云主机)、EVS(云硬盘)、CBR(备份服务)、OBS、VPC、EIP等相关云服务资源,但是不能删除关键资源(需要与客户运维总监提前确认)。
首先,华为云已经预置了OBS的运维权限,满足实践的权限需求,可以直接使用,所以不重复创建OBS服务的权限策略。
其次,华为云提供的预置权限策略,多是针对单个云服务,本实践为了能够选择一个策略即可对主机ECS、VPC、EIP、EVS、IMS、CBR备份服务进行管理,需要创建自定义权限策略,采用权限黑名单管理策略,泛微OA应用运维组具备除了 删除云主机、删除云主机网卡、删除云硬盘、删除EIP、删除备份 之外的对应云服务权限。
自定义泛微OA应用权限JSON代码如下
{
"Version": "1.1",
"Statement": [
{
"Action": [
"vpc:*:*",
"ecs:*:*",
"evs:*:*",
"ims:*:*",
"cbr:*:*"
],
"Effect": "Allow"
},
{
"Action": [
"ecs:cloudServers:delete",
"ecs:cloudServerNics:delete",
"evs:volumes:delete",
"ims:images:delete",
"vpc:publicIps:delete",
"vpc:floatingIps:delete",
"cbr:backups:delete"
],
"Effect": "Deny"
}
]
}
3.2.2 迁移组权限创建
根据业务要求,项目A的成员管理ECS、OBS、VPC、EVS、IMS、RDS服务,需要所有权限(包含删除),为了方便,这里也采取和泛微OA应用运维权限相同的方式创建自定义策略;同时OBS采用华为云预置运维权限,之后即可到权限界面创建自定义权限策略权限-迁移项目。
自定义数据中心迁移权限JSON代码如下
{
"Version": "1.1",
"Statement": [
{
"Action": [
"vpc:*:*",
"ecs:*:*",
"evs:*:*",
"ims:*:*",
"drs:*:*",
"rds:*:*"
],
"Effect": "Allow"
}
]
}
3.2.3 财务人员组权限
财务部负责华东-上海一的所有云服务资源账单管理,所以可以使用在IAM模块中对用户组(公司财务部)直接进行授权,参考超链接中的 给用户组授权 部分,操作后见截图。
财务部授权完成以上操作后,用户 finance-user 登陆华为云PORTAL,即可查看华东-上海一的所有云服务资源账单。
查看项目费用财务终于可以方便的查看到各个项目资源费用汇总~
3.3 创建企业项目
3.3.1 准备工作
进入企业项目管理,需要完成企业认证的华为云账号才能管理企业项目,如果提示未开通,请完成企业认证并通过企业管理员账号申请开通,完成之后需要创建两个企业项目:泛微OA应用 和 数据中心迁移项目,截图如下。
管理员企业项目列表3.3.2 为项目添加资源并授权
以泛微OA应用项目为例。
-
参考华为云帮助文档将泛微OA应用相关的云资源迁入项目,效果如图。
泛微OA应用云服务资源列表 -
参考华为云帮助文档为泛微OA应用项目添加成员和关联权限,需要添加 OBS运维权限和泛微OA的自定义权限策略,效果如图。
泛微OA运维组成员管理与授权
-
数据中心迁移项目操作可以参考泛微OA应用的项目,对项目组成员关联权限时,根据需求需要选择迁移权限和OBS管理员权限,截图如下。
数据中心迁移项目成员管理与授权
3.4 登陆并检查
分别使用用户 weaver-ops 和 project-a-user 登陆华为云控制台验证,下图为weaver-ops的ECS列表截图。
泛微OA运维人员仅可查看本业务单元的资源TIPS:如果点击删除ECS会提示权限不足,验证权限时建议使用非生产系统验证。
四、总结一下
华为云也提供了标签]功能,但在类似的场景中,通过华为云企业项目+统一身份认证的管理方式体验会好很多。如果需要在一个项目(或业务)中进行更多维度管理,也可以结合标签做更加细粒度管理展示。
最后用一页图整理对华为云企业项目管理(EPS)、统一身份认证(IAM)和云服务资源实例之间的关联关系。
企业项目管理EPS 与 统一身份认证IAMTIPS:IAM中虽然有项目的功能,但是IAM项目中的资源不能在彼此间迁入迁出,不便于管理。建议保留系统默认的项目即可,用于对整个region内的资源授权;如果要进行细粒度管理,建议使用企业项目。
TIPS: 在企业项目中建议使用用户组管理,避免同时需要在IAM和企业项目中对用户进行权限变更。
2020年11月15日,第二稿:更新部分描述
2020年11月14日,第一稿