[CloudNative] 企业应用上云实践手记-Cloud Native Phase 5-云上权限管理和网络安全
作者:关耳山石
整个端到端CloudNative产品落地,计划分为六个阶段展开:
Cloud Native Phase 1 - 云上微服务开发端到端
Cloud Native Phase 2 - 云上DevOps
Cloud Native Phase 3 - 云原生应用AutoConfig
Cloud Native Phase 4 – 如何实现云上弹性伸缩和熔断限流
Cloud Native Phase 5 - 云上权限管理和网络安全
Cloud Native Phase 6 – 如何申请外网域名和SSL证书
本文为第五章,即Cloud Native Phase 5 -云上权限管理和网络安全。
题记:
公有云在使用上,整体的完备性还是超出预期的,无论是基础能力还是高阶服务,但是使用过程中,最让用户担心的还是权限管理和网络安全。所以记录一下整个过程中如何落地云上网络安全和权限管理,目前还在不断的修补中,后续不断更新。
1. 云上网络规划
1.1 公司网络规划参考
按照公司的做法,网络分区一般分为红黄绿蓝四个区,外加DMZ、E区,再加上研发、非研发、服务器侧、用户侧、测试、生产等维度,就显得有点错综复杂了。
1.2 云上的网络规划思路
按个人对这些规划的理解,一个云上应用,最低配置,应该有如下几个网络分区:
- 绿区-测试:通用区,测试环境,支撑开发、SIT、UAT、BETA等
- 绿区-生产:通用区,生产环境,支撑预生产、生产等
- DMZ区-测试:隔离区,测试环境,支撑测试区访问外网的诉求
- DMZ区+生产:隔离区,生产环境,支撑生产区访问外网的诉求
- SRE运维区:仅限SRE使用,用来安装SRE工具和堡垒机,与所有分区互通,仅限堡垒机访问
1.3 落地云上网络规划
- 创建VPC
按照前面的规划,设计对应4套不同的VPC - 打通绿区和DMZ区的VPC
将绿区和DMZ之间,通过VPC EndPoint,构造对等连接,并通过路由表定义联通范围
- 隔离测试环境和生产环境
测试环境和生产环境之间,没有特别情况不进行互通 - 打通DMZ区和外网
DMZ区理论上是连同绿区和外网,因此还需要通过EIP绑定外网域名,打通外部边界 - 打通SRE区和各个其他分区
SRE区是为了方便集中运维、安全运维,划分的独立分区,仅限SRE用户使用,仅限堡垒机访问 - 设置安全防护策略
通过安全组,配合ACL,进行安全防火,限制请求的出入。安全组对弹性云服务器进行防护,网络ACL对子网进行防护
- WEB防护加固
购买通过WAF服务,并配置域名的,进行常见的WEB攻击防护,包括常见的XSS、SQL注入、CC攻击等
2. 云上账号体系规划
2.1 基于根账号,创建子账号
可以通过给根账号绑定或者新建子账号,从而对账号有统一视角,并且还能授予对权限进行治理
子账号计划分为三种类型:
- 员工账号:提供Console使用和API调用能力,授予基础操作和管理
- 后台账号:提供API调用能力,不提供Console使用权限,根据所需API调用的权限授权
- 只读账号:提供一般的查看、问题定位权限,根据所涉及到的服务授权
- 根账号:不解释
- DEMO账号:体验账号,没啥特别的
2.2 创建用户组并授予权限
按照上面提到的5种账号,创建账号组:
-
- admin - 超级管理员 - 根账号
- app_admin_pro - 生产环境管理员 - 员工账号
- sys_sre_pro - 生产环境运维人员 - 员工账号
- app_reader_pro - 生产环境只读用户 - 只读账号
- app_backend_pro - 生产环境后台用户 - 机机账号
- app_admin_test - 测试环境管理员 - 员工账号
- app_developer_test - 测试环境开发者 - 员工账号
- app_reader_test - 测试环境只读用户 - 只读账号
- app_backend_test - 测试环境后台用户 - 机机账号
- app_demo - 体验人员 - 员工账号
PS:虽然这里可以对权限进行授予,但如果能授予EPS的权限,则不在此处授予
PPS:云上的EPS还没有做好,很多服务不支持
2.3 创建EPS并授予权限
企业项目(EPS)是华为云提供出来的一种方案,。关于这块的细节,参考EPS帮助文档
我们这里参考了官方推荐的第二种方案,就是多个项目、多套环境的做法:
目前创建4套EPS,分别针对生产、测试、SRE和Demo环境,还有一套是默认创建的default环境,然后将用户组授予EPS,并设置授权策略,起到权限管控的作用
对应关系如下:
- EPS pro - admin_pro & reader_pro
- EPS test - admin_test & reader_test & developer_test
- EPS demo - demo
- EPS sre - sys_sre_pro
- EPS default - admin
PS:需注意,如果在用户组进行了授权,会覆盖EPS的权限。
3. 本地桌面到华为云的网络规划
这部分,还没有确定方案:暂定利用华为云的VPN服务,为开发人员开通VPN代理,直接打通本地和VPC:
- 彻底隔离测试和生产环境
测试和生产环境必须隔离,而且要隔离的干干净净,一方面是安全,另一方面是避免误操作,因此不仅要网络上隔离,从Console里也要隔离干净。
因此这里可能有两种打法:
- 申请两个根账号,一个做测试,一个做生产
- 通过EPS隔离
目前选择的第二种,可能过段时间会切到第一种吧。
总结
因为这块确实之前接触少,因此这里挺多东西还没搞太清楚,写的比较糙,后面落地过程中再优化。
- 点赞
- 收藏
- 关注作者
评论(0)