GxP LandingZone解决方案
本解决方案由阿里云开放平台解决方案团队发布,旨在向生命科学行业提供一整套企业最佳实践的 GxP 合规上云执行方法,快速搭建一个安全合规的上云登录区,并持续保障云上 GxP 数据可靠性。
方案概述
生命科学行业作为一个强监管行业,需要满足严格的 GxP 法规及指南,因此在将 IT 技术应用于行业内的数据处理和分享之前,需要先符合计算机化系统验证的要求。其次,随着医药研发、生产及销售数据上云的过程,生命科学行业所面临的数据安全保障、个人隐私保护甚至数据出入境的合规风险也愈发显著,这需要生命科学行业积极寻求行业最佳实践,以指导企业如何合法合规地上云运营。
阿里云已经发布云采用框架(Cloud Adoption Framework,简称CAF)为企业上云提供策略和技术的指导原则和最佳实践,帮助企业上好云、用好云、管好云,并成功实现业务目标。云采用框架是基于服务大量企业客户的经验总结,将企业云采用分为四个阶段,并详细探讨企业应在每个阶段采取的业务和技术策略;同时,还提供了一系列最佳实践、文档和辅助工具,帮助云架构师、云管理团队等干系人能够实现组织协同达成目标。云上Landing Zone是CAF的重要组成部分,通过顶层设计和一系列基础框架的落地,帮助企业为后续的业务上云扫清障碍。
本解决方案由阿里云开放平台解决方案团队发布,旨在向生命科学行业提供一整套企业最佳实践的 GxP 合规上云执行方法,快速搭建一个安全合规的上云登录区,并持续保障云上 GxP 数据可靠性。
方案优势
构建安全合规、易管理、可扩展的GxP上云登陆区
生命科学行业受到严格的监管,在上云登陆区中还需要考虑 GxP 合规、隐私保护以及数据出入境等诸多合规要求,并在云中落实这些合规要求。阿里云基于服务众多生命科学行业客户的经验,推出适用于生命科学行业的上云登陆区(Landing Zone for GxP),包含资源规划、财务管理、网络规划、安全防护、合规审计、身份权限、运维管理、自动化八大板块,能够体系化地帮助客户构建企业级的管理和治理框架作为云环境的基础设施,本方案提供一组构建云基础的最佳实践,并综合考虑不同地区的法规要求,旨在为客户迁移上云提效,帮助客户满足安全合规的基本要求,构建安全合规、易管理、可扩展的上云登录区。客户可以此为基础或参考,结合自身独特的业务需求进行定制,确保云基础环境的安全合规、可管理和可扩展。
帮助企业平稳登陆阿里云
我们建议企业在第一个应用登陆阿里云之前,需要有一整套顶层设计和一系列基础框架(Landing Zone),为后续的业务上云扫清障碍。否则,可能会导致后续业务上云面临成本、网络、安全、效率等多方面的问题。生命科学行业受到严格的监管,在上云登陆区中还需要考虑 GxP 合规、隐私保护以及数据出入境等诸多合规要求,并在云中落实这些合规要求。本方案体系化的介绍了一套生命科学行业Landing Zone方案架构,使客户对适用于生命科学行业的Landing Zone的设计和实施有更深入认知,帮助企业推进云上数字化转型、平稳登陆阿里云。
客户场景
对GxP合规及架构可持续有需求的新客
场景描述
药企对传统IT下的GxP合规是熟悉的、并且知道怎么做。但对于有上云诉求的客户,如何使用对应的云服务和特性来满足GxP合规要求,并不清晰,更难以借助云的新特性更高效地满足合规性要求。
适用客户
生命科学行业中受 GxP 监管的个人、组织及机构,包括但不限于生命科学新药研发机构,临床研究中心,制药生产工厂及企业,医疗器械行业,药品流通、销售以及使用单位,上市许可持有人(MAH)以及医药合同外包组织(CXO)等 。
方案架构
架构设计原则
原则一:满足GxP合规
云系统在 GxP 合规上线过程进行配置或开发时,需至少设置系统测试、验证和生产三套环境,GxP 合规相关要求中也明确了身份认证、访问控制、审计追踪、 权限设置、网络安全、密钥管理等 GxP IT 系统和电子数据的安全合规要点。
另外,充分预见和评估企业安全合规等风险,规划企业 IT 治理的整体方案、 策略和基本规则,包括资源结构、身份权限、费用账单、合规审计、网络架构、 安全策略以及监控规则等。在企业上云和用云过程中,设定治理规则,以预防、 发现和及时治理风险。
原则二:满足卓越架构规范
阿里云已经发布云卓越架构规范白皮书(aliyun well-architected framework)。在架构设计需要充分考虑安全合规、稳定性、成本最优。以网络规划为例,在方案中,我们推荐要使用多可用区来部署您的业务,来提升站点稳定性;也会推荐最基础的安全合规基线,帮助您识别安全风险。
原则三:遵循自动化优先
相较于传统的IDC运维来讲,云上的运维模式发生了较大的变化。其中最重要的一点就是任何资源的管理都可以通过API可编程的方式来管理。这样可以极大地提升运维自动化效率。如在此方案中,整个Landing zone的环境就是能够可编程的方式来实现。
多账号部署架构图
以下按照LandingZone的8大模块分别讲解各个模块的最佳实践。
资源规划
账号设计
整体资源规划遵循了标准Landing Zone的多账号(多UID)架构设计,使得在安全性、可管理性及可扩展性大大提升,分为三类账号:
- 企业管理账号:用于租户、财务、身份权限、管控策略等管理用途;不运行任何工作负载;
- 核心账号:包括日志账号、网络账号、共享服务账号、安全账号,作为职能团队(function team)的工作专区;
- 业务账号:用于部署工作负载的租户,可以根据企业实际需要进行添加,并可以横向的扩展。
这里面需要针对行业设计的是第三类-业务账号,需要考虑药企哪些系统上云,隔离性要求是什么。在药企IT架构大图中,优先上云的是ERP(企业资源管理)、CRM(客户关系管理)、SCM(供应链管理)、CTMS(临床试验管理)等系统;GAMP5中提出云系统在GxP 合规上线过程进行配置或开发时,需至少设置系统测试、验证和生产三套环境。因此我们在初始配置中设计了用于SCM、CTMS系统的六个环境(UID),客户需要扩展自行参考添加账号即可。各账号职能说明如下:
- 企业管理账号:用于多账号管理,在该账号中启用资源目录并构建账号树,具备统一设置审计、管控策略等规则并下发到各成员账号等管理职能。在此方案中建议将该账号作为财务主账号,与其它账号建立财务关联关系后对企业财务进行统一管理。
- 安全账号:给企业的安全角色使用,用于配置相关安全产品,如Web应用防火墙(WAF)、云防火墙等。
- 日志账号:聚合所有成员账号的日志,便于统一收集、统一管理。
- 运维账号:部署运维相关工具,如堡垒机、统一监控平台、CMP、CMDB等。
- 共享服务账号:用于部署企业网络资源,如云企业网CEN实例、VBR实例等。
- 业务账号:业务功能账号,用于部署业务应用,如生产环境账号、测试环境账号等。
账号扩展建议
- 在企业管理账号中使用资源目录构建账号树,将其它账号作为成员账号纳入资源目录进行多账号统一管理。
- 基础管控类账号放置到Core资源夹下,业务账号放置到Applications资源夹下。
- 业务账号按业务组织单元进行划分,体现企业组织架构及管理方式,常见的组织单元划分如分公司、部门、产品等,对不同业务单元进行隔离。
- 账号下可使用不同资源组对应用资源进行隔离。
- 大数据业务集中放置到大数据账号,归属大数据资源夹。
- 外购资源夹用于放置供应商账号,根据实际情况选择是否需要,对供应商账号可以实施管控策略等基线进行操作限制。
财务管理
参考多账号的设计,不同账号内的成本需要统一管理。在此方案中我们推荐采用财务托管来管理不同账号的统一结算关系。
财务托管关系
财务主账号可与财务子账号间建立财务托管财务关联关系。相关财务上的能力可以参考下表:
属性 |
财务托管 |
信控 |
子账号无阿里云信控,子账号申请了信控也用不到。 |
额度管理 |
因为子账号都是用主账号的信控,主账号是管不了各个子账号花多少钱,但不会超过主账号的总信控。 |
折扣 |
使用主账户的优惠和折扣。 |
结算关系 |
主账号跟阿里云结算,子账号不能跟阿里云结算。 |
发票关系 |
阿里云开票给主账号,且支持合并开票即支付多个子账号的订单合并开票。 |
代金券 |
子账号不可用自己的代金券,但可以使用主账号的代金券,但无法做到指定特定子账号的代金券。 |
在此方案中,推荐使用企业管理账号作为财务托管主账号。
财务分账
企业上云用云财务管理面临着很大的挑战与变化,如何讲清楚云上IT成本构成进行成本优化,如何摆脱低效的人工分账,将云上资源成本关联分摊到各个业务都是企业在云上需要面临的问题。本章节为企业介绍多种组织模式下的财务分账方案,包括单账号、多账号的多级分账方案,解决云上IT成本核算、财务分账等问题。
企业可以先按业务部门做多账号规划,从账号层面将账单分隔,再到财务主账号中统一查看各业务部门账单。在账号内部可以通过标签的方式进行多维度分账。
标签分账关键步骤
关键步骤说明如下:
- 设计财务单元,从部门、项目、业务线等企业财务角度对云资源实例产生的费用用财务单元标识,即可从财务单元的角度查看账单及成本分析,并可以以目录树的形式建立自定义的费用层级结构,达到企业分账的目的。
- 设计标签体系,标签的设计与打标质量是直接影响财务分账结果,可以在规划阶段设置预置标签便于后续使用。为云资源打上设计好的标签,例如部门标签、项目标签、应用标签,根据标签将不同的账单费用归类到不同的财务单元。
- 在创建资源的时候就打上标签,便于后续划分到财务单元进行分账。为了便于资源开通溯源,Landing Zone会默认开启创建者标签
- 对存量资源进行梳理,通过云产品控制台、标签控制台、标签API等对资源进行打标。
- 事后审计资源打标情况,通过配置审计标签规则或标签策略对未打标资源进行预警。标签策略还支持对错误标签进行自动修复。
身份权限
访问控制是计算机化系统验证的最重要环节和基础,具体体现在为人员配置身份、授予明确的职责(授权),并记录该身份的一切行为作为审计追踪用途。
在阿里云上,我们可以基于CloudSSO服务,统一管理多账号(多UID)的身份与授权。
- 企业IdP可以与云SSO服务进行集成,实现单点登录;当然,如果不具备IdP,企业也可以把云SSO服务作为身份管理的入口;
- 在云SSO服务中,我们配置多个系统角色:“审计管理”、“安全管理”、“网络管理”、“系统管理”、“业务运维”,可以按角色进行授权。
GxP标准中明确要求:需确保只有经过授权的人员方能使用系统或者访问系统中的数据,避免系统或数据遭受未经授权的访问。
《欧盟药品生产规范》第4卷附件11《计算机系统》第15条:当人工输入关键数据时,应当复核输入记录以确保其准确性。这个复核可以由另外的操作人员完成,或采用经验证的电子方式。必要时,系统应当设置复核功能,确保数据输入的准确性和数据处理过程的正确性。
针对以上要求,需要做到:
- 企业的内部身份系统(IdP)与云实现SSO,避免员工离职之后还能登录控制台。
- 精细化授权策略,通过资源范围,条件过滤等手段来达到最小化授权。
- 借助审计工具,定期对身份与权限审计,清理不必要的账号与权限。
同时,MLPS身份划分要求需要有系统管理、审计管理与安全管理这三个角色。
角色 |
权限策略 |
系统管理 |
|
审计管理 |
配置审计、操作审计和日志管理的全部权限,同时有权查看所有资源现状 |
安全管理 |
授予相应安全产品,日志服务的系统策略,同时有权查看所有资源权限 |
网络规划
网络架构由于其不可逆性有其需要顶层设计,不仅满足当前业务需要,还需要满足可扩展性需要。针对生命科学行业的业务场景和网络设计实践,我们将网络总体分为几个区域:
- 公网区:来自最终用户的互联网访问区域;
- DMZ区:网络管控区,所有来自公网的访问都需要经由DMZ区进行转发,从而实现网络出口统一管控;
- 生产区:部署生产业务,与非生产区隔离,高的网络安全性保证;
- 非生产区:部署测试或开发环境;
- 交换区:用于与第三方机构进行数据交换,设置安全、专用网络通道;此网络区域是医疗行业针对性设计,针对临床试验CTMS的数据交换场景,第三方医疗机构需要将临床数据上传到CTMS,通过Private Link私网链接在数据交换区进行与系统的解耦并实现安全交换;
- 共享区:部署共享的业务或者云服务,比如AD域控系统、ACR、KMS等;
- 运维区:作为运维管理人员处理日常运维事件的专区,部署堡垒机,运维工具等等。
《欧盟药品生产规范》第4卷附件11《计算机系统》第16条关于业务连续性要求:为了提供支持关键过程的计算机化系统,应作出规定,确保在系统出现故障(例如手动或替代系统)时能继续为这些流程提供服务。
《药品记录与数据管理要求(试行)第二十条》:采用电子记录的计算机化系统的组织应确保其系统所在网络环境稳定、安全。
针对以上合规要求,采用同城双活部署架构,当某个可用区出现异常,流量可以快速切换,不影响业务连续性。相关云资源如SLB、RDS均采购多可用区版本,避免可用区故障导致系统不可用。将各业务出口统一管理,在网络边界架设云防火墙,保护内网络。内部网络遵循严格的隔离策略,业务按生产、非生产进行隔离。建立与第三方供应商数据私网交换的服务区,确保数据传输过程中的完整性。下图展示了每个区域的具体网络产品配置:
基于VPC网络基础互联、网络安全域分区、网络安全隔离和访问控制等云上组网核心的诉求,云上网络分区设计原则整体分为以下以下部分:
- 网络分区设计
- 满足业务规模化发展需求,合理划分VPC和VSW,生产、开发测试、运维管理等独立VPC部署。
- 满足可靠性和稳定性,建议重要业务系统跨可用区部署,应用网段和数据库网段分开分属不同VSwitch。
- 满足业务之间的高效调用和交互,关联业务尽可能部署在相同Region。
- 分区间网络互通
- 通过采用CEN-TR,打通阿里云上任意Region开通的业务系统,实现全局一张内网。
- VPC按需加入TR,按需控制不同VPC之间或不同vSW之间的互通关系。
- 云上业务互联安全设计
- 公网出入口配置云防火墙管控进出流量(可搭配WAF)。
- 跨分区通过云企业网(CEN)搭配云防火墙实现策略管控。
- VPC内配置安全组策略,实现微隔离(可搭配云防火墙,实现策略统一管理)。
安全防护
体系化的安全设计
GxP 法规对安全管理提出了明确要求,确保组织内规范化计算机化系统、数据和记录的机密性、完整性和可用性,但并未具体对于安全细节进行说明,我们在Landing Zone for GxP对标等保2.0三级进行安全的设计。
《欧盟药品生产规范》第4卷附件11《计算机系统》第5条:以电子方式与其他系统交换数据的计算机化系统应包括适当的内置检查,以确保数据的正确和安全输入和处理,以最大限度地减少风险。
《欧盟药品生产规范》第4卷附件11《计算机系统》第11条:应定期评估计算机化系统,此类评估应酌情包括当前的功能范围、偏差记录、事件、问题、升级历史记录、性能、可靠性、安全性和验证状态报告。第12条第四点:应设计数据和文件管理系统,以记录输入、更改、确认或删除数据(包括日期和时间)的操作者的身份。
《欧盟药品生产规范》第4卷附件11《计算机系统》第12条第一点:防止未经授权进入系统的适当方法可能包括使用钥匙、通行卡、带密码的个人密码、生物识别、限制进入计算机设备和数据存储区。
《药品记录与数据管理要求(试行)第二十条》:采用电子记录的计算机化系统的组织应确保其系统所在网络环境稳定、安全。
针对以上合规要求,需要从数据传输过程中做到全程加密,确保数据不被篡改;等到数据落盘存储,也需要对存储加密,防止数据泄露。推荐SSL证书、KMS加密等产品。
对于云主机,开启云安全保护确保安全性;数据库要开启数据审计,开启攻击、数据泄漏等内置规则,实现对外部威胁检测。利用全量审计数据库访问行为,便于事件取证追溯。推荐云安全中心,数据库审计等产品。
从身份安全、网络安全、主机安全、安全运营等层面来确保未经授权进入到系统,防止系统被黑客攻击。推荐云防火墙、数据安全中心等产品。
通过云防火墙,WAF等保护内部网络免受未经授权的访问。构建一套成熟的网络安全架构。
数据传输及存储加密
确保数据在传输过程中不被篡改,满足GxP数据安全标准,减少数据泄露风险。
《欧盟药品生产规范》第4卷附件11《计算机系统》第4条第八点:如果将数据传输到其他数据格式或系统,则验证应包括检查在此迁移过程中数据的价值和含义是否没有改变。
《欧盟药品生产规范》第4卷附件11《计算机系统》第5条:以电子方式与其他系统交换数据的计算机化系统应包括适当的内置检查,以确保数据的正确和安全输入和处理,以最大限度地减少风险。
针对以上合规要求,需要从数据传输过程中做到全程加密,确保数据不被篡改;等到数据落盘存储,也需要对存储加密,防止数据泄露。
针对数据传输与存储加密,具体方案如下:
- 使用HTTPS或SSL加密连接进行数据传输,使用数字证书管理服务对证书进行管理,支持直接部署到云服务。
- 使用KMS进行密钥管理,支持使用KMS用户主密钥及自带密钥对云产品内用户数据进行加密。
- ECS及ACK进行云盘加密,Redis进行透明数据加密,OSS支持服务端及客户端加密,RDS进行云盘加密、透明数据加密、全加密等方式保障存储安全。
数据库审计监控数据泄露
对数据库的操作持续审计,满足GxP安全合规要求,减少安全合规风险
《欧盟药品生产规范》第4卷附件11《计算机系统》第12条第四点:应设计数据和文件管理系统,以记录输入、更改、确认或删除数据(包括日期和时间)的操作者的身份。
《欧盟药品生产规范》第4卷附件11《计算机系统》第11条:应定期评估计算机化系统,此类评估应酌情包括当前的功能范围、偏差记录、事件、问题、升级历史记录、性能、可靠性、安全性和验证状态报告。
针对以上合规要求,利用数据库审计能力,对数据库内的库,表级资源进行操作进行审计,能够准确记录操作者身份、时间。数据库审计开启攻击、数据泄漏等内置规则,实现对外部威胁检测。利用全量审计数据库访问行为,便于事件取证追溯。
制定数据备份策略
对数据做好备份,满足GxP数据安全要求,减少数据丢失风险
《欧盟药品生产规范》第4卷附件11《计算机系统》第7条第一点:应通过物理和电子手段保护数据免受损坏。检查存储的数据的可访问性、可读性和准确性。确保在整个保留期内数据可被准确访问。根据第二点:应定期备份所有相关数据。应在验证期间检查备份数据的完整性和准确性以及恢复数据的能力,并定期进行监控。
《药品生产质量管理规范》附录一计算机化系统第19条:以电子数据为主数据时,应当满足以下要求:应当建立数据备份与恢复的操作规程, 定期对数据备份,以保护存储的数据供将来调用。
针对以上合规要求,利用云上备份工具HBR,可以基于策略实现自动化备份,支持全量、增量(差量)、日志备份策略。具体方案如下:
- 数据备份过程中对于异常的监控与告警,对于错误信息能够及时发现。
- 涵盖的云上数据范围:ECS文件目录、SQL Server、SAP HANA、NAS、OSS等关键数据。
- 建议定期抽检备份数据,验证其准确性与完整性。
合规审计
在法规中审计追踪从专业术语上可总结为三种类型:预防性管控、发现性管控和回顾性管控,我们可以简单理解为事前、事中和事后的审计追踪。三个环节我们均有对应的技术方案,在技术方案的基础上还需要有基线。
预防性管控
确保企业云管理持续受控的方式进行,满足GxP安全合规要求,减少安全合规风险
《欧盟药品生产规范》第4卷附件11《计算机系统》第10条:对计算机化系统的任何更改,包括系统配置,都只能按照规定的程序以受控的方式进行。
《欧盟药品生产规范》第4卷附件11《计算机系统》第12条第一点:采取物理或逻辑控制手段,限制授权人员访问计算机系统。防止未经授权进入系统的适当方法可能包括使用钥匙、通行卡、带密码的个人密码、生物识别、限制进入计算机设备和数据存储区。
针对以上合规要求,利用账号管控策略能力,对账号内的用户或者程序操作可以施加管控策略,约束其操作行为。
为了防止未经授权进入系统,要确保系统必须要授权才能访问。通过管控策略,可以禁止创建这类资源:可被公共读写的OSSBucket资源,可被匿名访问的OSS资源等。
发现性管控
定期审计云上资源配置风险,确保持续满足GxP合规标准,减少安全合规风险
《欧盟药品生产规范》第4卷附件11《计算机系统》第3条:针对供应商和服务提供商的监管要求,要对供应商进行审计来做风险评估。
《欧盟药品生产规范》第4卷附件11《计算机系统》第4、5条:对于数据传输过程要确保全程数据安全加密,防止被篡改。
《欧盟药品生产规范》第4卷附件11《计算机系统》第7条:应定期备份所有相关数据,并验证备份数据的完整性与准确性。
《欧盟药品生产规范》第4卷附件11《计算机系统》第12条:应采取物理或逻辑控制手段,限制授权人员访问计算机系统。
《欧盟药品生产规范》第4卷附件11《计算机系统》第12条:设计数据系统,记录输入、更改、确认或删除数据的操作者身份。
针对以上合规要求,在日志账号中开启多账号配置审计,选择GxP欧盟附录11标准合规包,将供应商账号内的资源统一审计,能够做到风险的及时发现与处理。
检测数据全链路过程中相关组件是否有做安全加密保护,检测资源如:检测redis是否有开启SSL,rds是否有开SSL,apigateway是否使用https协议等。
检测计算、存储类资源是否有开启备份策略,检测资源如:RDS是否有开启日志备份,Redis是否有开启日志备份,ECS是否有打快照等。
防止员工离职或者转岗之后,还保留权限。需要定期审计这类身份信息。检测类如:AK是否有过期,RAM是否有弱密码,RAM是否有闲置。
对于数据存储类资源需要开启日志审计功能,检测资源如:Redis开启审计日志、Mongodb开启日志审计、waf开启日志记录等。
回顾性管控
定期审计云上各类日志,不论是中国境内还是海外都有明确法规要求
中国网络安全等保2.0标准:
- 网络边界、重要网络节点、网络系统操作、重要存储操作、计算机系统操作、安全系统操作需要详细记录。
对审计系统提出要求:
- 集中收集、集中分析、集中存储时长要求(180天以上)
- 对审计数据保护。需提供分析、监控告警,提供数据汇集接口,供第三方审计
《药品生产质量管理规范》第16条要求:计算机化系统应当记录输入或确认关键数据人员的身份。只有经授权人员,方可修改已输入的数据。每次修改已输入的关键数据均应当经过批准,并应当记录更改数据的理由。应当根据风险评估的结果,考虑在计算机化系统中建立数据审计跟踪系统,用于记录数据的输入和修改以及系统的使用和变更
针对以上合规要求,利用日志审计的能力,在日志账号中开启日志审计服务,将各个业务账号内的各类云产品日志统一投递到日志账号,对于事件可做到可追溯、可追责。日志审计也提供对外API,便于跟企业内部的安全中心(SOC)对接,直接消费云上审计日志。
运维管理
《欧盟药品生产规范》第4卷附件11《计算机系统》第11条:应定期评估计算机化系统,以确认它们保持有效状态并符合GMP。此类评估应酌情包括当前的功能范围、偏差记录、事件、问题、升级历史记录、性能、可靠性、安全性和验证状态报告。
《欧盟药品生产规范》第4卷附件11《计算机系统》第13条:应报告和评估所有事件,而不仅仅是系统故障和数据错误。应确定重大事件的根本原因,并应成为纠正和预防行动的基础。
企业面临越来越丰富的云资源,如何高效监控云上资源的健康运行情况,成为IT稳定性保障的关键环节。本方案中介绍如何使用企业云监控对阿里云多账号场景下,进行统一的监控管理,通过资源目录轻松实现企业跨账号统一监控资源。对云资源做好可用性监测,满足GxP对业务连续性要求,降低故障发生。
企业云监控集成资源目录,可以在共享服务账号中开启企业云监控,配置告警联系人。查看各业务账号内云资源监控大屏。无需切换登录到各业务账号中单独配置与查看告警事件。
产品费用及名词
产品费用
主要产品及费用说明如下:
产品名称 |
产品说明 |
产品费用 |
资源目录 |
资源目录RD(Resource Directory)是阿里云面向企业客户提供的一套多级账号和资源关系管理服务。 |
免费,详情参见产品定价。 |
云治理中心 |
云治理中心是企业在阿里云上进行多账号集中IT治理的平台。通过步骤式向导和自动化流程帮助企业快速搭建Landing Zone,建立安全合规的多账号环境,并对企业在云上的多账号环境进行持续治理。 |
免费,详情参见产品计费。 |
访问控制RAM |
访问控制RAM(Resource Access Management)是阿里云提供的管理用户身份与资源访问权限的服务 |
免费。 |
操作审计 |
操作审计(ActionTrail)帮助您监控并记录阿里云账号的活动,包括通过阿里云控制台、OpenAPI、开发者工具对云上产品和服务的访问和使用行为。 |
免费,详情参见产品计费。 |
配置审计 |
配置审计(Config)是阿里云上的配置管理和IT治理服务。 |
免费,详情参见产品计费。 |
标签 |
标签(Tag)是云资源的标识,可以帮助您从不同维度对具有相同特征的云资源进行分类、搜索和聚合,让资源管理变得更加轻松。 |
免费,详情参见产品定价。 |
企业财务 |
企业财务:企业将多个账号关联到一起,以企业全视角统筹规划云上费用,对关联账号的资金、发票、账单集中化管理,完成费用代付、统一结算、统一发票、统一账单、统一分账、费用分析等业务,并通过用量共享、优惠共享等方式优化企业费用。 |
免费,详情参见功能介绍。 |
专有网络VPC |
专有网络VPC(Virtual Private Cloud)是您专有的云上私有网络。 |
免费,详情参见产品计费。 |
云企业网CEN |
云企业网CEN(Cloud Enterprise Network)是运行在阿里云私有全球网络上的一张高可用网络。云企业网通过转发路由器TR(Transit Router)帮助您在跨地域专有网络之间,专有网络与本地数据中心间搭建私网通信通道,为您打造一张灵活、可靠、大规模的企业级云上网络。 |
收费,详情参见产品计费。 |
弹性公网IP |
弹性公网IP(Elastic IP Address,简称EIP)是可以独立购买和持有的公网IP地址资源。 |
收费,详情参见产品计费。 |
NAT网关 |
NAT网关(NAT Gateway)是一种网络地址转换服务,提供NAT代理(SNAT和DNAT)能力。 |
收费,详情参见产品计费。 |
负载均衡 |
负载均衡SLB(Server Load Balancer)是一种对流量进行按需分发的服务,提升应用系统的可用性。产品包括应用型负载均衡ALB及传统型负载均衡CLB。 |
|
日志服务SLS |
日志服务SLS是云原生观测与分析平台,为Log、Metric、Trace等数据提供大规模、低成本、实时的平台化服务。 |
收费,详情参见产品计费。 |
对象存储服务OSS |
对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。 |
收费,详情参见产品计费。 |
云服务器ECS |
云服务器ECS(Elastic Compute Service)是一种简单高效、处理能力可弹性伸缩的计算服务。 |
收费,详情参见产品计费。 |
云防火墙 |
阿里云云防火墙是一款云原生的云上边界网络安全防护产品,可提供统一的互联网边界、内网VPC边界、主机边界流量管控与安全防护等。 |
收费,详情参见产品计费。 |
云安全中心 |
云安全中心作为一个实时识别、分析和预警安全威胁的统一安全管理系统,为您提供安全态势总览、防勒索、防病毒、防篡改、合规检查等安全能力,全方位检测和防护您的服务器和Web应用安全。 |
收费,详情参见产品计费。 |
DDoS防护 |
针对DDoS攻击的防护,阿里云提供多种安全解决方案,您可以根据实际业务场景和安全需求选择最合适的方案,详情参见DDoS防护概述。 |
收费,详情参见产品计费。 |
WAF |
Web应用防火墙(Web Application Firewall,简称WAF)为您的网站或App业务提供一站式安全防护。 |
收费,详情参见产品计费。 |
名词解释
产品名称 |
产品说明 |
企业管理账号 |
在企业拥有多个阿里云账号时,特指拥有管理其他账号资源权限的管理员账号。用于管理多账号,统一配置多账号身份权限,统一查看各云账号账单,统一配置审计规则并下发到各成员账号。 |
资源账号 |
在资源目录中创建的成员默认为资源账号。 |
注意事项
关联产品计费
部分云产品自身是免费的,但使用时可能会涉及到其它收费云产品的开通,例如某些管控类云产品自身免费,但收集的日志如果要长期保存需要投递到SLS、OSS等收费的存储类云产品。相关产品的收费详情请参考具体云产品计费介绍。
云产品使用限制
云产品存在一些支持范围等使用限制,主要产品限制列举如下:
- 资源目录在成员账号数量、资源夹深度等方面有所限制,情参见使用限制。使用管控策略注意时查看云服务支持情况及其它限制,详情参见管控策略概述。
- 标签服务已经支持一系列核心基础设施,例如:云服务器ECS、 云数据库RDS、对象存储OSS、专有网络VPC、负载均衡和容器服务Kubernetes版等。在此基础上,标签服务也在不断扩展对其他云服务的支持。更多信息,请参见支持标签的云服务。标签其它使用限制详情参见使用限制。
- 配置审计服务已支持一系列核心基础设施,例如:云服务器ECS、 云数据库RDS、对象存储OSS、专有网络VPC、负载均衡和容器服务Kubernetes版等。在此基础上,配置审计也在不断扩展对其他云服务的支持。更多信息,请参见支持配置审计的云服务。配置审计目前为免费产品,但不排除未来企业需要为存储在配置审计中的资源快照付费。
- 操作审计只支持创建一个多账号个跟踪,详情参见使用限制,支持的云服务详情参见支持的云服务。
- 日志服务SLS使用限制详情参见产品限制。
- 使用企业财务时请先查阅开通协议。
- 云防火墙限制详情参见使用限制,只有旗舰版支持多账号管理,版本对比详情参见功能特性。
- 云安全中心限制详情参见使用限制,检测范围详情参见范围说明。
- 专有网络VPC限制详情参见限制与配额及VPC支持的地域信息。
- CEN中跨地域连接需要购买带宽包,详情参见使用带宽包。转发路由器TR连接实例等配额限制详情参见使用限制。
- 资源组限制详情参见资源组使用限制,云服务支持情况详情参见支持资源组的云服务。
实施步骤
实施准备
- 请先完成企业问卷调研,拿到一份基础信息作为后续的执行入参。
- 申请阿里云账号、完成企业实名认证,该账号将作为企业管理账号MA(Management Account)。
- 在企业管理账号中创建云管理员RAM用户CloudAdmin,仅允许控制台访问并授予管理员权限AdministratorAccess;创建RAM用户ProgrammaticUser,生成AccessKey并妥善保存,仅允许API访问,并授予资源目录管理权限 AliyunResourceDirectoryFullAccess和角色扮演权限AliyunSTSAssumeRoleAccess,如何授权请参见为RAM用户授权。
- 使用RAM用户CloudAdmin登录控制台,完成云治理中心的开通,详情参见开通云治理中心。
实施规划
假设某X公司,其调研数据如下:
入参 |
格式 |
输入 |
企业业务团队名称分别是什么? |
ArrayList<String> |
['scm', 'ctms'] |
业务部署的Region? |
String |
cn-shanghai |
企业DMZ VPC的网段?例如10.0.0.0/16 |
String |
10.0.0.0/16 |
企业OPS VPC的网段?例如10.1.0.0/16 |
String |
10.1.0.0/16 |
企业共享服务VPC的网段?例如10.2.0.0/16 |
String |
10.2.0.0/16 |
企业开发VPC的网段?例如10.3.0.0/16 |
String |
10.3.0.0/16 |
企业测试VPC的网段?例如10.4.0.0/16 |
String |
10.4.0.0/16 |
企业生产VPC的网段?例如10.5.0.0/16 |
String |
10.5.0.0/16 |
企业外连区VPC的网段?例如10.6.0.0/16 |
String |
10.6.0.0/16 |
基于跟客户的调研输入,本次实施将完成X公司 Landing Zone for GxP 大部分基础环境搭建,帮助客户构建一个安全合规、可管理、可扩展的上云登录区。包括多账号架构搭建、财务关联关系、基础网络、安全防护、合规审计、身份权限等部署内容。关键部署说明如下:
- 使用云治理中心完成基础的多账号架构搭建,云治理中心会引导用户进行操作,与资源目录、财务、操作审计、配置审计等云产品协同,完成账号搭建、财务托管关系、审计日志投递到SLS及OSS等。
- 使用自动化代码Terraform完成在多账号场景下自动化组网,在单Region下隔离生产VPC和非生产VPC,基于双可用区原则部署vSwitch,使用CEN-TR完成VPC间互通等云上网络组网。
- 使用自动化代码完成在多账号场景下为X公司推荐合规包的规则启用示例。
- 使用自动化代码在多账号内完成RAM用户及角色创建,并完成相应授权。
- 使用自动化代码完成双可用区应用架构部署、部分安全产品的开通及防护。
部署清单
涉及部署地域为在上海(cn-shanghai)Region,双可用区为F区(cn-shanghai-f)和G区(cn-shanghai-g)。部署内容及详细说明如下:
板块 |
部署账号 |
部署内容 |
网络规划 |
网络账号 |
|
开发账号 |
|
|
测试账号 |
|
|
生产账号 |
|
|
共享服务账号 |
|
|
安全 |
安全账号 |
开通DDoS服务,并进行配置。 |
合规审计 |
企业管理账号 |
|
日志账号 |
开通SLS及OSS服务,并进行配置及操作日志存储 |
实施时长
在实施准备工作完成的情况下,本方案实施预计时长:120分钟。
操作步骤
1. 资源结构及财务关系初始化(云治理中心)
1.1. 蓝图搭建
在MA账号中,使用RAM用户CloudAdmin账号登录云治理中心进行操作,更多操作详情参见资源结构初始化。
- 登录云治理中心控制台。
- 在Landing Zone搭建页面,选择标准蓝图,单击搭建。
1.2. 创建资源夹
创建Core和Applications资源夹
- 在创建资源夹页面,使用当前默认资源夹:Applications和Core。
- 单击配置下一项。
1.3. 创建核心账号
设置默认财务管理方式为财务托管,并指定财务托管账号,创建核心账号
- 在创建核心账号页面,选择默认财务管理方式为财务托管。
- 指定已有账号为财务托管账号。
- 启用共享服务账号。
- 启用安全账号。
- 单击配置下一项。
1.4. 防护规则
保障 Landing Zone 架构安全和稳定
- 勾选 Landing Zone 必选规则。
- 单击配置下一项。
1.5. 云SSO
配置云sso
- 填入云sso目录名称,需全局唯一。
- 单击配置下一项。
1.6. 操作审计日志投递
- 在操作审计统一日志投递页面,打开目标投递方式的开关,然后配置投递参数。
- 最后单击预览配置。
- 确认无误后单击开始执行。
1.7. 查看资源目录及账号结构
步骤:
- 登录云治理中心控制台。
- 在左侧导航栏,单击账号结构。
- 在账号结构概览区域,查看账号结构的以下概览信息。
- 初始化任务完成状态:展示初始化任务的状态。对于未完成项、异常项或变更项,提醒您去处理。
- 资源夹数量:展示资源目录中的资源夹数量。
- 云账号数量:展示资源目录中的云账号类型的成员数量。
- 资源账号数量:展示资源目录中的资源账号类型的成员数量。
- 单击账号结构页签,查看资源目录的资源夹及成员账号信息。
- 单击账号列表页签,查看资源目录内的成员账号列表信息。
说明:可以看到有2个文件夹已经创建完成,有3个账号已创建完成
2. 审计日志投递(云治理中心)
云治理中心可以将资源目录中所有成员的操作审计日志和配置审计日志统一投递到指定日志账号下的对象存储OSS或日志服务SLS,方便专职审计人员查询和分析审计日志。
投递日志到对象存储OSS或日志服务SLS,将产生一定的存储费用,请提前了解费用信息,更多费用信息请参见什么是对象存储OSS或什么是日志服务。更多操作步骤信息详情参见统一投递审计日志。
2.1. 日志投递初始化
- 登录云治理中心控制台。
- 在左侧导航栏,单击审计日志投递。
- 在审计日志投递初始化任务页面,打开目标投递方式的开关,然后配置投递参数,最后单击下一步。配置审计日志和操作审计日志的投递方式如下表所示,您可以同时配置多种投递方式。
云服务 |
投递内容 |
投递方式 |
手动配置 |
自动配置 |
配置审计 |
资源变更数据和资源不合规事件 |
投递到对象存储OSS的存储空间 |
您需要指定以下配置项: 地域:OSS存储空间所属的地域,默认与云治理中心开通地域一致。 存储空间名称:可修改,默认为landingzone-config-xxx。 |
云治理中心会自动创建名为enterprise的全局账号组,在账号组中集中管理资源目录所有成员的资源、合规包和规则。 |
投递到日志服务SLS日志项目下的日志库 |
您需要指定以下配置项: 地域:SLS日志项目所属的地域,默认与云治理中心开通地域一致。 日志项目名称:默认为landingzone-config-xxxx。 |
|||
操作审计 |
操作事件 |
投递到对象存储OSS的存储空间 |
您需要指定以下配置项: 地域:OSS存储空间所属的地域,默认与云治理中心开通地域一致。 存储空间名称:默认为landingzone-actiontrail-xxxx。 |
云治理中心会自动创建名为landingzone-enterprise的多账号跟踪,跟踪全部地域的全部类型事件。 |
投递到日志服务SLS日志项目下的日志库 |
您需要指定以下配置项: 地域:SLS日志项目所属的地域,默认与云治理中心开通地域一致。 日志项目名称:默认为landingzone-actiontrail-xxxx。 |
说明 云治理中心会默认将审计日志投递到资源结构初始化中创建的日志账号,例如:LogArchive。如果您在执行初始化任务之前已经在配置审计或操作审计中配置了日志投递的目标账号,且该目标账号不是日志账号,则初始化任务执行时,云治理中心会自动检测并提示该情况。届时,建议您单击更改账号,将日志投递的目标账号修改为日志账号。
配置完成后,可以在审计日志投递概览区域,查看初始化任务的完成情况。
2.2. 修改日志投递方式和配置参数(可选)
日志投递初始化任务完成以后,可以修改投递方式和配置参数,包括打开或关闭投递方式开关、修改OSS存储空间或修改SLS日志空间等。
- 在左侧导航栏,选择管理与治理 > 合规审计 > 审计日志投递。
- 在日志投递区域,单击目标投递方式右侧的编辑。
- 修改投递方式和配置参数,然后单击确定。
3. 标签管理(控制台)
3.1. 启用创建者标签
- 登录资源管理
- 在左侧导航栏选择标签,点击创建者标签
- 在创建者标签页点击“启用创建者标签”
3.2. 设置标签策略
3.2.1. 启用标签策略
- 使用企业管理账号登录标签控制台。
- 在左侧导航栏,选择标签策略 > 策略库。
- 在策略库页面,单击启用标签策略。
- 在启用标签策略对话框,单击确定。启用标签策略时,会自动创建一个服务关联角色(AliyunServiceRoleForTag)解决跨服务访问问题。更多信息,请参见标签策略服务关联角色。
3.2.2. 创建标签策略
您可以创建标签策略,通过配置策略内容,限定资源上必须绑定的标签,确保资源绑定合规的标签。
- 在左侧导航栏,选择标签策略 > 策略库。
- 在策略库页面的策略列表页签,单击创建标签策略。
- 在创建标签策略页面,配置策略内容。
- 输入策略名称。
- 可选:输入策略描述。
- 配置策略信息。以下两种配置方式,您可以任选其一:
- 快速录入(推荐)您可以先指定标签键,然后为该标签键配置下表所示的规则,支持同时配置多个规则。单击添加标签键,可以继续添加标签键并配置规则。
- 为此标签键指定允许值:支持通配符星号(*),表示允许任意标签值。
- 强制执行:本示例不启用。强行制止不合规的标签行为,即如果标签操作不符合规范,操作将会失败。您需要指定强制执行的资源类型。支持强制执行的云服务和资源类型,请参见支持强制标签的云服务。具体示例,请参见使用标签策略实现强制标签。
- 启用自动修复:对不合规资源的标签进行自动修复。您需要指定合规标签值和执行自动修复的资源范围。目前只支持通过标签指定资源范围。
- 单击创建。
说明 强制标签功能目前处于邀测阶段,请先联系阿里云的服务经理,申请体验资格后才能进行试用。
3.2.3. 绑定标签策略
当您成功创建标签策略后,您还需要将标签策略绑定到目标账号,才能对目标账号中的资源进行标签规范化管控。
- 在左侧导航栏,选择标签策略 > 策略库。
- 在策略库页面,单击策略列表页签。
- 单击目标标签策略操作列的绑定。
- 在绑定对话框,选择绑定目标,本示例选择绑定子公司账号的父资源夹。然后单击确定。各绑定目标的生效范围如下:
说明 标签策略不能绑定到资源目录的管理账号,即标签策略对管理账号不生效。
- Root资源夹:标签策略对整个资源目录中的全部成员生效。
- 指定资源夹:标签策略仅对指定资源夹中的全部成员生效。
- 指定成员:标签策略仅对指定成员生效。
3.2.4. 查看检测结果
- 登录标签控制台。
- 在左侧导航栏,选择标签策略 > 检测结果 。
- 在检测结果页面,查看不合规资源的检测结果。您可以单击账号名称,查看资源数量、不合规的资源数量、不合规资源占比和不合规资源列表等。
- 在不合规报告区域,生成并下载不合规资源的检测报告。
- 单击生成新报告。
- 等待报告生成后,单击下载已生成的报告,下载Excel格式的不合规资源的检测报告。
4. 运维管理(控制台)
4.1. 一键报警
- 登录云监控控制台。
- 在左侧导航栏,选择报警服务 > 一键报警。
- 在一键报警列表页面,单击目标云产品的一键报警开关,开启一键报警。
- 单击目标云产品的
,查看云监控提供的报警规则。
自动化部署
基础的多账号环境搭建及日志投递参考云治理中心,方案的其他模块通过Terraform代码来部署。
自动化部署环境初始化
完成多账号资源结构初始化等上述步骤后,使用实施准备中要求的服务器环境继续操作步骤,接下来将使用Shell + Terraform + Python代码继续部署。
说明:下述配置步骤中未标记为必须的步骤都提供了默认值,仅用于支持测试场景下的一键部署,所有配置仍建议仔细填写及校验。
1、 部署环境准备(必须)
执行下述命令完成部署所需Python运行环境初始化。
pip3 install alibabacloud_tea_openapi
pip3 install alibabacloud_cbn20170912==1.0.17
pip3 install alibabacloud_tag20180828==1.0.4
pip3 install alibabacloud_tea_console
pip3 install alibabacloud_darabonba_env
pip3 install alibabacloud_sts20150401
其中aliyun provider 版本:v1.205.0
2、获取部署代码(必须)
联系阿里云工程师团队获取部署源代码,将代码拉取到准备好的服务器中,代码结构可参见相应说明。
3、配置环境变量(必须)
添加AccessKey配置。在已准备好的服务器中执行Shell命令添加环境变量,将实施准备中生成的AccessKey添加到环境变量中。
export ALICLOUD_ACCESS_KEY="yourAccessKeyId"
export ALICLOUD_SECRET_KEY="yourAccessKeySecret"
4、配置已有账号资源信息(必须)
在下载的代码中打开solution/automation/light-landingzone/settings.tfvars
,对已创建的账号及资源夹配置进行编辑,资源夹ID及成员账号UID可在资源目录控制台进行查看。
云治理中心默认会创建日志、安全、共享账号。此方案中再扩展出网络账号、CTMS开发、测试、生产账号,SCM开发、测试、生产账号。
# Account information 通过云治理中心搭建出来的账号结构
# 企业管理账号UID
management_account_id = "1140xxxx7592"
# 财务主账号UID
payer_account_id = "1140xxxx7592"
# 日志账号UID
log_account_id = "1048xxxx7656"
# 共享服务账号UID
shared_service_account_id = "1862xxxx4635"
# 安全账号UID
security_account_id = "1637xxxxx865"
# 资源目录Core资源夹ID
core_folder_id = "fd-xxxxcMA"
# 资源目录Applications资源夹ID
applications_folder_id = "fd-xxxxw6j"
5、配置待创建账号(必须)
根据实际情况编辑要生成的资源目录成员账号信息,包括网络账号、CTMS和SCM资源夹,CTMS开发、测试、生产账号,SCM开发、测试、生产账号。自动化代码执行时将创建相应账号。
# 新创建的账号: 网络账号、开发环境账号、UAT环境账号、生产环境账号
network_display_name = "网络账号"
network_account_name_prefix = "network"
applications_sub_folders = ["CTMS", "SCM"]
dev_display_name = "开发账号"
dev_account_name_prefix = "dev"
uat_display_name = "UAT账号"
uat_account_name_prefix = "uat"
prod_display_name = "生产账号"
prod_account_name_prefix = "prod"
6、编辑云SSO创建一个新用户
通过云治理中心会初始化云SSO环境,包括开通云SSO目录、初始化角色。这一步自动化代码会在云SSO中创建一个用户,用于后续管理云SSO。
# CloudSSO Identity
cloudsso_directory_name = "xx"
cloudsso_user = [
{
user_name = ""
display_name = ""
email = "@"
first_name = ""
last_name = ""
}
]
注意!自动化创建出来的新用户,是需要管理员在云SSO中重置密码,才能登录。
7、编辑待创建RAM用户及角色信息
通过云治理中心会初始化创建推荐的角色,在MA账号会初始化2个RAM用户,一个是应急管理账号,一个是给企业财务人员查看的管理员账号。同时在这一步自动化代码将为各个账号创建用于程序使用的RAM用户。代码会在目录下自动生成相应的AccessKey文件,请注意妥善保管后删除文件。
# Identity and permissions
ram_user_initial_pwd = "xxx"
management_account_ram_users = [
{
"name" = "Emergency"
"description" = "Emergency user"
"enable_console_login" = true
"enable_api_access" = false
"system_policy" = ["AdministratorAccess"]
},
{
"name" = "BillingAdmin"
"description" = "BillingAdmin user"
"enable_console_login" = true
"enable_api_access" = false
"system_policy" = ["AliyunBSSFullAccess"]
}
]
# Log account programmatic ram.
log_account_ram_users = [
{
"name" = "ProgrammaticReadOnlyUser"
"description" = "Programmatic Read Only User"
"enable_console_login" = false
"enable_api_access" = true
"system_policy" = ["ReadOnlyAccess"]
}, {
"name" = "ProgrammaticUser"
"description" = "Programmatic User"
"enable_console_login" = false
"enable_api_access" = true
"system_policy" = ["AliyunOSSFullAccess", "AliyunLogFullAccess"]
}
]
8、开启创建者标签并配置标签策略
代码里面已经实现了通过API的方式开启创建者标签及标签策略服务。
8.1 配置标签策略
自动化脚本会针对业务账号进行标签检测,默认会配置到Application这层Folder上。标签策略内容参考客户调研表,只会检测特定的标签是否包含有特定的值。
# TagPolicy
tag_policy = {
policy_name = "healrhcare-tag-policy"
policy_desc = "healrhcare-tag-policy"
user_type = "RD"
}
policy_content = <
9、配置审计合规包
按内置的GxP合规包模板及其对应规则批量启用合规规则,需要整理规则配置到settings.tfvars
,自动化代码会在配置审计的全局账号组(由云治理中心创建的enterprise账号组)中自动启用相应合规规则。
启用更多合规包请参考settings.tfvars
中已有的配置及扩展步骤描述。
# GxP Compliance
config_compliance_packs = [
{
config_compliance_pack_name = "GxP欧盟附录11标准合规包"
config_compliance_pack_description = "在制药、生物技术和医疗器械领域中使用计算机化系统的企业和组织,在用云过程需要满足GxP欧盟标准。本合规包模板供了标准细则与阿里云的产品设置的对应关系。"
config_compliance_pack_template_id = "ct-484cff4e06a300621b7d"
config_compliance_pack_risk_level = 1
config_compliance_rules = [
...
]
}
]
10、配置网络
部署清单:
账号 |
部署资源 |
CTMS开发环境账号 |
1个VPC 2个vswitch ECS、ALB、EIP |
CTMS测试环境账号 |
1个VPC 2个vswitch ECS、ALB、EIP |
CTMS生产环境账号 |
1个VPC 2个vswitch ECS、ALB、EIP |
网络账号 |
CEN 2个VPC 2个vswitch Public NAT |
共享服务账号 |
2个VPC 4个vswitch 1个堡垒机 |
自动化代码将在生产、测试账号、共享服务账号、网络账号内创建VPC、VSwitch、CEN等,通过CEN-TR进行组网,在各账号的VPC中创建NAT网关及EIP等构建公网出口。
本步骤需要在settings.tfvars中编辑网络配置,包括CEN名称、描述、标签等,VPC名称、网段、Region标签等,VPC相关配置包括共享服务账号、开发测试账号、生产账号等,请根据配置文件中的定义进行编辑。
# Network configuration.
cen_instance_name = "Terraform-CEN"
cen_instance_desc = "Created by Terraform"
cen_instance_tags = {
"Environment" = "network"
"Department" = "network"
}
# contains VSwitch for business and VSwitch for transit router
dmz_vpc_config = {
"region" = "cn-shanghai"
"vpc_name" = "DMZ vpc"
"vpc_desc" = "DMZ VPC"
"vpc_cidr" = "10.0.0.0/16"
"vpc_tags" = {
"Environment" = "dmz"
"Department" = "network"
}
"vswitch" = [
{
"vswitch_name" = "vsw-dmz-sh-f-1"
"vswitch_desc" = "vsw-dmz-sh-f-1"
"vswitch_cidr" = "10.0.0.0/24"
"zone_id" = "cn-shanghai-f"
"vswitch_tags" = {
"Environment" = "dmz"
"Department" = "network"
}
}, {
"vswitch_name" = "vsw-dmz-sh-g-1"
"vswitch_desc" = "vsw-dmz-sh-g-1"
"vswitch_cidr" = "10.0.1.0/24"
"zone_id" = "cn-shanghai-g"
"vswitch_tags" = {
"Environment" = "dmz"
"Department" = "network"
}
}
]
}
ops_vpc_config = {
"region" = "cn-shanghai"
"vpc_name" = "Ops vpc"
"vpc_desc" = "Ops vpc"
"vpc_cidr" = "10.1.0.0/16"
"vpc_tags" = {
"Environment" = "ops"
"Department" = "shared"
}
"vswitch" = [
{
"vswitch_name" = "vsw-ops-sh-f-1"
"vswitch_desc" = "vsw-ops-sh-f-1"
"vswitch_cidr" = "10.1.0.0/24"
"zone_id" = "cn-shanghai-f"
"vswitch_tags" = {
"Environment" = "ops"
"Department" = "shared"
}
},
{
"vswitch_name" = "vsw-ops-sh-g-1"
"vswitch_desc" = "vsw-ops-sh-g-1"
"vswitch_cidr" = "10.1.1.0/24"
"zone_id" = "cn-shanghai-g"
"vswitch_tags" = {
"Environment" = "ops"
"Department" = "shared"
}
}
]
}
shared_service_vpc_config = {
"region" = "cn-shanghai"
"vpc_name" = "Shared Servcice vpc"
"vpc_desc" = "Shared Servcice vpc"
"vpc_cidr" = "10.2.0.0/16"
"vpc_tags" = {
"Environment" = "shared"
"Department" = "shared"
}
"vswitch" = [
{
"vswitch_name" = "vsw-share-sh-f-1"
"vswitch_desc" = "vsw-share-sh-f-1"
"vswitch_cidr" = "10.2.0.0/24"
"zone_id" = "cn-shanghai-f"
"vswitch_tags" = {
"Environment" = "shared"
"Department" = "shared"
}
}, {
"vswitch_name" = "vsw-share-sh-g-1"
"vswitch_desc" = "vsw-share-sh-g-1"
"vswitch_cidr" = "10.2.1.0/24"
"zone_id" = "cn-shanghai-g"
"vswitch_tags" = {
"Environment" = "shared"
"Department" = "shared"
}
}
]
}
ctms_dev_vpc_config = {
...
}
ctms_uat_vpc_config = {
...
}
ctms_prod_vpc_config = {
...
}
11、配置ECS、ALB部署信息
代码默认将在开发、测试、生产环境账号的VPC中创建双可用区的应用架构,每个应用架构中会创建一个双可用区公网ALB实例,ALB后端挂载双可用区的两台ECS,并创建相应的安全组和默认规则,可按需修改settings.tfvars
中相关配置。相关参数可参考ECS实例、ALB实例Terraform文档。
# ECS & ALB
security_group_name = "sg-lz-tf"
security_group_desc = "sg-lz-tf"
ecs_instance_password = "xxxx"
ctms_dev_vpc_ecs_instance_deploy_config = [
{
instance_name = "ecs-ctms-dev-sh-1"
host_name = "ecs-ctms-dev-sh-1"
description = "ecs-ctms-dev-sh-1"
}, {
instance_name = "ecs-ctms-dev-sh-2"
host_name = "ecs-ctms-dev-sh-2"
description = "ecs-ctms-dev-sh-2"
}
]
ctms_uat_vpc_ecs_instance_deploy_config = [
{
instance_name = "ecs-ctms-uat-sh-1"
host_name = "ecs-ctms-uat-sh-1"
description = "ecs-ctms-uat-sh-1"
}, {
instance_name = "ecs-ctms-uat-sh-2"
host_name = "ecs-ctms-uat-sh-2"
description = "ecs-ctms-uat-sh-2"
}
]
ctms_prod_vpc_ecs_instance_deploy_config = [
{
instance_name = "ecs-ctms-prod-sh-1"
host_name = "ecs-ctms-prod-sh-1"
description = "ecs-ctms-prod-sh-1"
}, {
instance_name = "ecs-ctms-prod-sh-2"
host_name = "ecs-ctms-prod-sh-2"
description = "ecs-ctms-prod-sh-2"
}
]
# ECS instance spec
ecs_instance_spec = {
...
}
# ALB instance info
ctms_dev_vpc_alb_instance_name = "alb-ctms-dev-default"
ctms_uat_vpc_alb_instance_name = "alb-ctms-uat-default"
ctms_prod_vpc_alb_instance_name = "alb-ctms-prod-default"
# ALB instance spec
alb_instance_spec = {
...
}
# ALB listener
alb_listener_description = "createdByTerraform"
# ALB server group
server_group_config = {
...
}
# security group
security_group_rule = [
{
type = "ingress"
ip_protocol = "tcp"
nic_type = "intranet"
policy = "accept"
port_range = "80/80"
priority = 1
cidr_ip = "0.0.0.0/0"
},
...
]
部署验证
1、查看新建账号信息
在企业管理账号资源目录控制台可查看新建账号信息。
2、查看财务关联信息
在企业管理账号企业财务-财务关联查看已建立财务托管关系。
4、查看应用账号内资源组
登录到生产、测试、开发环境查看资源组
5、查看标签策略
登录资源管理账号(MA)查看标签策略情况
6、查看审计日志投递
在企业管理账号配置审计控制台和操作审计控制台查看配置及事件投递信息。
7、查看合规包
可以在配置审计控制台查看合规包下账号组的合规规则启用情况及检测结果。
8、查看网络部署情况
可以在VPC控制台查看VPC、VSwitch、路由表、NAT等部署结果,在云企业网CEN控制台查看CEN及TR部署结果。
9、验证云上内网连通性
按照实施规划中的网络连通说明,登录各账号VPC中的ECS,测试网络连通及隔离是否符合预期。
- 测试、生产和开发VPC之间的ECS是不通的。
- 运维、共享服务VPC里面的主机与测试、生产、开发VPC是相通的。
10、验证访问公网连通性
按照实施规划中的公网连通说明,登录各账号VPC中的ECS,测试与公网连通是否符合预期。
登录应用账号的ECS,验证其出口:
可以看到应用账号的ECS出口是网络账号配置的NAT 对应的EIP地址。
11、验证通过ALB访问HTTP服务
- 登录应用账号中创建的ECS,使用下述命令快速启动HTTP服务,能够收到ALB健康检查请求。
mkdir tf-test && cd tf-test && touch hello_landing_zone
python3 -m http.server 80
- 在ALB控制台获取DNS名称。
- 发起Http访问验证,
curl alb-xxx.cn-shanghai.alb.aliyuncs.com
能够正常获取ECS返回结果。