容器云平台的基础安全和管理安全设计( 四 )


1.API Server和etcd之间
2.API Server和Controller Manager之间
3.API Server和Scheduler之间
4.API Server和Kubelet之间
5.平台管理用户和API Server之间
6.Kubelet和容器之间
7.业务用户和业务pod之间(可选)
参考下图:

容器云平台的基础安全和管理安全设计


2.1.3 网络安全网络隔离
K8s的网络策略应用于通过常用标签标识的pod组 。然后,使用标签来模拟传统的分段网络,这些网络通常用于在多层应用程序中隔离层:例如,可以通过特定的“段”标签来标识前端和后端pod 。策略控制这些段之间的流量,甚至控制来自外部源的流量 。
简单路由网络或常用的flannel网络程序本身不能应用网络策略 。
目前Kubernetes只有几个支持网络策略的网络组件:Romana,Calico和Canal;其中Weave在不久的将来指示支持,Red Hat的OpenShift包括了网络策略功能 。因此如何容器云平台基于OpenShift构建会获得OOTB的网络策略功能 。
从网络模型的流行度来看,flannel的网络方案最流行,市场占有率较大,基于calico+network policy的方案逐步成熟中,可以持续跟进,在容器云构建中可以在测试环境中进行验证 。
在一些落地的方案中,容器云平台建设过程中采用flannel的方案,但是通过为不同安全级别的应用(租户)建设不同的集群而实现应用(租户)网络隔离 。
南北向流量的安全
对于南北向的流量,应该引入传统的网络流量分析控制设备,例如IPS/IDS/审计/NGFW/WAF等 。
东西向流量的安全
东西向流量的安全也是非常关键的,目前可以采用的技术和产品比较少,但这个方面却是非常关键的安全控制点,在没有合适的产品可以替代的情况下,应该尽量:
1.采用Mini Knernel的容器化操作系统;
2.非特权用户运行容器;
3.采用强制访问控制技术;
4.监控宿主机文件系统的变更;
5.保持系统和组件的安全补丁为最新 。
2.2 管理安全设计
2.2.1 管理平台安全建设
建立专属CA中心,定期替换密钥
在组件TLS加密通讯的关键因素是证书的安全,默认情况下,kubernetes集群搭建使用的私有CA,并且生成临时的证书进行TLS加密通讯,但是为了保障TLS的有效性,保障CA更证书的私密以及以及降低组件证书的泄漏风险,因此建议集群的专属CA中心,并且设置组件证书的有效期,在组件证书快到期的时候进行替换 。
检查根证书到期时间的命令:
openssl x509 -noout -enddate -in /etc/kubernetes/ssl/kubelet-client.crt
2.2.2 用户权限安全管理
容器云平台的4A(即认证Authentication、账号Account、授权Authorization、审计Audit)管理功能设计 。
构建统一账户管理平台(UIMS)
容器平台是一个多组件组成的平台系统,每个组件自成系统,比如镜像管理,CI/CD平台,日志系统,监控系统等,每个系统单独管理各自的用户数据容易行成信息孤岛,分散的用户管理模式阻碍了平台的协调工作,因此构建统一的标准化账户管理体系将是必不可少的 。
统一账户系统平台可带来统一的帐号管理、身份认证、用户授权等基础能力,为企业带来诸如跨系统单点登录、第三方授权登录等基础能力,为构建开放平台和业务生态提供了必要条件 。
基于『统一身份治理』的概念,可划分为两级账户体系、基础权限模块和基础信息模块三大模块 。其中两级账户体系将账户分为组织实体帐号和个人实体账户两大类,个人实体从属于组织实体,也可以不从属任何组织实体,且个人实体可同时从属于多个组织实体;基础权限模块将各业务系统的资源权限进行统一管理和授权;基础信息模块用于描述组织实体和个人实体的基本信息,如组织实体名称、地址、法人,个人实体姓名、电话号码、性别等基础信息 。此外统一账户系统提供统一的API与其他系统对接 。

推荐阅读