资源治理
根据Landing Zone的参考架构,设计多账号下的资源治理方案,包含资源共享、资源标签、资源命名规范、资源管理、配额管理、镜像管理等。
资源治理原则
华为云基于大量成功交付的项目,总结提炼了以下资源治理原则:
- 使用企业项目而不是IAM项目进行资源的分组和管理,企业项目可以跨区域管理资源,支持资源的迁入迁出、资源的成本核算及分析,比IAM项目更灵活,更能满足企业的项目管理需求。
- 针对每个企业项目,按照职责分别创建不同的用户组,如应用开发组、应用测试组和应用管理组、项目管理组等,并授予相应的权限;为每个项目成员在华为云上创建一个用户,并加入到对应的用户组。
- 每个账号下创建一个公共项目,或者使用默认企业项目default,用于包含以下公共资源,供其他企业项目共享使用:
- 成本很难分摊到其他企业项目的公共云资源,如共享带宽、云连接等
- 账号范围内应该统一管理的云资源,如云备份、VPC等
- 大量购买时更加优惠的资源套餐包,建议在账号范围内统一订购,而不是为每个企业项目单独订购
- 部门(对应到华为云上的组织单元和子账号)作为独立核算的单元,不建议部门之间共享使用任何云资源,即使这两个部门是父子关系;但一个部门内的多个IT项目可以共享使用云资源,如共享带宽、云连接等。
- 针对每个账号提供多种运行环境:生产环境、开发环境、测试环境,各个环境之间需要有一定的安全隔离措施,可以通过VPC建立隔离的运行环境。多个小应用系统可共享一个VPC,大型应用系统可以独占一个VPC。
表1 运行环境 运行环境名称
运行环境描述
生产环境
部署核心生产系统,如ERP、PLM、SCM等,以及数据仓库及大数据系统,大的应用系统(如大型ERP系统)可以独占一个生产环境。核心生产环境的重要性高,可用性和数据安全要求高,需要建立严格的容灾备份机制和数据安全保护体系。
开发环境
部署开发系统,如Devops流水线、源代码管理系统等,开发环境的可靠性要求不高,对网络安全和数据安全要求也不高,酌情提供一定的数据备份和数据安全保护措施。在中小企业,开发环境可与测试环境合并。
测试环境
部署测试系统和准生产系统,测试人员在该环境完成系统上线之前的功能测试、性能测试、安全测试和集成测试等测试工作。测试环境的可靠性要求不高,对网络安全和数据安全要求也不高,酌情提供一定的数据备份和数据安全保护措施。在中小企业,开发环境可与测试环境合并。
- 规划VPCDMA网络段的时候,需要考虑VPC之间的通信交互,如果两个VPC之间需要进行通信,这两个VPC的网段就不要互相冲突;有频繁交互关系的VPC尽量创建在同一个区域内,否则跨区域的VPC通信需要额外购买带宽包。
- 定期(月度、季度、年度)统计分析各个组织单元、企业项目的资源利用率,及时发现资源空转、资源利用率低的情况,并及时删除空转资源、进行资源整合。
- 为防止资源滥用,要限定账号(主账号和各个子账号)在华为云上各服务资源的配额,对该账号下用户所能申请的资源数量和容量做限制。
资源共享
基于公共服务账号,梳理可以共享给其他账号的公共资源,比如NTP服务器、AD服务器、自建DNS服务器、OBS桶、IMS私有镜像、SWR容器镜像库、协作办公系统等。
资源管理
在安全审计账号中,可以对整个组织的合规遵从进行统一管理,包括将多账号的资源配置快照归档到统一的桶中,管理员统一配置组织下各子账号的合规规则。
- 统一合规策略配置
- RMS服务提供资源合规特性,帮助您快速创建一组合规规则,用于评估您的资源是否满足合规要求。
- 在组织多账号场景下,当需要配置多个组织账号下的合规规则时,可以将多个子账号的合规规则设置API的访问权限委托给根账号。
- 通过调用API的方式,使用根账号获取IAM token后,逐个调用子账号的API配置合规规则。
- 多账号的资源配置快照统一存储
- RMS服务支持每个账号在开启资源记录器并成功配置对象存储桶(OBS)后,RMS会定期(24小时)对您的资源进行快照并存储。
- 在组织多账号场景下,当需要获取多个组织账号下的资源配置快照数据时,可先针对每个账号开启资源记录器,配置自己的对象存储桶(OBS)。再对每个桶配置根账号只读权限。
- 通过调用API的方式,使用根账号获取IAM token后,逐个访问子账号的OBS桶获取资源快照文件
资源标签
华为云的标签是由用户定义的键和值组成,标签可以更灵活地帮助用户管理资源,包括识别、搜索筛选等。
- 在为华为云资源创建标记策略时,华为云有以下建议:
- 请勿在标签中存储个人身份信息或其他机密或敏感信息
- 对标签使用标准化的区分大小写格式,并跨所有资源类型一致地应用该格式
- 虽然标签有长度规格上限,尽量不要每个标签都达到标签规格上限,标签长度能标明含义即可
- 需要提前考虑规划好支持多种用途的标签准则,如管理资源访问控制、成本跟踪、自动化和组织
- 标签命名限制和要求
- 每个资源最多可以有 20 个用户创建的标签。注意:以 _sys_开头的系统创建标签将保留供华为云系统使用,并且不计入此限制
- 对于每个资源,每个标签键都必须是唯一的,每个标签键只能有一个值
- 标签键必须包含 1 到 128 个 Unicode 字符,并且以 UTF-8 格式表示
- 标签值必须包含 0 到 255 个 Unicode 字符,并且以 UTF-8 格式表示
- 标签键和值区分大小写。最佳实践是,决定利用标签的策略并在所有资源类型中一致地实施该策略。例如,决定是使用 HuaweiCloud、huaweicloud 还是 Huaweicloud,应保持相同的规则。避免含义模糊的标签出现
- 常见标签策略
- 资源治理标签:用户可以配置标签来与资源一起显示,并且可以按标签进行搜索和筛选。使用TMS服务,用户可以按资源类型,标签范围过滤资源,给多个资源批量标记标签
- 成本标签:华为云的费用中心->成本中心可让用户在使用标签标识和管理资源的同时,还可以将标签激活为成本标签来归集成本。成本标签可以应用在成本分析和预算管理中
- 自动化标签:资源或特定于服务的标签通常用于在自动化任务时做资源过滤筛选。自动化标签用于选择加入或退出自动化任务,或识别要存档、更新或删除的资源的特定版本。例如,用户可以运行自动化脚本,这些脚本可在非工作时间内关闭开发环境以降低成本。在这种场景,可以通过给ECS服务的虚拟机资源标记标签标明是否需要被关闭虚拟机
- 通过标签分析成本
- 登录“成本中心”。
- 选择“成本标签”。
- 选中标签,进行激活或取消激活操作。
图1 标签分析成本
- 登录华为云控制台,进入成本中心。
- 选择“成本分析”。
- 通过成本标签进行成本数据筛选。
图2 通过成本标签维度进行成本数据汇总
图3 通过成本标签进行成本数据过滤
镜像管理
- 虚拟机镜像管理
- 公共镜像
企业可以通过公共镜像作为应用的基础镜像。通过公共镜像在创建出虚拟机后,用户可以根据安全和业务要求,在镜像里进行基础的业务配置或者安全配置。配置完成后,可以通过虚拟机创建私有镜像。
- 华为云公共镜像中提供了多种类型开源版公共镜像:
表2 多种类型开源版公共镜像 CentOS
64bit:CentOS 6:6.10/6.9/6.8/6.5/
64bit:CentOS 7:7.9/7.8/7.7/7.6/7.4/7.3/7.2
64bit:CentOS 8:8.2/8.1/8.0
Ubuntu
64bit:Ubuntu 20.04/18.04/16.04
Debian
64bit:Debian 8:8.8.0
64bit:Debian 9:9.0.0
64bit:Debian 10:10.0.0
64bit:openSUSE Leap 15: 15.0
CoreOS
64bit:CoreOS 2079.4.0
FreeBSD
64bit:FreeBSD 11.0
openEuler
64bit:openEuler 20.03
- 在市场镜像中,可以选择商用版linux和windows镜像:
表3 商用版linux和windows镜像 windows
Windows Server 2012 Standard/Datacenter
Windows Server 2012 R2 Standard/Datacenter
Windows Server 2016 Standard/Datacenter
Windows Server 2019 Standard/Datacenter
suse
64bit:SLES 12:12 SP5
64bit:SLES 15:15 SP1
- 镜像导入
- 镜像创建
- 可以通过IMS服务创建系统盘、数据盘、整机镜像,创建完成后,镜像可用于复制、共享可以直接登录IMS Console操作。
- 为便于用户定制化操作,可以Packer创建私有镜像:
图5 Packer创建私有镜像
- 使用Packer创建镜像,需要一个json格式的模板文件。在模板文件中,您需要指定构建器、配置器,还可以指定后处理器。在配置器中,您可以指定对源镜像的任何操作,可以指定安装软件也可以对相关配置做修改。
{ "builders": [{ "type": "openstack", "identity_endpoint": "https://iam.xxx.com/v3", "tenant_name": "xxx", "domain_name": "domain_name", "username": "username", "password": "password", "ssh_username": "root", "region": "xxx", "image_name": "Ubuntu-image-updating-powered-by-Packer", "instance_name": "Ubuntu-image-updating-powered-by-Packer", "source_image": "f1dd2272-7041-479e-9663-646632b6ac00", "availability_zone": "xxx", "flavor": "s3.medium.2", "use_blockstorage_volume": true, "networks": ["11d661c4-e41f-487f-a6f6-9b88d623dd5d"], "floating_ip": "8f686f9a-3408-4fdd-be75-ea768065800c" }], "provisioners": [{ "inline": [ "apt-get update -y" ], "inline_shebang": "/bin/sh -x", "type": "shell", "skip_clean": true }], "post-processors": [{ "strip_path": true, "output": "packer-template-ubuntu-updating-result.log", "type": "manifest" }] }
- 其中:tenant_name、region、availability_zone、flavor、networks、floating_ip均为创建私有镜像时使用的云服务器的属性信息
- 镜像共享
用户A获取用户B的项目ID之后,可以将指定的私有镜像共享给用户B。共享镜像可以分为批量镜像共享和单个镜像共享两种方式,用户可以按照需要进行选择。注意:共享镜像前,请确认私有镜像已清除敏感数据和文件。
图6 共享镜像
资源命名规范
本章节提供了关于云上资源统一命名的参考。命名约定的使用,对客户在高效管理云上资源上非常重要。制定标准和一致的命名规范,能使客户在云上资源的成本分析、自动化、安全控制等方面的管理更加清晰和便捷。
- 命名原则:
- 命名规则是可扩展的
- 确保在一定范围内的命名是唯一的
- 通过资源命名便于分类,譬如为监控、安全控制等提供可见性
表4 计算资源命名规范 华为云资源
资源名规范
Example
Comment
ECS
ecs-{appname}-{apptype}-{env}
ecs-adv-app-dev
ecs-adv-cache-prod
名称的长度为1~64位字符;支持中文字符、英文字母、数字及“_”、“-”、“.”。
Image
Img-{appname}-{apptype}-{env}
ims-adv-app-dev
名称的长度为1~128位字符;支持中文字符,英文字母,数字,特殊字符包含“_”、“-”、“.”、空格。名称的首尾字母不能为空格。
EVS
disk-{appname}-{env}
ims-adv-dev
名称的长度为1~255位字符;支持中文字符,英文字母,数字,特殊字符包含“_”、“-”、“.”、空格。
Snapshot
ss-{appname}- {env}-{datagenerated}
ss-adv-dev-20220101
名称的长度为1~255位字符;支持中文字符,英文字母,数字,特殊字符包含“_”、“-”、“.”、空格。
AutoScaling
as-{appname}-{env}
as-adv-dev
名称的长度为1~64位字符,只能包含中文、字母、数字、“_”、“-”。
表5 网络资源命名规范 华为云资源
资源名规范
Example
Comment
VPC
vpc-{appname}-{env}
vpc-adv-dev
名称的长度为1~64位字符,只能包含中文、字母、数字、“_”、“-”、“.”。
Subnet
sn-{appname}-{env}-{SubnetType}
sn-adv-dev–db
- 1、子网类型:、app、elb、db、cache、web
- 2、名称的长度为1~64位字符,只能包含中文、字母、数字、“_”、“-”、“.”。
ELB
elb-{appname}-{env}
elb-adv-dev
名称的长度为1~255位字符,只能包含中文、字母、数字、“_”、“-”、“.”。
EIP
eip-{appname}-{env}
eip-adv-dev
名称的长度为1~64位字符,只能包含中文、字母、数字、“_”、“-”、“.”。
NAT
nat-{appname}-{env}
nat-adv-dev
名称的长度为1~64位字符,只能包含中文、字母、数字、“_”、“-”、“.”。
表6 存储资源命名规范 华为云资源
资源名规范
Example
Comment
OBS
obs-{ appname}-{env}
obs-logs-dev
1、名称的长度为1~64位字符,只能包含中文、小写字母、数字、“-”、“.”
2、禁止两个英文句号(.)相邻,禁止英文句号(.)和中划线(-)相邻,禁止以英文句号(.)和中划线(-)开头或结尾
3、禁止使用IP地址
4、如果名称中包含英文句号(.),使用虚拟主机方式HTTPS访问OBS,会导致证书校验失败