3.2 云上运维管理架构设计
为保证云上运维管理操作的安全性和便捷性,客户需要根据业务对云上网络环境进行规划和隔离并对内部用户访问进行管理和权限规划。下面将会从这两方面介绍如何利用阿里云产品实现云上运维管理架构设计。
3.2.1 基于RAM实现账号权限管理方案
本节将介绍基于阿里云RAM账号体系在内部用户访问资源时如何进行管理和权限规划。
1 . RAM简介
RAM(Resource Access Management)是阿里云为客户提供的用户身份管理与访问控制服务。使用RAM,可以创建、管理用户账号(比如员工、系统或应用程序),并可以控制这些用户账号对相关资源的操作权限。当企业中存在多用户协同操作资源时,使用RAM可以避免用户之间共享云账号密钥,按需为用户分配最小权限,从而降低企业信息安全风险。
2 . RAM应用场景
RAM主要的应用场景包括企业子账号管理与分权、不同企业之间的资源操作与授权管理、针对不可信客户端App的临时授权管理。
(1)企业子账号管理与分权
企业A购买了多种云资源(如ECS实例、RDS实例、SLB实例、OSS存储桶等)。A的员工需要操作这些云资源,但每个人的操作内容不同,比如有的负责购买,有的负责运维,还有的负责线上应用。由于每个员工的工作职责不一样,因此需要的权限也不一样。出于安全或信任的考虑,A不希望将云账号密钥直接透露给所有员工,而是希望能给每个员工创建相应的用户账号。用户账号只能在授权的前提下操作资源,不需要对用户账号进行独立的计量/计费,所有开销都算在A的头上。当然,A随时可以撤销用户账号的权限,也可以随时删除其创建的用户账号。
(2)不同企业之间的资源操作与授权管理
假设A和B是两个不同的企业。A购买了多种云资源(如ECS实例、RDS实例、SLB实例、OSS存储桶等)来开展业务。A希望能专注于业务系统,而将云资源运维、监控、管理等任务委托或授权给企业B。当然,企业B可以进一步将代运维任务分配给其公司员工完成。利用RAM,企业B可以精细控制其员工对A的云资源操作权限。如果A和B的这种代运维合同终止,A随时可以撤销对B的授权。
(3)针对不可信客户端APP的临时授权管理
假设企业A开发了一款移动APP,并购买了OSS服务。该移动APP需要上传数据到OSS(或从OSS下载数据),A不希望APP通过应用服务器来进行数据中转,而希望APP能直连OSS上传/下载数据。由于移动APP运行在用户自己的终端设备上,这些设备并不受A的控制。出于安全考虑,A不能将访问密钥保存到移动APP中。A希望将安全风险控制到最小,比如,每个移动APP直连OSS时都必须使用最小权限的访问令牌,而且访问时效也要很短(比如30分钟)。这种情况下可以通过RAM来进行账号权限的设置。
3 . RAM账号权限设计原则
在使用RAM设计账号权限时,需要遵循如下原则:
(1)为根账户和RAM用户启用MFA
建议为根账户绑定MFA(多因素认证),每次使用根账户时都强制使用MFA,以免无关人员轻易使用用户密码登录到阿里云,保证用户账号的安全性。
(2)使用群组给RAM用户分配权限
一般情况下,用户不必对RAM用户直接绑定授权策略,更方便的做法是创建与人员工作职责相关的群组(如admins、developers、accounting等),为每个群组绑定合适的授权策略,然后把用户加入这些群组。
(3)将用户管理、权限管理与资源管理分离
一个好的分权体系应该支持权力制衡,从而尽可能地降低安全风险。在使用RAM时,应该考虑创建不同的RAM用户,其职责分别是管理RAM用户、管理RAM权限以及各产品的资源操作管理。
(4)为用户登录配置强密码策略
如果需要允许用户更改登录密码,那么应该要求他们创建强密码并且定期更换。用户可以通过RAM控制台为RAM用户创建密码策略,如要求最短长度、是否需要非字母字符、多长时间必须进行更换等。
(5)定期更换用户登录密码和访问密钥
建议RAM用户要定期更换登录密码或访问密钥。
(6)及时撤销用户不再需要的权限
当一个用户由于工作职责变更而不再使用某个权限时,应该及时撤销该用户的权限。
(7)将控制台用户与API用户分离
不建议给一个RAM用户同时创建用于控制台操作的登录密码和用于API操作的访问密钥。通常只给员工创建登录密码,只给系统或应用程序创建访问密钥。
(8)使用策略限制条件来增强安全性
建议给用户授权时设置策略限制条件,这样可以增强安全性。比如,授权用户Alice可以关停ECS实例,限制条件是Alice必须在指定时间在公司网络中执行该操作。
(9)不要为根账户创建访问密钥
由于根账户对名下资源有完全控制权限,因此为了避免因访问密钥泄露所带来的灾难性损失,我们不建议创建根账号访问密钥并使用该密钥进行日常工作。
(10)遵循最小授权原则
最小授权原则是安全设计的基本原则。当需要给用户授权时,应授予刚好满足他工作所需的权限,而不要过度授权。
3.2.2 云上开发、测试、生产环境管理方案
本节将介绍如何在阿里云上构架开发、测试、生产环境,从而实现不同环境之间的云资源和访问权限隔离。目前可以使用两种方案,一是使用阿里云多租户体系实现不同开发、测试、生产租户之间的资源逻辑隔离;另外一种方案是利用VPC基础网络产品划分多个不同的网络环境,从而实现开发、测试、生产环境资源的物理隔离。
1 . 多租户逻辑隔离方案
多租户逻辑隔离方案的原理是,基于阿里云账号系统,通过申请不同的阿里云账号,利用阿里云不同账号之间资源默认无法共享和互通的特点,规划好不同账号的管理职责和权限,从而达到用户开发、测试、生产环境的隔离。多租户隔离方案是基于阿里云账号体系实现的,主要应用于需要逻辑隔离的场景。此时,客户需要维护多个阿里云账号,并进行资源管理和维护。多个阿里云账号之间完全隔离,无法实现相互调用和访问。
图3-2给出了某政府部门开发、测试、生产环境使用阿里云账号实现资源逻辑隔离的示意图。
2 . 多VPC隔离方案
多VPC隔离方案是采用阿里云网络虚拟化产品VPC,从而在同一个企业账号下,将开发、生产、测试资源划分到不同的VPC网络集群中,实现用户环境的隔离。多VPC隔离方案是基于网络层实现客户不同业务环境的隔离和管理,和未上云前自建IDC下开发、测试、生产环境隔离方案非常相似。实施VPC隔离方案后,VPC之间默认是无法通信的,但可以通过高速通道实现VPC打通,也可以使用阿里云网络安全组产品或云市场上的防火墙镜像,对不同网络环境之间的访问进行安全策略设置。
图3-3给出了某企业基于阿里云VPC网络环境实现开发、测试、生产环境的网络和业务隔离。