企业IT治理是指企业为了满足内外部的安全、合规、运维、管理要求,而对云上IT资源采取的一系列规划和管理手段。无论您的企业有多大规模,处于上云的何种阶段,都应该了解、实施一定的企业IT治理方案,以期获得云上安全与运维效率的最佳平衡。本方案是结合阿里云服务众多企业客户的实践经验,总结沉淀的面向不同企业(初创企业、标准企业、集团企业)的3套IT治理全链路解决方案,希望帮助您在上云道路上走的更稳、更快、更远。
概述
A科技是一家刚刚成立不久的互联网初创企业,在阿里云上购买资源开展业务。初期成员包括联合创始人CEO小张,CTO小王,将带领20人的产品和研发团队,公司还有销售、财务、HR等团队。CTO小王在阿里云注册了一个账号,并以公司名义完成了实名认证,交由技术部门2人整体负责阿里云资源的运维和管理,财务1人负责云资源的账单、发票等事宜,其他技术人员依据分工使用不同的云资源完成自己模块的开发与应用运维(即DevOps)工作。
作为初创企业,A科技公司上下自然将业务增长作为了首位目标。然而,在云资源的管理上,如果前期没有花一点时间做一点初步的规划,随着公司顺利成长壮大,风险也将会随之而来。我们举几个例子:
• 小王为了管理方便,直接把主账号交给了两位运维负责人。问题:主账号拥有云资源的所有权限,一旦发生密码泄露等事故,公司所有云上资产都将受到威胁。
• 运维管理员为了方便,创建了一些“公共账号”给各团队使用。问题:由公共账号进行操作,无法区分的具体操作人员,也就无法有效进行云资源相关的问题排查、故障修复。
• 在为不同员工配置权限时,为了简化操作,都授予了全局管理员权限。问题:随着员工分工越来越细,资源规模越来越大,这些早期的高权限用户可以接触到自己本不该访问的资源,极易出现事故。
事实上,这些问题都不难解决。我们建议当您注册了一个新的阿里云账号之后,先不要立刻开始使用云上资源构建业务系统,相反,需要先花一点时间来进行一些初步设置,我们称之为IT治理基础环境配置。这是为了保持您账号最基本的安全性、运维便捷性而进行的最小化配置,大致包含以下内容:
• 完成账号注册、实名认证等使用阿里云的先决操作
• 完成主账号安全加固
• 创建用于管理操作的RAM用户,从而最大化减少主账号的使用
• 完成基本的用户组配置,方便后续RAM用户的简单授权
• 完成基础的网络和安全配置
在完成后,您将会获得一个基础环境,如下图所示,其中标有颜色的色块和线条是本指南将进行搭建的部分。在基础环境搭建完成后,接下来您可以在此基础上进行业务系统的建设。
我们建议每个企业都应该至少完成本指南所描述的IT治理基础环境配置。但是,当您的企业规模扩展到一定程度,如拥有5人以上的云基础设施运维团队,超过50台ECS或其他资源,在云上同时运行超过5个研发项目,那么上述这些基础配置可能又将无法满足您企业的安全、合规、IT管理要求了。我们将在后续解决方案中描述对更大型企业的IT治理基础环境配置最佳实践。
代码指南
如果您对Terraform或Shell脚本较为熟悉,您也可以使用代码完成上述搭建流程。
点击查看Terraform代码
点击查看CLI代码
样板间使用
接下来,您可以执行以下步骤,在保证基本安全性的基础上,来完成业务系统的搭建了。
• admin用户作为云上的最高权限用户,可以授权给运维总监等管理员使用。建议将其改名为相应人员名称,以免共用账号。
• 对其他核心运维人员,为其创建专属RAM用户,并加入CloudAdminGroup组,以获取对云上资源的完全访问权限。
• 对业务研发/测试等团队人员,为其创建专属RAM用户,并加入SystemAdminGroup组。如果您的团队有更详细分工,可以进一步创建诸如DBA、网络管理员等用户组并授予合适产品的权限,再将人员加入相应的组。
• 对财务人员,为其创建专属RAM用户,并加入BillingAdminGroup组,以获取云上财务、账单的相应权限。
• 如果您的企业有统一的权限要求,例如只允许从公司内网访问阿里云(查看操作文档),您需要编写合适的自定义策略,并授权给CommonUserGroup组,之后,将所有需要进行此类规则限制的用户全部添加到组里。如果您没有此类需求,可以不使用该组。
• 为了使业务系统的程序可以访问阿里云账号,您需要给每个业务系统创建独立的RAM用户,授予需要的权限并创建AK。请注意不要在人员账号上直接创建AK,以免员工离职、转岗时无法处理AK。
• 根据需要,您可以搭建基础的公网访问方式(如NAT网关)、负载均衡、对象存储、监控与备份系统等。
• 接下来,就可以各司其职,由合适的用户进行创建ECS、配置CDN等业务操作,以最终完成您的业务系统搭建工作。
下面,我们使用一个简单的例子来为您讲解如何在账号初始化的骨架基础上搭建一个最简单的业务系统。
如下是该系统(命名为DemoSystem)的结构图,其使用者是研发团队的Alice。
为Alice创建用户
首先,需要admin用户为Alice创建一个RAM用户,并将Alice加入到SystemAdminGroup组。接下来,Alice就可以以她自己的用户登录并开始搭建系统了。
创建ECS服务器
由于我们已经创建了基本的VPC、VSwitch和安全组,我们直接使用这些基础设施创建两台ECS即可。
配置负载均衡SLB
需要执行一下操作以配置SLB。
• 创建SLB,默认没有公网地址
• 创建EIP并与SLB绑定
• 启动SLB的HTTP的监听,对外80,对后8080
• 将上面的两台ECS加入负载均衡
配置数据库
同样,在基本的VPC、VSwitch和安全组基础之上,我们只需要直接创建一个RDS实例,包含以下步骤。
• 创建一个RDS Mysql实例
• 创建一个高权限用户
• 创建一个database实例
部署业务代码
接下来,就可以在ECS和RDS中部署您的业务代码,并对外提供服务了。
如果这个DemoSystem系统需要访问您的其他阿里云资源,则您应该要求CloudAdminGroup组中的某个用户为DemoSystem创建一个新的RAM用户,为其创建一个AK,并授予DemoSystem所需要的权限。例如DemoSystem需要访问对象存储OSS中的数据(查看授权案例)。
请特别注意保管好为DemoSystem创建的AK,避免泄露。关于AK保护,您可以参阅此篇最佳实践。
总结
本方案为您介绍了最基本的阿里云账号初始化操作,其不包含任何业务系统,目的是通过定义基本的用户访问框架,并配合一些后续使用原则来保证账号的基础安全性。这个简单框架并不能涵盖一个典型企业的完整IT治理需求,因此您可以在此基础上根据自己企业的实际情况进行补充和裁剪。此外,我们还将针对更复杂的场景,推出面向大企业客户的IT治理整体解决方案,敬请期待。