来源 | 玉符科技

在传统的研发中,我们经常关注的「安全」包括代码安全、机器(运行环境)安全、网络运维安全,而随着云原生时代的到来,如果还按原有的几个维度切分的话,显然容易忽略很多云原生环境引入的新挑战,我们需要基于网络安全最佳实践——纵深防御原则,来逐步剖析「云原生的安全」,并且对不同层次的防御手段有所了解,从而建立自己的云原生安全理念,真正搭建一个内核安全的云原生系统。

注:“纵深防御”,指在计算机系统中的多个层面使用多种网络安全技术,从而减少攻击者利用关键业务资源或信息泄露到系统外部的总体可能性。在消息传递和协作环境中,纵深防御体系可以确保恶意攻击活动被阻止在基础结构内的多个检查点,降低了威胁进入内部网络的可能性。

以 玉符 IDaaS 系统为例,我们把一个云原生系统安全模型分为 4 个层面,由外至内分别是:云/数据中心/网络层、集群层、容器层、代码层,如下图所示:

对于这里安全模型的每一层,都是单向依赖于外层的。也就是说,外层的云、集群、容器安全如果做得好,代码层的安全就可以受益,而反过来,我们是无法通过提高代码层的安全性来弥补外层中存在的安全漏洞或问题。

基于上述这一点原理,我们的纵深防御策略是「自外而内」地进行“设防”。

云/数据中心/网络层安全

这一层也可以称之为基础设施安全,不管从何角度,公有或私有云或企业数据中心以及对应的网络安全,是 K8s 集群最根本的安全基础,如果这一层存在安全漏洞或者过于脆弱,则整个系统都不能在此基础上保证组件的安全。

我们除了需要防御传统的攻击,如 ARP 伪装、DDOS、网络层各类报文等攻击,应该针对 Kubernetes 集群采取以下保护措施:

1. 不允许在 Internet 上公开对 Kubernetes 管理平台(Control Plane)的所有访问,同时仅开放部分可信 IP 可以访问 Kubernetes 管理 API。

2. 所有节点只暴露指定的端口,包括对管理平台的内部端口和来自 NodePort 和 LoadBalancer 类型的 Kubernetes 服务的连接,并且不应该直接暴露到 Internet。

3. 通过云提供商或机房的网络层安全组(例如 AWS 的 Security Group)对管理平台以及节点授予最小权限控制:

4. 对etcd(Kubernetes 的基础存储)的访问进行严格控制(仅允许来自集群管理平台的访问),应强制所有连接都使用TLS,并确保所有信息都是在持久化层被加密的(Encryption at rest)。

集群层

保护 Kubernetes 集群有两个主体需要关注:

  • 集群与组件

  • 运行的服务或应用

保护 Kubernetes 集群组件与服务或应用

针对这两个主体的保护,我们的保护可以分为 4 大块:管理 API 的访问控制、Kubelet 的访问控制、Runtime(运行时)工作负载或用户功能的访问控制、集群组件的安全漏洞防护,如下图所示。

1.  管理 API 的访问控制

a.      强制 TLS 保护传输层

b.      强制 API 认证

c.       强制 API 授权机制(RBAC)

2. Kubelet 的访问控制

a.      生产环境启用身份验证

b.      身份授权(RBAC)

c.       强制 TLS 保护传输层

3. Runtime(运行时)工作负载或用户功能的访问控制

a.      限制使用特权容器

b.      合理限制资源负载

c.       防止加载非必要内核模块

d.      限制 Pod 越权访问其他节点

e.      基础数据凭证的访问控制

4. 集群组件的安全漏洞防护

a.      禁止未授权访问 etcd

b.      启用审核日志记录

c.       定期轮换基础架构凭证

d.      定期升级修复漏洞

容器层

到了这一层,由于跟 Kubernetes 特性不是强相关,我们能提供一些通用的安全措施和建议:

代码层

程序代码层是最容易受攻击,但也是最可控的部分之一。虽然一般负责这块安全的人员不一定是运维开发(DevOps),可能是专门的安全工程师(Sec Eng),但有一些基本共性理念和建议是可以互相借鉴的。

总体来说,云原生时代的这四层架构:云/数据中心/网络层、集群层、容器层、代码层,与传统架构比起来更加细化和更易受攻击。自外而内地践行每一层的安全最佳实践,我们的纵深防御才能算是成功的,每个在云原生技术上想长期获益的团队需要对此有共识。

作者介绍

陈伟嘉,毕业于加州大学尔湾分校,曾就职于Facebook、Splunk,现任玉符科技 CTO,负责玉符 IDaaS 技术架构设计和实现,带领研发团队从 0 到 1 实现产品自主研发,搭建无状态化支持、轻量化容器打包、运维自动化等微服务架构。

参考资料:

[1]https://baike.baidu.com/item/%E7%BA%B5%E6%B7%B1%E9%98%B2%E5%BE%A1/8282191?fr=aladdin

[2]https://kubernetes.io/docs/concepts/security/overview/

[3]https://www.stackrox.com/post/2020/09/protecting-against-kubernetes-threats-chapter-8-lateral-movement/

更多阅读推荐

  • 硅谷2020最新大数据学习路线:科学使用这一招,12周助你成为数据分析师

  • Service Mesh 在超大规模场景下的落地挑战

  • 微软全球 AKS 女掌门人,这样击破云原生“怪圈”!

  • 从程序媛到微软全球 AKS 女掌门人,技术女神驾到!

  • 常程跳槽小米,联想:已付竞业协议股权对价 500 万,须偿还

云原生安全模型与实践相关推荐

  1. 广州站 | 云原生 Serverless 技术实践营精彩回顾

    12月2日,由阿里云 Serverless 团队主办的「云原生 Serverless 技术实践营」在广州顺利举行,本次活动面向所有企业技术人员,主打"沉浸式沙龙体验,6 小时搞定 Serve ...

  2. 阿里云云效何勉:云原生是“精益实践”的最佳助力

    简介: 1月15日,国内知名"精益产品开发"研究和实践者.阿里云云效资深技术专家何勉在阿里云<云计算情报局>线上直播栏目中,分享其对研发新模式的最新思考,提出" ...

  3. 技术沙龙 | 云时代下的架构演进—企业云及云原生技术落地实践

    云改变了IT行业的形态和市场格局,催生了应用的发展.随着云计算技术的不断演进,作为一名优秀的架构师,必须深入了解云计算平台的特点及架构设计,包括构建数据库.大规模落地微服务.Service Mesh和 ...

  4. 基于 eBPF 的云原生可观测性深度实践

    本文整理自云杉网络 DeepFlow 产品负责人向阳在 QCon 2023 的演讲分享,主题为 "基于 eBPF 的云原生可观测性深度实践". 分享从四个方面展开.第一部分回顾分布 ...

  5. 鸟哥谈云原生安全最佳实践

    嘉宾 | 鸟哥   整理 | 孙正印 出品 | CSDN云原生 2022年6月7日,在CSDN云原生系列在线峰会第7期"安全技术峰会"上,鸟哥谈安全公众号作者.某互联网公司云化办公 ...

  6. 快速成长期的云原生应用架构实践

    在经过了最初的业务原型验证和上线运行期之后,用户业务进入了高速成长阶段.在这一阶段,业务重点不再是方向上的调整,而是在原来基础上的不断深挖.扩展:开发不仅是功能的实现,还需要兼顾成本和性能:系统不再是 ...

  7. 连续三年上榜!谐云荣获2022「云原生应用优秀案例」、「云原生安全优秀实践」

    2022年6月15日,由中国信息通信研究院.中国通信标准化协会主办的"原生聚力,云数赋能"2022年云原生产业大会在线上召开. 谐云凭借在云原生领域的创新技术和前瞻性实践,斩获多项 ...

  8. 鸟哥谈云原生安全最佳实践 | 文末赠书

    嘉宾 | 鸟哥   整理 | 孙正印 出品 | CSDN云原生 2022年6月7日,在CSDN云原生系列在线峰会第7期"安全技术峰会"上,鸟哥谈安全公众号作者.某互联网公司云化办公 ...

  9. 搭乘“云原生”硬核实践之舟,移动云助力开发者畅游未来创新之旅

    云改变了IT业态和市场格局,催生了应用大发展的时代,企业可以更加专注于符合其愿景.更具生命力的业务创新.全面使用云服务构建软件的时代已经到来,在这个大背景下,云原生的概念被提出并迅速具象化,其中容器. ...

最新文章

  1. python使用pickle保存和加载机器学模型
  2. Spark - 大数据Big Data处理框架
  3. java自动生成代码框架_DodoFramework- 一个基于代码生成引擎的Java Web系统自动化开发框架...
  4. 深入理解MSTP域和端口角色
  5. 无人车公司May Mobility种子轮融资1150万美元,宝马丰田联合领投
  6. 技术改变世界以及减速慢行
  7. 【具体数学 读书笔记】1.2 Lines in the Plane
  8. SQL Server 2008,三年等待物有所值
  9. cad道路里程桩号标注_CAD道路桩号自动编号插件
  10. mysql的delete语句使用exists删除数据走不通
  11. 站在知乎肩上-做更强的自己(3)
  12. pubwinol免刷_Pubwin万象OL实名一键自动处理程序
  13. 开课通知 | 2021FPGA寒假班/就业班开课啦!
  14. html如何删除目录,无法删除文件夹 目录不是空的
  15. 经常“上火”者的食疗方
  16. 看考研视频如何屏蔽键盘(锁定键盘)
  17. 哇喔!微信可以改彩色昵称了!!!
  18. Linux内存管理(四十):Linux PSI 详解
  19. 【美团秋招笔试】美团第一次笔试 2022-8-20
  20. 图片文件损坏如何修复?只需这样操作

热门文章

  1. oracle flashback 深入研究,oracle 之flashback 深入研究。
  2. pdf在线翻译_如何免费快速地翻译pdf英文文档,并保留很好的格式?
  3. jquery name选择器_jquery笔记
  4. python中如何定义函数的传入参数是option的_python – 当使用@ click.option将命令行参数传递给函数时,如何返回值?...
  5. 加装的硬盘进入后点不了文件夹_在外接移动硬盘上制作win to go教程
  6. 传奇落幕!杰克·韦尔奇给管理者的10句箴言,句句经典!
  7. 微软将数据保存在玻璃中 可以安全地存储数千年
  8. 4562亿元教育经费收从哪里花向何处
  9. 科大讯飞回应同传造假:人机耦合才是未来发展之道
  10. GC算法-增量式垃圾回收