首页 Light Landing Zone方案

Light Landing Zone方案

更新时间: 2024-04-02 14:11:56

定义一套轻量级的解决方案。这个方案里面会把很多参数按照我们的原则固定下来。仅提供少量可选参数

方案概述

阿里云已经发布云采用框架(Cloud Adoption Framework,简称CAF)为企业上云提供策略和技术的指导原则和最佳实践,帮助企业上好云、用好云、管好云,并成功实现业务目标。云采用框架是基于服务大量企业客户的经验总结,将企业云采用分为四个阶段,并详细探讨企业应在每个阶段采取的业务和技术策略;同时,还提供了一系列最佳实践、文档和辅助工具,帮助云架构师、云管理团队等干系人能够实现组织协同达成目标。云上Landing Zone是CAF的重要组成部分,通过顶层设计和一系列基础框架的落地,帮助企业为后续的业务上云扫清障碍。

本解决方案由阿里云开放平台解决方案团队发布,针对多账号快速构建符合安全规范,架构完善的运行环境。在此方案中我们会提供多账号的设计,资源管理,身份权限,网络最佳实践,安全合规基线等方面的规范设计。提供一套可落地的产品化落地指导手册,可以在两周内利用云原生技术与自动化能力,快速搭建一个安全合规的上云登录区。

方案优势

构建安全合规、易管理、可扩展的上云登陆区

Light Landing Zone包含资源规划、财务管理、网络规划、安全防护、合规审计、身份权限、运维管理、自动化八大板块,能够体系化的帮助客户构建企业级的管理和治理框架作为云环境的基础设施。方案遵循信息安全标准和云治理最佳实践,帮助客户满足安全合规的基本要求,构建安全合规、易管理、可扩展的上云登录区,为企业上云打好基础,为企业业务提供高效安全的用云环境。

帮助企业平稳登陆阿里云

我们建议企业在第一个应用登陆阿里云之前,需要有一整套顶层设计和一系列基础框架(Landing Zone),为后续的业务上云扫清障碍。否则,可能会导致后续业务上云面临成本、网络、安全、效率等多方面的问题。本方案体系化的介绍了一套轻量级Landing Zone方案架构,使客户对Light Landing Zone的设计和实施有更深入认知,帮助企业推进云上数字化转型、平稳登陆阿里云。

客户场景

对安全合规及治理有需求的新客

场景描述

新上云客户,或者计划从IDC,其他云厂商将业务迁移到阿里云,且对云上安全合规、治理有诉求的客户。

适用客户

  • 新上云、业务搬站上云的新客户。
  • 对安全合规及日常云治理有需求。

方案架构

架构设计原则

原则一:缩小风险爆炸半径

当某个资源出现安全风险,将影响面尽可能圈定在较小范围内。如:在资源隔离上至少要将生产、非生产环境的资源进行物理隔离。这样当非生产环境内的资源出现安全风险时,不至于影响到生产环境。在权限设计上,尽可能将满足最小授权。

原则二:满足卓越架构规范

阿里云已经发布云卓越架构规范白皮书(aliyun well-architected framework)。在架构设计需要充分考虑安全合规、稳定性、成本最优。以网络规划为例,在方案中,我们推荐要使用多可用区来部署您的业务,来提升站点稳定性;也会推荐最基础的安全合规基线,帮助您识别安全风险。

原则三:遵循自动化优先

相较于传统的IDC运维来讲,云上的运维模式发生了较大的变化。其中最重要的一点就是任何资源的管理都可以通过API可编程的方式来管理。这样可以极大地提升运维自动化效率。如在此方案中,整个Landing zone的环境就是能够可编程的方式来实现。

多账号部署架构图

以下按照LandingZone的8大模块分别讲解各个模块的最佳实践。

资源规划

账号设计

账号规划及职能说明如下:

  • 企业管理账号:用于多账号管理,在该账号中启用资源目录并构建账号树,具备统一设置审计、管控策略等规则并下发到各成员账号等管理职能。在此方案中建议将该账号作为财务主账号,与其它账号建立财务关联关系后对企业财务进行统一管理。
  • 安全账号:给企业的安全角色使用,用于配置相关安全产品,如Web应用防火墙(WAF)、云防火墙等。
  • 日志账号:聚合所有成员账号的日志,便于统一收集、统一管理。
  • 运维账号:部署运维相关工具,如堡垒机、统一监控平台、CMP、CMDB等。
  • 共享服务账号:用于部署企业网络资源,如云企业网CEN实例、VBR实例等。
  • 业务账号:业务功能账号,用于部署业务应用,如生产环境账号、测试环境账号等。
账号扩展建议
  • 在企业管理账号中使用资源目录构建账号树,将其它账号作为成员账号纳入资源目录进行多账号统一管理。
  • 基础管控类账号放置到Core资源夹下,业务账号放置到Applications资源夹下。
  • 业务账号按业务组织单元进行划分,体现企业组织架构及管理方式,常见的组织单元划分如分公司、部门、产品等,对不同业务单元进行隔离。
  • 账号下可使用不同资源组对应用资源进行隔离。
  • 大数据业务集中放置到大数据账号,归属大数据资源夹。
  • 外购资源夹用于放置供应商账号,根据实际情况选择是否需要,对供应商账号可以实施管控策略等基线进行操作限制。

多账号财务管理

参考多账号的设计,不同账号内的成本需要统一管理。在此方案中我们推荐采用财务托管来管理不同账号的统一结算关系。

财务托管关系

财务主账号可与财务子账号间建立财务托管财务关联关系。相关财务上的能力可以参考下表:

属性

财务托管

信控

子账号无阿里云信控,子账号申请了信控也用不到。

额度管理

因为子账号都是用主账号的信控,主账号是管不了各个子账号花多少钱,但不会超过主账号的总信控。

折扣

使用主账户的优惠和折扣。

结算关系

主账号跟阿里云结算,子账号不能跟阿里云结算。

发票关系

阿里云开票给主账号,且支持合并开票即支付多个子账号的订单合并开票。

代金券

子账号不可用自己的代金券,但可以使用主账号的代金券,但无法做到指定特定子账号的代金券。

在此方案中,推荐使用企业管理账号作为财务托管主账号。

财务分账

企业上云用云财务管理面临着很大的挑战与变化,如何讲清楚云上IT成本构成进行成本优化,如何摆脱低效的人工分账,将云上资源成本关联分摊到各个业务都是企业在云上需要面临的问题。本章节为企业介绍多种组织模式下的财务分账方案,包括单账号、多账号的多级分账方案,解决云上IT成本核算、财务分账等问题。

企业可以先按业务部门做多账号规划,从账号层面将账单分隔,再到财务主账号中统一查看各业务部门账单。在账号内部可以通过标签的方式进行多维度分账。

标签分账关键步骤

关键步骤说明如下:

  • 设计财务单元,从部门、项目、业务线等企业财务角度对云资源实例产生的费用用财务单元标识,即可从财务单元的角度查看账单及成本分析,并可以以目录树的形式建立自定义的费用层级结构,达到企业分账的目的。
  • 设计标签体系,标签的设计与打标质量是直接影响财务分账结果,可以在规划阶段设置预置标签便于后续使用。为云资源打上设计好的标签,例如部门标签、项目标签、应用标签,根据标签将不同的账单费用归类到不同的财务单元。
  • 在创建资源的时候就打上标签,便于后续划分到财务单元进行分账。为了便于资源开通溯源,Landing Zone会默认开启创建者标签
  • 对存量资源进行梳理,通过云产品控制台、标签控制台、标签API等对资源进行打标。
  • 事后审计资源打标情况,通过配置审计标签规则标签策略对未打标资源进行预警。标签策略还支持对错误标签进行自动修复。

身份权限

RAM角色登录

企业在云SSO集中管理访问阿里云的用户,通过访问配置和多账号授权,实现用户通过单点登录的方式登录到资源目录成员内的RAM角色,然后访问该RD成员中的云资源。优先以RAM角色登录,适用于支持RAM角色的云服务

角色

描述

Administrator

具有账号内全局管理权限,即管理所有阿里云资源的权限。

Audit

具有账号内全局查看权限,即查看所有阿里云资源的权限。

Iam

具有访问控制管理员权限,负责企业员工在阿里云的身份权限管理。。

Billing

具有查询和管理账单,账户资金管理,发票合同管理等全部财务管理权限。

AuditAdministrator

具有配置审计、操作审计和日志管理的全部权限,同时有权查看所有资源现状。

LogAdministrator

具有日志管理的权限。

LogAudit

具有日志的查看权限。

NetworkAdministrator

具有网络相关服务的所有权限,并有安全组的权限。

SecurityAudit

具有安全产品的查询安全数据的权限,但不可管理安全产品的配置。

SecurityAdministrator

具有所有安全产品的管理权限。

RAM用户登录

企业在云SSO集中管理访问阿里云的用户,通过RAM用户同步,实现用户登录到资源目录成员内的RAM用户,然后访问该RD成员中的云资源。以RAM用户登录适用于不支持RAM角色的云服务

例如部分大数据产品、云效等云服务暂不支持RAM角色访问,此时可以使用云SSO的RAM用户同步功能,该功能支持在资源目录目标成员账号中快速批量创建与云SSO用户同名的RAM用户,将RAM用户加入大数据产品工作空间、加入云效成为其企业成员、关联云服务内部角色后进行访问。

目前对RAM用户的授权需要在目标成员账号中操作建议将某个云SSO用户设置为权限管理员,专门用来为目标RD账号中同步的RAM用户权限。用户可以在云SSO创建访问配置(包含AliyunRAMFullAccess权限),然后为权限管理员在多个目标RD成员账号上部署该访问配置,实现权限管理员可以为目标RD账号中的RAM用户授权。

在自动化创建过程中,Landing Zone会自动化为每个账号创建两个RAM user:应急管理员、程序执行AK。

  • 应急管理员:为了应对安全应急预案,由管理员妥善保存并避免直接使用。
  • 程序执行AK:用于云环境自动化部署,云环境部署完成即可删除。

云上网络规划

参考云卓越架构规范,遵循高可靠的云网络搭建原则。在方案中会考虑分层、多可用区部署。

基于VPC网络基础互联、网络安全域分区、网络安全隔离和访问控制等云上组网核心的诉求,云上网络分区设计原则整体分为以下以下部分

  • 网络分区设计
    • 满足业务规模化发展需求,合理划分VPC和VSW,生产、开发测试、运维管理等独立VPC部署。
    • 满足可靠性和稳定性,建议重要业务系统跨可用区部署,应用网段和数据库网段分开分属不同VSwitch。
    • 满足业务之间的高效调用和交互,关联业务尽可能部署在相同Region。
  • 分区间网络互通
    • 通过采用CEN-TR,打通阿里云上任意Region开通的业务系统,实现全局一张内网。
    • VPC按需加入TR,按需控制不同VPC之间或不同vSW之间的互通关系。
  • 云上业务互联安全设计
    • 公网出入口配置云防火墙管控进出流量(可搭配WAF)。
    • 跨分区通过云企业网(CEN)搭配云防火墙实现策略管控。
    • VPC内配置安全组策略,实现微隔离(可搭配云防火墙,实现策略统一管理)。

合规审计

本方案的核心主旨是指引企业一个可行的路径和手段来实现合规管理,会详细描述如何设置规则、接收不合规告警、设置自动修复从而实现持续合规的系统能力。

在多账号体系中,操作审计和配置审计通过资源目录中心化地对多账号进行合规管控,将操作日志和配置快照归集到统一地址。

建议企业先需要完成合规制度的设计,一般建议企业必须关注的基础合规领域为:账号权限合规、网络安全合规、数据安全合规和业务连续性合规。但在本方案中并不会对具体的合规制度设计做赘述。

在本方案中会推荐开启以下合规包:CIS网络安全框架检查合规包、OSS合规管理最佳实践、资源空闲检测最佳实践、资源稳定性最佳实践、等保三级预检合规包等。如果客户有更多内审方面的需求,也可以扩展更多合规规则。

运维管理

企业面临越来越丰富的云资源,如何高效监控云上资源的健康运行情况,成为IT稳定性保障的关键环节。本方案中介绍如何使用云监控对阿里云多账号场景下,进行统一的监控管理,通过资源目录轻松实现企业跨账号统一监控资源。

产品费用及名词

产品费用

主要产品及费用说明如下:

产品名称

产品说明

产品费用

资源目录

资源目录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

收费,详情参见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公司,其调研数据如下:

入参

格式

输入

公司名简写

String

ali

企业有多少业务团队?

Int

2

企业业务团队名称分别是什么?

ArrayList<String>

['wms', 'tax']

企业所有账号是否统一由集团负责财务管理?

Boolean

true

哪些账号需要独立财务处理

ArrayList<String>

[]

企业内部所有资源是否必须打标

Boolean

true

企业对等保三级预检是否有要求?

Boolean

true

企业对CIS网络安全框架是否有要求?

Boolean

false

企业对OSS合规管理是否有要求?

Boolean

fasle

企业对资源开放公网是否有要求?

Boolean

true

业务部署的Region?

String

shanghai

企业生产VPC的网段?例如10:99:0:0/16

String

10:99:0:0/16

企业测试VPC的网段?例如10:100:0:0/16

String

10:100:0:0/16

是否需要共享服务VPC?

Boolean

false

企业共享服务VPC的网段?例如10:101:0:0/16

String

企业Ops VPC的网段?例如10:102:0:0/16

String

基于跟客户的调研输入,本次实施将完成X公司 Light Landing Zone大部分基础环境搭建,帮助客户构建一个安全合规、可管理、可扩展的上云登录区。包括多账号架构搭建、财务关联关系、基础网络、安全防护、合规审计、身份权限等部署内容。关键部署说明如下:

  • 使用云治理中心完成基础的多账号架构搭建,云治理中心会引导用户进行操作,与资源目录、财务、操作审计、配置审计等云产品协同,完成账号搭建、财务托管关系、审计日志投递到SLS及OSS等。
  • 使用自动化代码Terraform完成在多账号场景下自动化组网,在单Region下隔离生产VPC和非生产VPC,基于双可用区原则部署vSwitch,使用CEN-TR完成VPC间互通等云上网络组网。
  • 使用自动化代码完成在多账号场景下为X公司推荐合规包的规则启用示例。
  • 使用自动化代码在多账号内完成RAM用户及角色创建,并完成相应授权。
  • 使用自动化代码完成双可用区应用架构部署、部分安全产品的开通及防护。

部署清单

涉及部署地域为在上海(cn-shanghai)Region,双可用区为F区(cn-shanghai-f)和G区(cn-shanghai-g)。部署内容及详细说明如下:

板块

部署账号

部署内容

网络规划

共享服务账号

  1. 创建云企业网CEN,开通转发路由器TR服务
  2. 通过云企业网转发路由器CEN-TR进行云上组网,配置网络互通路由
  3. 构建单Region双可用区应用架构

开发测试账号

  1. 构建单Region双可用区应用架构
  2. 进行VPC云企业网跨账号授权
  3. 一共创建开发测试VPC( 1个)、EIP(2个)、VSwitch(8台)、ALB

生产账号

  1. 构建单Region双可用区应用架构
  2. 进行VPC云企业网跨账号授权
  3. 一共创建开发测试VPC( 1个)、EIP(2个)、VSwitch(8台)、ALB

安全

安全账号

开通DDoS服务,并进行配置。

合规审计

企业管理账号

  1. 使用云治理中心完成配置审计及操作审计开通,所有成员账号资源配置及变更数据投递到日志账号中的SLS
  2. 使用云治理中心启用操作审计多账号跟踪,所有成员账号操作日志投递到日志账号中的SLS
  3. 启用内置合规包的自动化代码示例

日志账号

开通SLS及OSS服务,并进行配置及操作日志存储

实施时长

在实施准备工作完成的情况下,本方案实施预计时长:120分钟。

操作步骤

1. 资源结构及财务关系初始化(云治理中心)

1.1. 资源结构初始化

在MA账号中,使用RAM用户CloudAdmin账号登录云治理中心进行操作,更多操作详情参见资源结构初始化

  1. 登录云治理中心控制台
  2. 云治理中心页面,单击开始治理
  3. 欢迎使用云治理中心对话框,单击确定云治理中心会自动创建一个服务关联角色(AliyunServiceRoleForGovernance),允许云治理中心使用该角色访问资源目录等相关云服务。
  4. 确认企业管理账号页面的选择您的企业管理账号区域,选择当前账号继续
  5. 单击当前账号继续

1.2. 创建资源夹

创建Core和Applications资源夹

  1. 创建资源夹页面的Core资源夹待创建区域,单击使用当前同名资源夹:Core
  2. 创建资源夹页面的Application资源夹待创建区域,单击使用当前同名资源夹:Applications
  3. 单击开始创建
  4. 单击下一个任务:指定结算账号

注意:如果当前这个账号已经有RD了并且创建了Core或Application文件夹,那可以选择指定现有资源夹。

1.3. 指定财务结算账号

指定企业财务主账号作为财务结算账号

  1. 指定结算账号页面,选择企业财务主账号
  2. 单击确定
  3. 单击下一个任务:创建账号
1.4. 创建成员账号

创建新的成员账号

  1. 创建账号页面的创建共享服务账号区域,选择创建账号
  2. 创建账号页面的创建日志账号区域,选择创建账号
  3. 单击下一步:指定结算方式
  4. 选择财务结算方式。
  5. 单击确定
  6. 单击完成

说明:系统默认会创建两个核心账号:日志账号、共享服务账号。其他的运维账号、安全账号等后续会使用自动化代码创建。

1.5. 查看资源目录及账号结构

步骤:

  1. 登录云治理中心控制台
  2. 在左侧导航栏,单击账号结构
  3. 账号结构概览区域,查看账号结构的以下概览信息。
    • 初始化任务完成状态:展示初始化任务的状态。对于未完成项、异常项或变更项,提醒您去处理。
    • 资源夹数量:展示资源目录中的资源夹数量。
    • 云账号数量:展示资源目录中的云账号类型的成员数量。
    • 资源账号数量:展示资源目录中的资源账号类型的成员数量。
  1. 单击账号结构页签,查看资源目录的资源夹及成员账号信息。
  2. 单击账号列表页签,查看资源目录内的成员账号列表信息。

说明:可以看到有2个文件夹已经创建完成,有2个账号已创建完成

2. 审计日志投递(云治理中心)

云治理中心可以将资源目录中所有成员的操作审计日志和配置审计日志统一投递到指定日志账号下的对象存储OSS或日志服务SLS,方便专职审计人员查询和分析审计日志。

投递日志到对象存储OSS或日志服务SLS,将产生一定的存储费用,请提前了解费用信息,更多费用信息请参见什么是对象存储OSS什么是日志服务。更多操作步骤信息详情参见统一投递审计日志

2.1. 日志投递初始化
  1. 登录云治理中心控制台
  2. 在左侧导航栏,单击初始化任务
  3. 初始化任务页面,单击审计日志投递初始化任务
  4. 单击开始
  5. 审计日志投递初始化任务页面,打开目标投递方式的开关,然后配置投递参数,最后单击下一步。配置审计日志和操作审计日志的投递方式如下表所示,您可以同时配置多种投递方式。

云服务

投递内容

投递方式

手动配置

自动配置

配置审计

资源变更数据和资源不合规事件

投递到对象存储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日志空间等。

  1. 在左侧导航栏,选择管理与治理 > 合规审计 > 审计日志投递
  2. 日志投递区域,单击目标投递方式右侧的编辑
  3. 修改投递方式和配置参数,然后单击确定

3. 标签管理(控制台)

3.1. 启用创建者标签
  1. 登录资源管理
  2. 在左侧导航栏选择标签,点击创建者标签
  3. 在创建者标签页点击“启用创建者标签”

3.2. 设置标签策略
3.2.1. 启用标签策略
  1. 使用企业管理账号登录标签控制台
  2. 在左侧导航栏,选择标签策略 > 策略库
  3. 策略库页面,单击启用标签策略
  4. 启用标签策略对话框,单击确定启用标签策略时,会自动创建一个服务关联角色(AliyunServiceRoleForTag)解决跨服务访问问题。更多信息,请参见标签策略服务关联角色
3.2.2. 创建标签策略

您可以创建标签策略,通过配置策略内容,限定资源上必须绑定的标签,确保资源绑定合规的标签。

  1. 在左侧导航栏,选择标签策略 > 策略库
  2. 策略库页面的策略列表页签,单击创建标签策略
  3. 创建标签策略页面,配置策略内容。
    1. 输入策略名称。
    2. 可选:输入策略描述。
    3. 配置策略信息。以下两种配置方式,您可以任选其一:
      • 快速录入(推荐)您可以先指定标签键,然后为该标签键配置下表所示的规则,支持同时配置多个规则。单击添加标签键,可以继续添加标签键并配置规则。
      1. 为此标签键指定允许值:支持通配符星号(*),表示允许任意标签值。
      2. 强制执行:本示例不启用。强行制止不合规的标签行为,即如果标签操作不符合规范,操作将会失败。您需要指定强制执行的资源类型。支持强制执行的云服务和资源类型,请参见支持强制标签的云服务。具体示例,请参见使用标签策略实现强制标签。
      3. 启用自动修复:对不合规资源的标签进行自动修复。您需要指定合规标签值和执行自动修复的资源范围。目前只支持通过标签指定资源范围。

  1. 单击创建

说明 强制标签功能目前处于邀测阶段,请先联系阿里云的服务经理,申请体验资格后才能进行试用。

3.2.3. 绑定标签策略

当您成功创建标签策略后,您还需要将标签策略绑定到目标账号,才能对目标账号中的资源进行标签规范化管控。

  1. 在左侧导航栏,选择标签策略 > 策略库
  2. 策略库页面,单击策略列表页签。
  3. 单击目标标签策略操作列的绑定
  4. 绑定对话框,选择绑定目标,本示例选择绑定子公司账号的父资源夹。然后单击确定。各绑定目标的生效范围如下:

说明 标签策略不能绑定到资源目录的管理账号,即标签策略对管理账号不生效。

    • Root资源夹:标签策略对整个资源目录中的全部成员生效。
    • 指定资源夹:标签策略仅对指定资源夹中的全部成员生效。
    • 指定成员:标签策略仅对指定成员生效。
3.2.4. 查看检测结果
  1. 登录标签控制台
  2. 在左侧导航栏,选择标签策略 > 检测结果
  3. 检测结果页面,查看不合规资源的检测结果。您可以单击账号名称,查看资源数量、不合规的资源数量、不合规资源占比和不合规资源列表等。
  4. 不合规报告区域,生成并下载不合规资源的检测报告。
    1. 单击生成新报告
    2. 等待报告生成后,单击下载已生成的报告,下载Excel格式的不合规资源的检测报告。

4. 运维管理(控制台)

4.1. 一键报警
  1. 登录云监控控制台
  2. 在左侧导航栏,选择报警服务 > 一键报警
  3. 一键报警列表页面,单击目标云产品的一键报警开关,开启一键报警。
  4. 单击目标云产品的,查看云监控提供的报警规则。

自动化部署

基础的多账号环境搭建及日志投递参考云治理中心,方案的其他模块通过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可在资源目录控制台进行查看。

云治理中心默认会创建日志、安全、共享账号。此方案中再扩展出运维账号、开发、测试、生产账号。

# 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、配置待创建账号(必须)

根据实际情况编辑要生成的资源目录成员账号信息,包括运维账号、开发、测试账号、生产账号,自动化代码执行时将创建相应账号。

# 新创建的账号:运维、开发、测试、生产账号
ops_display_name        = "运维账号"
ops_account_name_prefix = "operation"

daily_display_name        = "测试账号"
daily_account_name_prefix = "daily"

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、配置生产、测试账号内资源组

通过上面的客户调研,能够拿到当前不同组织或者部门分类,相关资源组规则可以配置到 settings.tfvars,自动化代码会在生产、测试环境账号内初始化相关资源组。

resource_groups = [
  {
    resource_group_name   = "Develop001",
    display_name          = "Develop001"
  },{
    resource_group_name   = "Develop002",
    display_name          = "Develop002"
  },
]
9、开启创建者标签并配置标签策略

代码里面已经实现了通过API的方式开启创建者标签及标签策略服务。

9.1 配置标签策略

自动化脚本会针对业务账号进行标签检测,默认会配置到Application这层Folder上。标签策略内容参考客户调研表,只会检测特定的标签是否包含有特定的值。

# TagPolicy
tag_policy = {
  policy_name = "testAll"
  policy_desc = "testAll"
  user_type   = "RD"
}
# 指定特定的标签key,并设置对应的值
policy_content = <
10、配置审计合规包

按内置的合规包模板及其对应规则批量启用合规规则,需要整理规则配置到settings.tfvars,自动化代码会在配置审计的全局账号组(由云治理中心创建的enterprise账号组)中自动启用相应合规规则。

部分规则需要进行参数修改,例如“OSS存储空间Referer在指定的防盗链白名单中”规则中的allowEmptyRefererallowReferers。启用更多合规包请参考settings.tfvars中已有的配置及扩展步骤描述。

# Compliance
config_compliance_packs = [
  {
    config_compliance_pack_name        = "OSS合规管理"
    config_compliance_pack_description = "持续检测云上存储的加密、备份、防盗、访问控制的合规性,避免数据泄露等数据安全风险。"
    config_compliance_pack_template_id = "ct-a5edff4e0xxxxxx5"
    config_compliance_pack_risk_level  = 1
    config_compliance_rules            = [
      {
        rule_name            = "OSS存储空间Referer在指定的防盗链白名单中"
        rule_description     = "OSS存储空间开启防盗链并且Referer在指定白名单中,视为“合规”。"
        rule_identifier      = "oss-bucket-referer-limit"
        parameters           = [
          {
            name  = "allowEmptyReferer"
            value = "true"
          }, {
            name  = "allowReferers"
            value = "www.landingzone.cc"
          }
        ]
        resource_types_scope = ["ACS::OSS::Bucket"]
        tag_key_scope        = null
        tag_value_scope      = null
      },
      {
        rule_name            = "OSS存储空间ACL禁止公共读"
        rule_description     = "OSS存储空间的ACL策略禁止公共读,视为“合规”。"
        rule_identifier      = "oss-bucket-public-read-prohibited"
        parameters           = []
        resource_types_scope = ["ACS::OSS::Bucket"]
        tag_key_scope        = null
        tag_value_scope      = null
      }
    ]
  }
]
11、配置网络

部署清单:

账号

部署资源

生产环境账号

1个VPC

8个vswitch(TR、接入层、ECS、数据库)

Public NAT、ALB、EIP

测试环境账号

1个VPC

8个vswitch(TR、接入层、ECS、数据库)

Public NAT、ALB、EIP

共享服务账号

CEN

1个VPC

4个vswitch(TR、业务)

运维账号

1个VPC

4个vswitch(TR、业务)

自动化代码将在生产、测试账号、共享服务账号、运维账号内创建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" = "shared"
  "Department"  = "ops"
}
prod_egress_nat_gateway_name = "nat-gateway-prod-egress"
prod_egress_eip_name         = "eip--prod-egress"

daily_egress_nat_gateway_name = "nat-gateway-prod-egress"
daily_egress_eip_name         = "eip--prod-egress"

# contains VSwitch for business and VSwitch for transit router
shared_service_account_vpc_config = {
  "region"   = "cn-shanghai"
  "vpc_name" = "vpc-sh-dmz"
  "vpc_desc" = "Demilitarized Zone"
  "vpc_cidr" = "10.0.0.0/16"
  "vpc_tags" = {
    "Environment" = "shared"
    "Department"  = "ops"
  }
  "vswitch"  = [
    {
      "vswitch_name" = "vsw-sh-dmz-f-tr"
      "vswitch_desc" = "vsw-sh-dmz-f-tr"
      "vswitch_cidr" = "10.0.0.8/29"
      "zone_id"      = "cn-shanghai-f"
      "vswitch_tags" = {
        "Environment" = "shared"
        "Department"  = "ops"
      }
    }, {
      "vswitch_name" = "vsw-sh-dmz-g-tr"
      "vswitch_desc" = "vsw-sh-dmz-g-tr"
      "vswitch_cidr" = "10.0.0.16/29"
      "zone_id"      = "cn-shanghai-g"
      "vswitch_tags" = {
        "Environment" = "shared"
        "Department"  = "ops"
      }
    },
    {
      "vswitch_name" = "vsw-sh-dmz-f-1"
      "vswitch_desc" = "vsw-sh-dmz-f-1"
      "vswitch_cidr" = "10.0.4.0/22"
      "zone_id"      = "cn-shanghai-f"
      "vswitch_tags" = {
        "Environment" = "shared"
        "Department"  = "ops"
      }
    }, {
      "vswitch_name" = "vsw-sh-dmz-g-1"
      "vswitch_desc" = "vsw-sh-dmz-g-1"
      "vswitch_cidr" = "10.0.8.0/22"
      "zone_id"      = "cn-shanghai-g"
      "vswitch_tags" = {
        "Environment" = "shared"
        "Department"  = "ops"
      }
    }
  ]
}

# contains VSwitch for business and VSwitch for transit router

# contains VSwitch for business and VSwitch for transit router
prod_account_vpc_config = {
  ...
}
# contains VSwitch for business and VSwitch for transit router
ops_account_vpc_config = {
  ...
}

注意!TR的开通默认Terraform是不支持的,需要通过Openapi将服务事先开通。再执行脚本。

12、配置ECS、ALB部署信息

代码默认将在生产环境账号的VPC和测试账号VPC中创建双可用区的应用架构,每个应用架构中会创建一个双可用区公网ALB实例,ALB后端挂载双可用区的两台ECS,并创建相应的安全组和默认规则,可按需修改settings.tfvars中相关配置。相关参数可参考ECS实例ALB实例Terraform文档。

Tips:为了验证网络的隔离效应,会在运维账号中的VPC中创建一台ECS用于验证网络。

# ECS & ALB
security_group_name   = "sg-lz-tf"
security_group_desc   = "sg-lz-tf"
ecs_instance_password = "xxxx"
prod_vpc_ecs_instance_deploy_config = [
  {
    instance_name = "ecs-prod-sh-1"
    host_name     = "ecs-prod-sh-1"
    description   = "ecs-prod-sh-1"
  }, {
    instance_name = "ecs-prod-sh-2"
    host_name     = "ecs-prod-sh-2"
    description   = "ecs-prod-sh-2"
  }
]

dev_vpc_ecs_instance_deploy_config = [
  {
    instance_name = "ecs-dev-sh-1"
    host_name     = "ecs-dev-sh-1"
    description   = "ecs-dev-sh-1"
  }, {
    instance_name = "ecs-dev-sh-2"
    host_name     = "ecs-dev-sh-2"
    description   = "ecs-dev-sh-2"
  }
]

# ECS instance spec
ecs_instance_spec = {
  ...
}

# ALB instance info
prod_vpc_alb_instance_name = "alb-tf-prod-default"
dev_vpc_alb_instance_name = "alb-tf-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服务
  1. 登录开发测试账号及共享服务账号中创建的ECS,使用下述命令快速启动HTTP服务,能够收到ALB健康检查请求。
mkdir tf-test && cd tf-test && touch hello_landing_zone
python3 -m http.server 80

  1. ALB控制台获取DNS名称。

  1. 发起Http访问验证,curl alb-xxx.cn-shanghai.alb.aliyuncs.com能够正常获取ECS返回结果。

相关内容