演讲人:
遥方,阿里云开放平台解决方案资深架构师
知意,阿里云开放平台资源目录产品经理
当下,越来越多的企业正在将自己的业务搬迁上云,阿里云在过往十几年服务客户的过程中,发现很多企业在使用云账号的过程中存在两类比较典型的问题。
第一类问题是,很多企业会把自己的业务放在一个云账号里。试想一下如果这个账号一旦出现一些安全风险,那么这个客户所有的业务都会受到影响。
第二类问题是,在使用阿里云的过程中,会把自己的业务按照不同的团队或是不同的区域划分,放在不同的账号里。但是客户的运维团队、安全团队又希望可以实现统一的管控,却不知道怎么去落地这样的多账号统一管控的需求。
这里,为大家介绍阿里云已经发布的构建多账号云环境白皮书,这个白皮书是希望能够指导客户真正的认识到多账号管理可以帮助他们提升在云上管理的成熟度,包括企业在上云之初以及未来用云的持续管理,提升管理效率、安全性和稳定性。
下面介绍如何构建多账户云环境。
一、管理挑战
当下很多客户上云有两种方式。第一种方式是业务优先,意思是企业会优先把应用搬到云上,比如典型的互联网企业。随着后续用云的持续深入,会发现这种方式存在一些问题,比如身份泄露和网络冲突等等。第二种方式是治理型优先,即上云之初企业就会先做好一个顶层设计,比如多账号应该怎么做、网络应该怎么做等等,然后再把业务往云上迁移。
第二种方式是我们认为比较好的上云方式。基于多年服务大型企业的经验,我们把企业上云分为几个步骤,这也是云采用框架,大概分为四个步骤。
首先,上云战略。这里面会讲清楚为什么要上云。
其次,企业会去构建云上登录区,阿里云这边会有一个解决方案LandingZone可以帮助客户规划好多账号环境。
第三,企业将应用往云上迁移。
第四,企业在使用阿里云的过程中,会遇到很多的管理跟治理方面的挑战,所以在这里会有一个叫做Well-Architected的架构解决方案,可以帮助客户如何在安全性、稳定性和效率方面做到更优。
在展开讲多账号之前,首先介绍下阿里云账号是什么。阿里云账号拥有几个特征:
• 首先,每个阿里云账号天然拥有唯一的根用户,拥有“完全权限”;
• 其次,阿里云账号具备法律主体身份特征,这个主体对账号内资源具有主权;
• 第三,阿里云账号是一个“天然”的资金账户,存放现金余额、信用余额、代金券等;
• 第四,用户在阿里云上订购云资源,阿里云账号将作为装载这些资源的容器。
相较于单账号,多账号的优势有以下几个方面。
• 在稳定性方面,单账号是很典型的将所有业务都放在一个账号中,如果这个账号出现安全风险,那么所有业务必定会受到影响。而选择多账号的话,可以将不同业务分布到不同的账号中去,如果某个账号受到了安全隐患的影响,其他账号也不会受到影响。
• 在安全性方面,企业的一些数据安全、身份安全等等,多账号相对于单账号来讲管理起来更方便。
• 在财务方面,多账号天然支持集团企业多分公司主体及不同业务的结算模式,而单账号无法满足企业实现多个法律实体关系时的需求。
• 在效率方面,多账号按照不同业务分散在不同的账号,业务对应背后的组织人员也可以在不同账号去管理,所以在管理效率、扩展性和运营效率等方面都比单账号更优。
综上所述,建议客户使用多账号来统一管理云环境,这也是大型企业的最优选择。那么如何在云上设计一套多账号架构呢?下面介绍一个多账号设计的最佳实践。
二、如何架构多账号环境
如下图左侧所示,这是一个非常典型的多账号架构。
在这个架构的中间是阿里云的云产品叫资源目录,它能够把多账号统一管理起来。这个架构还包含了多个账号,比如企业管理账号,它对所有账号具有管理权限,并且在这个账号只做管理功能,不用部署实际的业务;日志账号可以把每一个账号里面的日志都收集上来做审计和分析;运维账号可以部署一些运维资源,比如企业自己的CICD软件或是一些监控用的软件等等;安全账号可以部署一些阿里云的安全产品,比如云防火墙等;业务账号,可以根据不同的业务进行账号部署,这样各个业务的扩展性都会很强,比如大数据业务、AI业务等等都可以用不同的业务账号去完成部署。
下面展开介绍几个典型的场景。
典型场景1: 多账号的身份权限管理
当企业应用多账号后身份应该如何做到统一管理呢?阿里云为大家提供一个统一管理的方案即云SSO,如下图右侧所示,通过云SSO产品可以解决企业在多账号场景下的统一身份管理。解决的核心问题,我们称之为1+2。
对于企业员工来讲,企业有多个云账号,员工需要分别登录到各个账号,缺少一个统一的登录入口。有了云SSO之后,员工只需要在一个地方完成登录即可。
对于企业管理员来说,需要在不同账号内完成对用户或角色的授权,工作量极大。有了云SSO之后可以做统一管理和授权。
另外,有了云SSO之后,可以对企业IDP做打通,当员工离职后,可以让其账号无法再次登录到控制台。
典型场景2:多账号的合规审计
对于安全团队来讲,如何保证账号、服务器不被窃取是基本的诉求。这里介绍的典型场景,比如客户在服务器上开了一个公网IP,这就很有可能被黑客扫描,然后实施攻击。这种情况下,就需要对每个账号里的资源进行定期的安全审计。
对于运维团队来讲也是同理,需要经常查看每个账号里的资源是否闲置,资源配置是否有异常,定期针对账号中的配置进行检查。
所以对于多账号的客户来讲,如果能够在一个地方完成上述的工作并查看所有结果,那么一定会大大提升安全和运维的效率。
典型场景3:多账号的网络管理
很多客户拥有多个账号,这就一定会涉及到网络组网的要求,所以阿里云提供统一的网络管理解决方案。
上图可以看到,网络统一管理的本质是在不同的账号里VPC的出口和入口希望在一个DM区域里实施监控和管理。优点是管理出入公网的权限以及监控某一流量的出入等等。
另外,也可以做到安全审计的统一管理。如果遇到外网攻击,可以在一个地方统一查看攻击日志,并快速找到攻击原因。
第三,从成本角度来讲,不同的账号做出入口的话需要配置EIP,都需要足够的带宽。如果将多账号统一管理,至少在公网的成本方面可以做到削峰填谷,完成成本的优化。
三、如何落地多账号统一管理
那么对于企业来讲,对于其所处的阶段如何落地多账号的统一管理呢?这部分将企业大概划分为两类企业画像。
第一类企业是还未上云的企业,强烈推荐这部分企业在上云之初就把多账号规划做好,推荐使用阿里云的云治理中心产品。通过这个产品,可以帮助企业快速搭建多账号的云环境。
第二类企业是已经在阿里云上的企业。已经在云上的企业又可以分为两种,一种是单账号企业,第二种是多账号但是未做统一管理的企业。
对于单账号企业如何过渡到多账号,可以按照不同的环境、业务、地域、供应商、功能来分账号。对于已经使用多账号但是未做统一管理的上云企业,推荐几种常见的多账号统一管理的落地方式。如果想在同一个地方看每个账号的资源情况,可以通过资源中心的跨账号搜索功能设置;如果想统一查看每个账号的日志情况,推荐跨账号采集云产品日志的功能;还包括身份、网络、合规等等方式。其实每一个场景阿里云都会提供相应的产品和解决方案来实现客户需求。
如果想要了解更多更详细的关于多账号统一管理的内容,欢迎大家通过下图扫码下载《构建多账号管理云环境白皮书》。
四、使用资源目录搭建和管理多账号的云环境
如下图所示,这个集团企业拥有10家子公司,目前每一家子公司的安全和运维都是各个公司的独立团队完成的。随着全球化的发展和信息安全越来越重要,集团公司希望能够对所有子公司进行统一的管控。
基于这样的需求可以看到对于不同的岗位痛点是不一样的。
对于安全合规团队来讲,他们的痛点是希望每个子公司的员工身份能够统一管理起来,因为以往独立管理的情况下,每个子公司安全水位是参差不齐的。
对于运维研发团队来讲,他们的痛点是希望可以统一管理查看每个子公司的资源情况和资源配置,并能够定期做一些周期性的巡检。包括各子公司的监控分散在不同账号内,缺乏一个统一的可观测大盘,包括Quota以及资源开通等等
对于财务团队来讲,他们的痛点是希望能够统一管控每个子公司的成本情况和预算的统一管理等等。
基于集团企业不同岗位的不同诉求,如下图可以看到企业客户在云上的多账号的架构。
无论是初创企业还是大型公司,大多会选择使用多账号的云环境来部署云资源。阿里云资源目录就是一款可以让客户更好、更便捷的去管理多账号的一款云服务。
使用资源目录可以满足客户完成多账号的管理,包括用户权限管理、安全管控、合规审计、运维监控等等场景的集中管控需求。
那么如何使用资源目录这款产品更好的搭建和管理多账号的云环境呢?在展开介绍之前,首先看下为什么企业需要使用多账号的云环境。
多账号云环境具有强隔离、清晰的安全边界、风险分散和分账清晰的特点。
举个情景带入的例子。一家游戏公司的云运维团队负责公司游戏项目都需要用到阿里云的云资源,这时,如果有一个新的游戏项目要上云,那么最简单的办法就是创建新的云账号,让游戏项目组的成员能够访问这个账号,并在这个账号内完成资源的创建和业务的部署。
因为不同游戏项目分布在不同的账号里,资源在不同账号中是强制隔离的,因此新项目不会跟其他的游戏项目之间互相干扰。云上的业务包括生产环境、测试环境;业务也可以分为核心业务和非核心业务。那么不同环境和不同业务的安全管控策略肯定也是有所不同的。
相较于资源,在同一个账号内,多账号会使安全边界能够更加清晰的划分和管控;从风险角度来看,如果某个游戏项目组人员不慎将账号的AK信息暴露到公网,可能会导致业务信息的泄露,但是影响范围仅限于此账号的业务,不会波及到其他游戏。
如果游戏项目都在一个单一的账号内,那么它所可能带来的负面影响要远远大于多账号的情况。
很多企业使用多账号还有一个很重要的因素就是账务分账。不同的游戏项目用不同的账号来承载,可以非常清晰的查看和统计每个项目在云上的消费情况,还可以结合一些账号内的资源Quota配额限制等因素统一管控。
综上所述,无论是初创企业还是大型公司,我们都推荐客户采用多账号的环境来部署云上资源。阿里云提供的资源目录就是让客户能够更方便搭建、更方便管理多账号云环境的基础云服务。
使用资源目录可以非常便利的创建新账号,并可以对账号进行分组。举个例子,生产账号可以分到一个组,组与组之间还可以形成嵌套式的多级结构,方便集中管理。
多账号环境很大的挑战是如何保证全局的可见和可控。资源目录的管控策略提供了全局管控的方案,同时通过集成的安全审计、资源中心等产品保证云上资源的全局可见和持续的安全合规。
通过与资源目录深度集成的云SSO服务,可以对企业在云上的用户和用户对不同账号访问权限进行集中的设置和管理。同时一些资源也支持在组织内进行共享。
资源目录的核心能力总结起来可包含以下三个方面:
第一,云上组织结构搭建。
第二,云上组织的权限边界和管控策略(CP)。
第三,跨账号资源的集中管控。
1. 多账号环境的搭建。
如下图左侧红色虚线部分是Landing zone上云的最佳实践中推荐的多账号环境图的中心。这个中心部分就是基于资源目录搭建起来的多账号结构。红色虚线外围显示了每个账号内部署的资源,代表了该账号承载的职能。
那么如何使用资源目录搭建红框内的多账号结构呢?分为以下几步。
第一步,开通资源目录,即创建资源管理的企业组织。这需要使用一个已经完成实名制认证的账号来开通,开通后即代表为此企业创建一个资源管理的企业组织。
第二步,创建不同的资源夹来对应组织在云上的资源管理结构。资源夹是用于聚合账号的一种组织单元,类似于电脑中的文件夹,比如有核心账号、业务账号等资源夹,两个资源夹在业务账号下又可以分成生产、测试等资源夹,可以形成嵌套式的资源管理结构。
第三步,创建或邀请账号加入目录组织。资源目录支持快速创建新账号给到新的业务使用,新账号也会自动继承企业的实名信息,不需要人工完成企业的实名认证。在创建新账号的时候支持设置付款账号,可以选择由管理账号或是某个付款账号来集中付款。
对于开通资源目录之前在云上已经存在的账号,可以通过发送邀请的方式邀请加入到目录组织中来。账号一旦受邀成功,就会成为资源目录的一个成员。
通过以上三步操作,就可以完成多账号云环境资源结构的搭建了。
那么搭建之后,如何保证多账号的全局可控呢?比如企业一般都会有一些安全控制的要求,这些要求可能来自于法律法规、行业标准或是企业内部的安全管理规范。这就需要用到管控策略的能力。
首先需要明确的是管控策略不是授权,而是让客户去定义多账号组织的最大权限边界,也就是说客户去定义组织所有账号内的所有用户在云上能做什么不能做什么。
将这组策略可以附加到ROOT资源夹,这样这个策略自上而下的流向子资源夹和成员,将会对所有下级成员生效。
通过上图右侧的示例,可以看到,通过在条件中指定VPC私网地址,只能从这两个VPC对OSS资源发起请求,否则的话请求就会被拒绝。如果将这样一条策略添加到资源目录的根资源夹下,那么这个策略就会自上而下对根资源夹下所有子资源及成员生效。后续当资源目录中的成员下面某个RAM用户或是角色发起对OSS资源访问的时候,就会命中这个策略,策略会判断当前请求来源是不是VPC网络,如果不是就会拒绝请求。
通过管控策略能够实现全局的管控能力,保证云上的资源是全局可控的。
当前资源目录与众多的云产品集成,支持组织视角的集中管控。比如审计日志的集中收集和归档、安全态势的集中查看和策略的集中配置、监控信息的集中获取、跨账号资源的全局可见可检索等等。
这里以资源共享服务来做举例。
资源共享是资源管理领域的一款产品,它支持将一个账号下的资源共享给一个或多个账号一起使用,这个过程中不需要客户在不同账号内重复创建这些资源,从而降低了在不同账号内运维重复资源的成本。
比如公司的运维团队会基于安全和运维规范,制作并维护创建ECS实例的时候需要用到的镜像。运维团队希望这个镜像能够在一个账号内集中创建和管理,并且共享给组织内的所有账号去使用。这个时候就可以使用资源共享能力来实现这个需求。
在选择共享对象的时候,除了支持点对点的共享,还可以通过资源目录的集成,支持将资源共享给资源所在的整个资源目录,或是目录中指定的资源夹。这样做的好处是运维团队只需要操作一次共享即可。
当有新的账户成员 加入到资源目录的时候,资源共享服务会自动感知新账号的加入,新账号也能自动获取对共享资源的访问权限。如果有账号从组织中被移除,那么资源共享服务也会自动取消该账号对共享资源的访问权限,不需要在账号结构发生变动的时候,运维团队手动去调整共享关系。
当前,除了ECS镜像外,还支持一些常见的共享资源类型,具体内容可以通过帮助文档了解。