云原生安全模型与实践

来源 | 玉符科技

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

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

以 玉符 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 万,须偿还

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript从入门到放弃 -(五)函数进阶(高级用法)

目录 1. 函数的定义和调用1.1 函数定义的3种方式1.2 函数调用方式(常见的6种)1.2.1 普通函数的调用1.2.2 对象中的函数调用1.2.3 构造函数的调用1.2.4 DOM元素绑定事件调用函数1.2.5 定时器中调用函数1.2.6 立即执行函数2. 函数内部的this指向2.1 this指向2.1.1 普通函数2.1.…

阿里云专家详解 2020 服务网格发展趋势

作者 | 王夕宁 阿里巴巴高级技术专家 关注“阿里巴巴云原生”公众号,参与文末留言互动,即有机会获得赠书福利! 本文摘自于由阿里云高级技术专家王夕宁撰写的《Istio 服务网格技术解析与实践》一书,文章从基础概念入手&#xff0…

小姐姐亲身体验:在阿里数据库科研团队实习是种怎样的体验?

作者简介: 张心怡,北京大学前沿交叉研究院研究生,中国人民大学信息学院本科生。从18年底开始在POLARDB-X团队智能数据库组的实习,现已在阿里度过了一年多的时光。 心怡说,对于有志于数据库领域研究的小伙伴&#xff0c…

2020职场人裸辞三大原因:不开心、工资低、没有盼头

近期,脉脉发布了《2020职场人裸辞现状调研报道》,报道显示2020最让职场人想裸辞的三大原因为:不开心、工资低、没有盼头。报告数据中还显示,工资不满预期是最让人想要裸辞的主要原因,但有超过6成职场人表示&#xff0c…

ElasticSearch 并发的处理方式:锁和版本控制_07

文章目录现象锁版本控制最新方案现象 当我们使用 es 的 API 去进行文档更新时,它首先读取原文档出来,然后对原文档进行更新,更新完成后再重新索引整个文档。不论你执行多少次更新,最终保存在 es 中的是最后一次更新的文档。但是如…

JavaScript从入门到放弃 -(六)正则表达式

正则表达式 1. 正则表达式概述1.1 什么是正则表达式1.2 正则表达式的特点2. 正则表达式在JavaScript中的使用2.1 创建正则表达式2.1.1 通过调用 RegExp 对象的构造函数创建2.1.2 通过字面量创建2.2 test测试正则表达式3. 正则表达式中的特殊字符3.1 正则表达式的组成3.2 边界符…

冠状病毒过后世界九大未来预测

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 随着COVID-19的泛滥在全球范围内蔓延,这迫使人类进行创新并改变我们的工作和生活方式。我们现在发现自己的优势在…

疫情宅家促生“囤货经济”,北美零售业极限应考

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 疫情之下,美国零售业同样遭遇冰火两重天的困境。 危机产生和意识到危机产生是两件事情。就在美国对着中国的疫情…

还不懂Redis?看完这个故事就明白了!

来源 | 编程技术宇宙责编 | Jerry我是Redis你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。说起我的诞生,跟关系数据库MySQL还挺有渊源的。在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发展的越来…

ElasticSearch 倒排索引_08

倒排索引:是 es 中非常重要的索引结构,是从文档词项到文档 ID 的一个映射过程。 “正排索引” 我们在关系型数据库中见到的索引,就是“正排索引”。 关系型数据库中的索引如下,假设我有一个博客表: id作者标题内容1…

2020年软件工程现状:Python或将成为第一大编程语言,中国开源涨势最猛

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 现在,是时候谈一谈 2020 年及以后的软件工程状况了。本文以 GitHub Octoverse 数据为基础,加上我作为…

JavaScript从入门到放弃 -(七)ES6

目录 1. ES6相关概念1.1 什么是 ES6 ?1.2 为什么使用 ES6 ?2 ES6新增语法2.1 新增关键字2.1.1 let 关键字小结2.1.2 const 关键字小结2.1.3 let、const、var 的区别2.2 解构赋值2.2.1 数组解构2.2.2 对象解构小结2.3 箭头函数2.3.1 语法规范2.3.2 箭头函数的调用2.3.3 this关…

ElasticSearch 动态映射与静态映射_08

映射就是 Mapping,它用来定义一个文档以及文档所包含的字段该如何被存储和索引。所以,它其实有点类似于关系型数据库中表的定义。 映射分类 动态映射 顾名思义,就是自动创建出来的映射。es 根据存入的文档,自动分析出来文档中字…

解密阿里云大规模深度学习性能优化实践

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作者 | 阿里云异构计算AI加速负责人 游亮 近日,斯坦福大学公布了最新的 DAWNBench 深度学习榜单,这是…

深夜,我偷听到程序员要对session下手......

来源 | 编程技术宇宙责编 | Jerry我是一个web服务器我是一个web服务器,我的工作是给人类提供上网服务,我每天要为数以万计的人提供网页浏览服务。已经是深夜了,我还在和手下几个兄弟为了一件事紧张讨论着。“老大,现在咱们每天处理…

太平鸟上云 推动中国服饰行业新零售转型

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 在消费增速下滑的大环境下,转型焦虑几乎已经弥漫了整个服饰行业,…

前端知识点随记

(前端笔记补充,备忘录使用。) 1. HTML/CSS/H5C3 知识点1.1 鼠标样式|十字|1.2 css 半透明样式1.3 CSS3 transform 属性1.3.1 旋转1.3.2 缩放1.4 特殊写法 \91.5 解决video标签在谷歌不能自动播放1.6 \ 标签- 提示文字1.7 placeholder-自定义占位文本1.8 去除 input 默认边框…

Typora 常用技巧

文章目录1. 引用样式2. 插入表格3. 图片设置1. 引用样式 输入>按tab键 流程 默认样式: blockquote {border-left: 4px solid #dfe2e5;padding: 0 15px;color: #777777; }修改后样式 blockquote {border-left: 4px solid #62ca38!important;background:#f…

海升集团数据上云 走出智能农业的新路子

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 尽管最近水果的价格持续上涨,但水果消费的需求和市场始终在快速提升。墨西哥…

干货!一文看Doris在作业帮实时数仓中的应用实践

数据驱动未来。在大数据生态中,数据分析系统在数据创造价值过程中起着非常关键的作用,直接影响业务决策效率以及决策质量。Apache Doris作为一款支持对海量大数据进行快速分析的MPP数据库,在数据分析领域有着简单易用、高性能等优点。9月20日…