译:零信任对 Kubernetes 意味着什么

1db00df7d32a018dea6615d6f5dc2e91.gif

这篇是 Buoyant 的创始人 William Morgan 文章《# What Does Zero Trust Mean for Kubernetes?》[1]的翻译,文章很好的解释了什么是零信任、为什么要实施零信任,以及服务网格如何以最小的代码实现零信任。

零信任是营销炒作,还是新的机会,各位看官你怎么看?

要点

  • 零信任是一种被大量炒作的安全模型,但尽管存在营销噪音,但它对于具有安全意识的组织具有一些具体而直接的价值。

  • 零信任的核心是,将授权从“在边界验证一次”转变为“随时随地验证”。

  • 为此,零信任要求我们重新思考身份的概念,并摆脱基于位置的身份,例如 IP 地址。

  • Kubernetes 采用者在网络层实现零信任时具有明显的优势,这要归功于基于 Sidecar 的服务网格,它提供无需更改应用程序就可实现的最细粒度的身份验证和授权。

  • 虽然服务网格可以提供帮助,但 Kubernetes 安全性仍然是一个复杂而微妙的话题,需要从多个层次进行了解。

零信任[2]是一种位于现代安全实践前沿的强大的安全模型。这也是一个容易引起轰动和炒作的术语,因此很难消除噪音。那么,究竟什么是零信任,对于 Kubernetes,它究竟意味着什么?在本文中,我们将从工程的角度探讨什么是零信任,并构建一个基本框架来理解它对 Kubernetes 运维和安全团队等的影响。

ce0295ffe81d246ec4e116252cf42a0c.png

介绍

如果你正在构建现代云软件,无论是采用 Kubernetes 还是其他软件,可能都听说过“零信任”一词。零信任的安全模式变得如此重要,以至于美国联邦政府已经注意到:白宫最近发布了一份联邦零信任战略的备忘录[3],要求所有美国联邦机构在年底前满足特定的零信任安全标准。2024财年;国防部创建了[零信任参考架构](https://dodcio.defense.gov/Portals/0/Documents/Library/(U "零信任参考架构")ZT_RA_v1.1(U)_Mar21.pdf);美国国家安全局发布了一份Kubernetes 强化指南[4],专门描述了 Kubernetes 中零信任安全的最佳实践。

随着这种噪音,零信任无疑吸引了很多营销关注。但尽管有噪音,零信任不仅仅是一个空洞的术语——它代表了对未来安全的一些深刻和变革性的想法。那么具体来说,什么是零信任,为什么它突然变得如此重要?零信任对 Kubernetes 用户意味着什么?

47b09bf70d44da9ea89bba1d51f34317.png

什么是零信任?

正如所料,零信任从根本上讲是关于信任。它是解决安全核心问题之一的模型:是否允许 X 访问 Y?换句话说,我们是否相信 X 可以访问 Y?

当然,零信任中的“零”有点夸张。要使软件正常工作,显然某些东西需要信任其他东西。因此,零信任并不是完全消除信任,而是将信任降低到最低限度(众所周知的最小特权原则)并确保它在每一点都得到执行。

这听起来像是常识。但与技术中的许多新想法一样,理解零信任的最佳方法是了解它的反应。零信任摒弃了边界安全的观点。在边界安全模型中,在敏感组件周围实施“装甲”。例如,数据中心周围可能有一个防火墙,其任务是阻止问题流量和参与者进入。这种模型,有时被称为城堡策略,具有直观的意义:城堡的墙壁是为了将坏人拒之门外。如果你在城堡里,那么根据定义,你就是一个好人。

零信任模型表明,边界安全已经不足。根据零信任原则,即使在安全边界内,仍必须将用户、系统和网络流量视为不受信任。国防部的参考架构很好地总结了这一点:

“在安全边界之外或之内运行的任何参与者、系统、网络或服务都是不可信的。相反,我们必须验证任何试图建立访问权限的事物。从边界验证一次到对每个用户、设备、应用程序和交易的持续验证,这是我们如何保护基础设施、网络和数据的哲学的巨大范式转变。”

当然,零信任并不意味着抛弃防火墙——纵深防御是任何安全策略的重要组成部分。这也不意味着我们可以忽略所有其他重要的安全组件,例如事件记录和供应链管理。零信任只要求我们将信任检查从“一次在边界”转移到“每次,无处不在”。

然而,为了正确地做到这一点,我们需要重新考虑一些关于“信任”意味着什么以及我们如何捕捉它的基本假设。

14f8cefcbcd59a4cc88e82702514b4f9.png

身份

零信任最直接的影响之一是它改变了我们思考和分配身份的方式,尤其是系统身份。

在边界模型中,位置实际上就是身份。如果在防火墙内,那么是可信的;如果你在它之外,就不是。因此,基于边界的系统可以允许基于客户端 IP 地址等信息访问敏感系统。

在零信任世界中,这已经不够了。IP 地址仅用于指示位置,因此不再足以确定是否可以访问特定资源。相反,我们需要另一种形式的身份:以某种内在方式与工作负载、用户或系统相关联。而且这种身份需要以某种方式进行验证,而这种方式本身并不需要信任网络。

这是一个具有丰富含义的大要求。提供网络安全但依赖于 IP 地址等网络标识符(如 IPSec 或 Wireguard)的系统不足以实现零信任。

03680b5f7cd447ac68f160fc8f802e79.png

策略

有了新的身份模型,我们现在需要一种方法来捕获每个身份的访问类型。在上面的边界方案中,通常授予一系列 IP 地址对敏感资源的完全访问权限。例如,我们可能会设置 IP 地址过滤,以确保仅允许防火墙内的 IP 地址访问敏感服务。在零信任的情况下,我们反而需要执行必要的最低访问级别。基于身份以及任何其他相关因素,应尽可能限制对资源的访问。

虽然我们的应用程序代码可以自己做出这些授权决策,但我们通常会使用在应用程序之外指定的某种形式的策略来捕获它。拥有明确的策略允许我们在不修改应用程序代码的情况下审核和更改访问权限。

为了实现我们的零信任目标,这些策略可能非常复杂。我们可能有一个策略,它将对服务的访问限制为只有那些需要访问它的服务调用方(即,在双方都使用工作负载身份)。我们可能会进一步细化,只允许访问该服务上的某些接口(HTTP 路由、gRPC 方法)。更进一步,根据请求的用户身份限制访问。在所有情况下,目标都是最低权限——只有在非常必要时才能访问系统和数据。

c91d935fddb182325a2b045379d20093.png

执行

最后,零信任要求我们在最细粒度的级别上同时执行身份验证(确认身份)和授权(验证策略是否允许该操作)。每个授予数据或计算访问权限的系统都应该设置从外围到单个组件的安全边界。

与策略类似,这种执行理想情况下是在整个堆栈中统一完成的。不是每个组件都使用自己的自定义执行代码,而是使用统一的执行层,统一之后方便审计,并将应用程序开发人员的关注点与运营和安全团队的关注点分离。

11dcac9fa2def11ae6abf2758356c885.png

Kubernetes 零信任

我们必须从第一原则重新思考身份,以任意表达性策略的形式来将信任具象化,并将新的执行机制渗透到基础设施的各个层面。面对这些的要求,我们不可避免地经历短暂的恐慌。前面是不是提到需要在 2024 财年之前实现?

好消息是,至少对于 Kubernetes 用户来说,采用零信任的某些方面要容易得多。尽管有缺陷和复杂性,Kubernetes 是一个具有明确范围、定义良好的安全模型和明确的扩展机制的平台。这使其成为零信任实施的成功领域。

在 Kubernetes 中解决零信任网络的最直接方法之一是使用服务网格。服务网格利用了 Kubernetes 强大的“sidecar”概念,其中平台容器(译者注:此处指 sidecar 代理容器)可以在部署时以后期绑定操作功能的形式,与应用程序容器动态注入到一起。

服务网格使用这种 sidecar 方法在运行时将代理添加到应用程序 pod 中,并连接这些代理以处理所有传入和传出流量。这允许服务网格以与应用程序代码解耦的方式交付功能。应用程序和平台之间的关注点分离是服务网格主张的核心价值:当然,这些功能可以直接在应用程序中实现,但是通过解耦,我们允许安全团队和开发人员相互独立地迭代,同时仍然努力实现安全但功能齐全的应用程序的共同目标。

由于服务网格处理进出应用程序之间的默认网络,因此它可以很好地处理零信任问题:

  1. 工作负载身份可以从 Kubernetes 中的 pod 身份而不是其 IP 地址中获取。

  2. 可以通过在双向 TLS 中包装连接来执行身份验证,这是 TLS 的一种变体,其使用加密信息在连接的两端进行验证。

  3. 授权策略可以用 Kubernetes 术语表示,例如,通过自定义资源定义 (CRD),明确策略并并与应用程序解耦。

  4. 最重要的是,策略在跨技术栈的单个 pod 级别统一执行。每个 pod 都有自己的身份验证和授权,这意味着网络永远不受信任。

所有这些共同实现了我们的大部分零信任目标(至少对于 Kubernetes 集群而言!)。我们使用工作负载身份而不是网络身份;在最细粒度级别(pod)上执行,以及在技术栈中以一致且统一的方式应用身份验证和授权的,而无需更改应用程序。

在基本框架内,不同的服务网格实现提供了不同的权衡。例如, Linkerd[5]是一个开源、Cloud Native Computing Foundation[6] 毕业的服务网格项目,它提供了一个以简单性为目标和重点的实现,直接从 Kubernetes ServiceAccounts 提取工作负载标识来达到“零配置”,默认开启双向 TLS。同样,Linkerd 的基于 Rust 的微代理提供了一个极简的零信任实现。

5c8654b5e9506a87db47f5dde10ec69c.jpeg

当然,仅仅在集群中添加一个服务网格并不是万能的。安装后,必须完成定义、更新和评估授权策略的工作。集群运维人员必须小心确保所有新创建的 pod 都与它们的 sidecar 组件配对。当然,服务网格本身必须像集群上的任何软件一样进行维护、监控和迭代。然而,不管是不是灵丹妙药,服务网格确实提供了从集群中默认的未加密、未经身份验证的流量转变为具有强大工作负载身份和丰富授权系统的默认加密、经过身份验证的流量——这是朝着零信任迈出的一大步。

124454f4e88bdc123200ddff08bb8a3c.png

总结

零信任是一种强大的安全模型,处于现代安全实践的前沿。如果可以消除围绕它的营销噪音,那么采用零信任有一些深刻而重要的好处。虽然零信任需要对身份等核心理念进行一些根本性的改变,但如果 Kubernetes 用户能够采用服务网格并从纯粹基于边界的网络安全转变为“对每个用户、设备、应用程序和交易的持续验证”,那么他们至少有很大的优势。

关于作者

William Morgan

William Morgan是 Buoyant 的联合创始人兼首席执行官,Linkerd 的创建者。在加入 Buoyant 之前,他是 Twitter 的一名基础架构工程师,在那里他帮助将 Twitter 从单体架构转变为微服务。他是 Powerset、Microsoft 和 Adap.tv 的软件工程师,以及 MITRE 的研究科学家。

参考资料

[1] 《# What Does Zero Trust Mean for Kubernetes?》: https://www.infoq.com/articles/zero-trust-k8s/

[2] 零信任: https://en.wikipedia.org/wiki/Zero_trust_security_model

[3] 发布了一份联邦零信任战略的备忘录: https://www.whitehouse.gov/wp-content/uploads/2022/01/M-22-09.pdf

[4]Kubernetes强化指南: https://media.defense.gov/2021/Aug/03/2002820425/-1/-1/0/CTR_Kubernetes_Hardening_Guidance_1.1_20220315.PDF

[5] Linkerd: https://linkerd.io/

[6] Cloud Native Computing Foundation: https://www.cncf.io/

fe9429b74ec83557a3859e3f925d37bd.gif

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

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

相关文章

Serverless 应用中心:Serverless 应用全生命周期管理平台

简介:Serverless 应用中心,是阿里云 Serverless 应用全生命周期管理平台。通过 Serverless 应用中心,用户在部署应用之前无需进行额外的克隆、构建、打包和发布操作,即可快速部署和管理应用。Serverless 应用中心帮助用户快速联动…

云钉一体:EventBridge 联合钉钉连接器打通云钉生态

简介:今天,EventBridge 联合钉钉连接器,打通了钉钉生态和阿里云生态,钉钉的生态伙伴可以通过通道的能力驱动阿里云上海量的计算力。 作者:尘央 背景 “以事件集成阿里云,从 EventBridge 开始”是 EventB…

开源当道,群英荟萃!1024 程序员节北京峰会火热来袭

1024 程序员节,致敬每一位二进制世界的主角。由开放原子开源基金会主办,北京经开区国家信创园、CSDN 承办的 2022 1024 程序员节北京峰会将于 10 月 24 日精彩来袭。以“软件新时代 开源创未来”为主题,聚焦开源新潮流,诚邀广大程…

超全,一图了解 2022 长沙 · 中国 1024 程序员节!

超全版来啦!2022 长沙 中国 1024 程序员节重磅大咖再聚,共话中国技术新生态你想了解的全在这里收藏!收藏!收藏!

1024 程序员节技术英雄会鸣锣开场,问道中国技术新生态

战鼓鸣,英雄至。10 月 24 日,2022 长沙中国 1024 程序员节重磅环节“技术英雄会”鸣锣开场!中国工程院院士、开源掌门人领衔,各领域专家、精英云集,围绕本届大会主题“算力新时代,开源创未来”,…

无尽创想!CSDN 1024 大赛重磅发布

在构建科技世界的过程中,1024 这个数字被赋予了特殊的意义,它代表着广大的程序员群体,更蕴藏着无穷的想象力与价值。在 1024 程序员节发展为程序员的盛会之后,1024 大赛应运而生,并作为 1024 程序员节全新的板块重磅发…

小镇青年程序员的逆袭人生:从差点回老家到荔枝技术骨干

编者按: 1024 是 2 的十次方,是二进制计数的基本计量单位之一。在计算机的发展史中,在和 0/1 所代表的二进制世界里,有人用代码编织出了形形色色的数字、程序、互联网,创造出一个个神话。 ——他们就是一群可爱、低调…

1024统信举办首届技术开放日,硬核技术引领操作系统“大迁移”

10月24日程序员节之际,统信软件首届技术开放日在国家信创园区圆满落下帷幕。统信软件首届技术开放日囊括UP主直播互动、打卡探园、“大迁移”主题论坛、全系产品体验等精彩环节。来自统信软件研发部门负责人、行业专家、技术大咖以及专业媒体代表百余人莅临活动现场…

FFA 议程上线!实时化浪潮下,Apache Flink 还将在大数据领域掀起怎样的变革?...

Flink Forward Asia 2022 将于 11 月 26-27 日在线上举办,议程内容正式上线!今年是 Flink Forward Asia(下文简称 FFA)落地中国的第五个年头,也是 Flink 成为 Apache 软件基金会顶级项目的第八年。过去这几年&#xff…

全面提升易用性:OpenClusterManagement 0.7 版本发布

简介:千呼万唤始出来,三月末 OpenClusterManagement 社区正式发布了 v0.7 版本。在新的版本有一系列新的功能特性欢迎感兴趣的读者体验探索,同时在这个版本中社区维护者对目前已有的功能也修复了一些问题并对面向最终用户的体验进行了打磨和提…

“晕乎乎的概念”:阿里云函数计算的“应用”又是个啥

简介:为什么阿里云函数计算发布了这么多功能,只有少数的功能会伴随着体验活动一起来做运营?那么这个“应用”到底是何方神圣?他和现在“服务”,“函数”有啥关系? 作者:刘宇 曾经,…

如何使用阿里云 CDN 对部署在函数计算上的静态网站进行缓存

简介:为了进一步提升网站的访问速度,我们会使用 CDN 对网站进行加速,但是最近在调试阿里云的函数计算和 CDN 的配合使用时发现了一个需要额外注意的地方。 作者:邓超 | Serverless Devs 开源贡献者 前言 为了进一步提升网站的访…

放弃支持 SQL 惹争议,CEO:你可以怪我!

整理 | 苏宓出品 | CSDN(ID:CSDNnews)作为关系型数据库的标准语言,SQL 凭借着功能丰富、使用方便灵活、语言简洁等特性备受欢迎,行业中如 MySQL、Oracle、SQL Server、Sybase、Informix 等主流数据库都将 SQL 作为其标…

解决方案|致拓T8数字化ERP

简介:通过快速构建敏捷ERP系统,实现从销售到财务的全流程闭环管理,助力企业数字化升级。 「致拓T8数字化ERP」解决方案聚焦业财一体,助力企业卓有成效地提升经营收益,赋能企业个性化数字生产管理。本解决方案由上海致…

携手数字人、数字空间、XR平台,阿里云与伙伴共同建设“新视界”

简介:2022阿里云视觉计算私享会:加速虚拟与现实的交互。 引言:2022年互联网行业里XR、数字孪生、虚拟现实等领域再次“翻红”、新旧概念频出,不少人相信这些技术将给当下的互联网行业乃至传统行业带来翻天覆地的变化。虽然XR的应…

六大挑战下,如何利用云原生数据战略打造数据驱动型企业?

在刚刚落幕的2022亚马逊云科技中国峰会上,亚马逊云科技大中华区战略业务发展部总经理顾凡带来《亚马逊云科技 成为探路者,成就探路者》主题演讲,总结了数据驱动型企业面临的六大挑战,并提供了解决思路。IDC预测,仅在20…

宜搭5月更新:跨应用数据读写能力升级,AI组件内测开放

简介:表单、权限管理、AI组件等功能上新啦~ 本次,我们带来了表单、权限管理、数据管理、平台管理权限、组件等功能的升级。 表单 支持跨应用数据查询 在使用组件数据联动、关联其他表单数据、关联表单组件数据筛选/数据填充等功能时&…

阿里云张新涛:异构计算为数字经济提供澎湃动力

简介:阿里云弹性计算在视觉计算上的应用实践分享。 图:阿里云弹性计算产品专家-张新涛 5月11日,在“2022阿里云视觉计算私享会”上,阿里云弹性计算产品专家张新涛为大家带来了题为《阿里云弹性计算在视觉计算上的应用实践》的主题…

提升Java字符串编码解码性能的技巧

简介:常见的字符串编码有LATIN1、UTF-8、UTF-16、GB18030,他们各有各的特点,且之间的转换比较复杂。本文将为大家介绍提升Java字符串编码解码性能的技巧。 作者 | 温绍锦 (高铁) 来源 | 阿里开发者公众号 1 常见字符串编码 常见的字符串编码…

BladeDISC 0.2.0更新发布

简介:在BladeDISC正式开源三个月后,我们发布了0.2.0版本,该更新包含了大量的性能优化与功能增强。 在BladeDISC正式开源三个月后,我们发布了0.2.0版本,该更新包含了大量的性能优化与功能增强。 BladeDISC是目前业界领…