[CloudNative] 企业应用上云实践手记-Cloud Native Phase 5-云上权限管理和网络安全 

举报
华为云PaaS服务小智 发表于 2021/05/10 17:02:01 2021/05/10
【摘要】 作者:关耳山石整个端到端CloudNative产品落地,计划分为六个阶段展开:Cloud Native Phase 1 - 云上微服务开发端到端Cloud Native Phase 2 - 云上DevOpsCloud Native Phase 3 - 云原生应用AutoConfigCloud Native Phase 4 – 如何实现云上弹性伸缩和熔断限流Cloud Native Phase...

作者:关耳山石

整个端到端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 公司网络规划参考

按照公司的做法,网络分区一般分为红黄绿蓝四个区,外加DMZE区,再加上研发、非研发、服务器侧、用户侧、测试、生产等维度,就显得有点错综复杂了。

1.2 云上的网络规划思路

按个人对这些规划的理解,一个云上应用,最低配置,应该有如下几个网络分区:

  1. 绿区-测试:通用区,测试环境,支撑开发、SITUATBETA
  2. 绿区-生产:通用区,生产环境,支撑预生产、生产等
  3. DMZ-测试:隔离区,测试环境,支撑测试区访问外网的诉求
  4. DMZ+生产:隔离区,生产环境,支撑生产区访问外网的诉求
  5. SRE运维区:仅限SRE使用,用来安装SRE工具和堡垒机,与所有分区互通,仅限堡垒机访问

1.3 落地云上网络规划

  • 创建VPC
    按照前面的规划,设计对应4套不同的VPC
  • 打通绿区和DMZ区的VPC
    将绿区和DMZ之间,通过VPC EndPoint,构造对等连接,并通过路由表定义联通范围

  • 隔离测试环境和生产环境
    测试环境和生产环境之间,没有特别情况不进行互通
  • 打通DMZ区和外网
    DMZ
    区理论上是连同绿区和外网,因此还需要通过EIP绑定外网域名,打通外部边界
  • 打通SRE区和各个其他分区
    SRE
    区是为了方便集中运维、安全运维,划分的独立分区,仅限SRE用户使用,仅限堡垒机访问
  • 设置安全防护策略
    通过安全组,配合ACL,进行安全防火,限制请求的出入。安全组对弹性云服务器进行防护,网络ACL对子网进行防护

  • WEB防护加固
    购买通过WAF服务,并配置域名的,进行常见的WEB攻击防护,包括常见的XSSSQL注入、CC攻击等

2.     云上账号体系规划

2.1 基于根账号,创建子账号

可以通过给根账号绑定或者新建子账号,从而对账号有统一视角,并且还能授予对权限进行治理

子账号计划分为三种类型:

  1. 员工账号:提供Console使用和API调用能力,授予基础操作和管理
  2. 后台账号:提供API调用能力,不提供Console使用权限,根据所需API调用的权限授权
  3. 只读账号:提供一般的查看、问题定位权限,根据所涉及到的服务授权
  4. 根账号:不解释
  5. DEMO账号:体验账号,没啥特别的

2.2 创建用户组并授予权限

按照上面提到的5种账号,创建账号组:

      1. admin - 超级管理员 - 根账号
      2. app_admin_pro - 生产环境管理员 - 员工账号
      3. sys_sre_pro - 生产环境运维人员 - 员工账号
      4. app_reader_pro - 生产环境只读用户 - 只读账号
      5. app_backend_pro - 生产环境后台用户 - 机机账号
      6. app_admin_test - 测试环境管理员 - 员工账号
      7. app_developer_test - 测试环境开发者 - 员工账号
      8. app_reader_test - 测试环境只读用户 - 只读账号
      9. app_backend_test - 测试环境后台用户 - 机机账号
      10. app_demo - 体验人员 - 员工账号

      PS:虽然这里可以对权限进行授予,但如果能授予EPS的权限,则不在此处授予
      PPS:云上的EPS还没有做好,很多服务不支持

    2.3 创建EPS并授予权限

    企业项目(EPS)是华为云提供出来的一种方案,。关于这块的细节,参考EPS帮助文档

    我们这里参考了官方推荐的第二种方案,就是多个项目、多套环境的做法:

    目前创建4EPS,分别针对生产、测试、SREDemo环境,还有一套是默认创建的default环境,然后将用户组授予EPS,并设置授权策略,起到权限管控的作用

    对应关系如下:

    1. EPS pro - admin_pro & reader_pro
    2. EPS test - admin_test & reader_test & developer_test
    3. EPS demo - demo
    4. EPS sre - sys_sre_pro
    5. EPS default - admin

    PS:需注意,如果在用户组进行了授权,会覆盖EPS的权限

    3.     本地桌面到华为云的网络规划

    这部分,还没有确定方案:暂定利用华为云的VPN服务,为开发人员开通VPN代理,直接打通本地和VPC

    1. 彻底隔离测试和生产环境

    测试和生产环境必须隔离,而且要隔离的干干净净,一方面是安全,另一方面是避免误操作,因此不仅要网络上隔离,从Console里也要隔离干净。

    因此这里可能有两种打法:

    1. 申请两个根账号,一个做测试,一个做生产
    2. 通过EPS隔离

    目前选择的第二种,可能过段时间会切到第一种吧。

    总结

    因为这块确实之前接触少,因此这里挺多东西还没搞太清楚,写的比较糙,后面落地过程中再优化。

    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。