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


在容器编排引擎kubernetes通过api server服务提供以下能力:
1.提供了容器平台管理的REST API接口;
2.提供其他模块之间的数据交互和通信的枢纽;
3.资源配额控制的入口;
4.应用部署的接口;
通俗来讲,api server就是整个容器平台的入口,任何用户和程序对集群资源的增删改查操作都可以通过api server实现 。因此,为了保证集群的安全,API-server需要提供完备的安全机制 。
1.3 镜像安全风险
开发者通常会在公共仓库下载镜像,这些镜像一部分来源于开发镜像相应软件的官方厂商,但还有大量镜像来自第三方组织甚至个人 。比如一些自由软件,由于开源和自由获取等特性在大量使用,同时由于没有固定商业组织进行支持,此类软件的镜像多数是社区维护,镜像的质量参差不齐,更有甚者,可能镜像就是不怀好意的黑客制作,如果一旦此类镜像在生产环境使用,势必造成安全隐患 。
此外,在整个应用开发生命周期中,开发人员、测试人员和运维人员都有可能根据不同需求下载并运行第三方镜像,所以在容器运行前进行镜像检查非常重要 。
1.4 网络安全风险
企业内部容器云平台一般在边界上有很强的安全保障措施,但是在容器云平台内部,基于默认的网络模型,比如flannel,各个容器pod节点是扁平的,在横向网络访问隔离方面缺少必要的安全保障,基于flannel方案在容器云平台构建实践中是较普遍采用的网络模型,优势是成熟,简单,但却缺乏访问控制 。
企业内部容器云平台一般在边界上有很强的安全保障措施,但是在容器云平台内部,基于默认的网络模型,比如flannel,各个容器pod节点是扁平的,在横向网络访问隔离方面缺少必要的安全保障,基于flannel方案在容器云平台构建实践中是较普遍采用的网络模型,优势是成熟,简单,但却缺乏访问控制 。
企业需要在构建容器云平台时考虑如何增强网络访问控制,进而提升网络安全 。
2 容器云平台安全设计

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


容器云平台架构
典型容器云平台,参照上面平台架构设计,包括如下几部分,从下到上包括分别是:
  • 基础设施
  • 容器云平台基础组件部分
  • 容器云管理平台部分
  • 业务应用部分
  • 平台支持系统部分
其中,基础设施部分是容器云平台的基石,提供了容器云平台的运行基础计算、网络、存储资源 。此部分和原来传统数据中心运行的情况一致,安全要求也没有明显变化,因此相关安全设计要求参照原来数据中心设计规范进行设计以及实现,不作为容器云安全设计的重点 。
容器云平台基础组件部分提供容器云基础功能,主要包括容器运行时实现和编排引擎,其中运行部分包括虚拟化,软件定义网络,软件定义存储,编排引擎主要是kubernetes软件;容器云管理平台部分主要实现了容器平台的核心功能,比如容器调度功能,账户功能(也称租户功能),镜像管理功能,持续集成持续交付部分,此外还包括图形化和命令行管理接口以及方便第三方对接的平台API接口 。容器平台基础组件部分和容器云管理平台部分是容器云平台安全设计的关键 。
业务应用部分,主要是容器平台上部署的业务应用,有些容器云平台也提供了应用市场功能 。根据云平台责任分担模型,此部分安全是业务功能实现方提供,云平台给出一定的安全最佳实践指导 。
平台支持系统部分主要是容器平台自建或者对接的第三方系统,比如日志、监控、告警,代码管理,账户管理等 。此部分系统对于容器云平台运行至关重要,但是相关系统的安全设计不在本次重点考虑范围内 。

推荐阅读