作者:Rita Zhang(微软)、Max Smythe(谷歌)、Craig Hooper(澳大利亚联邦银行)、Tim Hinrichs(Styra)、Lachie Evenson(微软)、Torin Sandall(Styra)
Kubernetes 的 Pod Security Policy(PSP)即将被淘汰和移除,所以需要找到一个替代方案来填补这个即将出现的空白。目前看来,Kubernetes 自身并没有准备相应的替代方案,因此需要在 Kubernetes 之外寻求解决之道。CNCF 的两个头部项目可能会成为首选的替代产品,它们分别是基于 Open Policy Agent(OPA)的 Gatekeeper 以及 Kyverno,两个产品各行有千秋,但是目前还没有对这两个产品进行过正式的比较,这就让面临选择的用户无从下手了。这两个项目都是全功能的 Kubernetes 策略引擎,因此其功能不仅限于替代 PSP。本文尝试对 Gatekeeper 和 Kyverno 进行一个中立客观的比较,让用户能够据此作出决策。这里仅从 Kubernetes 的视角来对这两个项目来进行评价。
OPA(发音为 “oh-pa”)是一个全场景通用的轻量策略引擎(Policy Engine),OPA 提供了声明式表达的 Rego 语言来描述策略,并将策略的决策 offload 到 OPA,从而将策略的决策过程从策略的执行中解耦。OPA 可适用于多种场景,比如 Kubernetes、Terraform、Envoy 等等,简而言之,以前需要使用到 Policy 的场景理论上都可以用 OPA 来做一层抽象,如下所示:
Kubernetes 的 Pod Security Policy(PSP)[1] 即将被 淘汰和移除[2],所以需要找到一个替代方案来填补这个即将出现的空白。目前看来,Kubernetes 自身并没有准备相应的替代方案,因此需要在 Kubernetes 之外寻求解决之道。CNCF 的两个头部项目可能会成为首选的替代产品,它们分别是基于 Open Policy Agent(OPA)的 Gatekeeper 以及 Kyverno,两个产品各行有千秋,但是目前还没有对这两个产品进行过正式的比较,这就让面临选择的用户无从下手了。这两个项目都是全功能的 Kubernetes 策略引擎,因此其功能不仅限于替代 PSP。本文尝试对 Gatekeeper 和 Kyverno 进行一个中立客观的比较,让用户能够据此作出决策。这里仅从 Kubernetes 的视角来对这两个项目来进行评价。
了解如何利用 OPA Gatekeeper 在 Kubernetes 集群中编写和执行策略,确保环境的安全性和高效资源管理。
在生产环境中应用 Kubernetes 时,出于安全、合规等管控目的,经常需要对工作负载进行审计、校验以及变更,例如下列场景:
在实际生产环境中,许多场景需要进行策略控制,例如,不同团队的API需要限制访问权限,以避免未经授权的网络访问。为实现这种控制,可以采用策略控制的方法。然而,实施策略控制需要修改代码,而且策略通常很分散。为了解决这个问题,可以使用OPA(Open Policy Agent)进行策略控制。
这两组开源工具都是是基于kubernetes 的webhook机制,支持validatingwebhook和mutatingwebhook。整体思路上是一样的,都是针对资源的字段,如标签、镜像等来设置规则,在对kubernetes资源的控制范围和粒度上,二者可以看作是一样的。
云原生策略执行引擎被高盛、Netflix、Pinterest和T-Mobile等组织用于生产
前面我们介绍了使用 kube-mgmt 这个 sidecar 容器来完成 OPA 策略的自动同步,此外还有另外一个更加高级的工具 Gatekeeper,相比于之前的模式,Gatekeeper(v3.0) 准入控制器集成了 OPA Constraint Framework,以执行基于 CRD 的策略,并允许声明式配置的策略可靠地共享,使用 kubebuilder 构建,它提供了验证和修改准入控制和审计功能。这允许为 Rego 策略创建策略模板,将策略创建为 CRD,并在策略 CRD 上存储审计结果,这个项目是谷歌、微软、红帽和 Styra 一起合作实现的。
在之前的 『K8S生态周报』 和 《搞懂 Kubernetes 准入控制(Admission Controller)》 等文章中,我曾提到过 Kyverno 这个云原生策略引擎项目,很多小伙伴在后台私信我说对这个项目比较感兴趣。这篇文章我们专门来聊聊 Kyverno 吧。
Kubernetes API 服务器是 Kubernetes 控制平面的核心组件之一。该组件暴露 Kubernetes API,并充当控制平面的前端。当用户或进程与 Kubernetes 交互时,API 服务器处理这些请求,并验证和配置 Kubernetes API 对象,如部署或命名空间。当然,这是在 Kubernetes Admission Controllers 的帮助下进行的。那么,什么是 Admission Controller?
继续我们的云原生技术走马观花的旅途,这一次我聊一下规则管理Open Policy Agent。相比较来说,这个概念及使用可能并不广范,大多数情况下并无必要使用这个东西,因为它增加了架构与部署的复杂度。
OPA,全称 Open Policy Agent(开放策略代理),官网是 openpolicyagent.org。OPA 主要为了解决云原生应用的访问控制、授权和策略。OPA 是通用的,与平台无关。请求和响应是以 JSON 格式发送的。
在前面的一篇文章中我们介绍了如何实现 Kubernetes 的策略管理。下面,让我们了解一下 Kubernetes 开发中的内置策略管理工具。译自 Policy Management in Kubernetes is Changing。
https://www.magalix.com/blog/enforce-pod-security-policies-in-kubernetes-using-opa
在 CNCF安全技术咨询小组(TAG)[1]的帮助下,CNCF 最近对社区进行了一次微调查,以了解组织是如何管理云原生安全的。
Kubernetes 准入控制器是集群管理必要功能。这些控制器主要在后台工作,并且许多可以作为编译插件使用,它可以极大地提高部署的安全性。
在 CNCF 安全技术咨询小组(TAG)[1]的帮助下,CNCF 最近对社区进行了一次微调查,以了解组织是如何管理云原生安全的。 总体而言,该报告[2]显示,各组织认识到云原生架构中传统安全与现代安全之间的差异,并看到了现代云原生安全的价值。多达 85%的受访者表示,现代化的安全性对他们组织的云原生部署非常重要。没有人表示不重要。 然而,只有 9%的组织拥有一套完整的文档化的过程,这些过程是为他们的团队自动实现的。因此,虽然组织认识到这些策略的重要性,但是作为一个社区,仍然有很长的路要走,以增加采用和
Gatekeeper 是基于 OPA(Open Policy Agent) 的一个 Kubernetes 策略解决方案。在之前的文章中说过,在 PSP/RBAC 等内置方案之外,在 Kubernetes 中还可以通过策略来实现一些额外的管理、安全方面的限制,本文将会从安装开始,介绍几条实用的小策略。
作者:Tabitha Sable(Kubernetes SIG Security)
Pod Security Policy 是 Kubernetes 的重要安全措施之一,它首先定义角色,其中规定了对 Pod 行为的限制,其中包括对特权容器、主机网络、Capability、加载卷类型等内容进行了限制,然后通过 RBAC 把 SA-Pod-PSP 三者结合起来,完成对 Pod 权限的限制。相对于 SecurytContext 来说,PSP 更具强制性和可管理性,CIS Kubernetes Benchmark(v1.6)中明确地把启用 PSP 设置为记分项目,很多 Kubernetes 安全相关软件也会据此进行检查。
在项目中, Kubernetes 集群会对 Kubernetes APIServer 的每个请求都进行身份验证和授权管理。在此过程中,授权管理通常由 RBAC 授权模块来实现,但开发者也可以选择其他组件,如 Open Policy Agent(OPA)。
Kubernetes 持续发展,提供可以显著增强集群性能、效率和安全性的新功能和优化。对于高级工程师,掌握这些优化可以带来更强大、更可扩展且更具成本效益的部署。以下是 18 个高级 Kubernetes 节点优化的精选列表,按其在 2024 年的预期实用性和受欢迎程度排序。
本文所讲的策略,指的是在 Kubernetes 中,阻止特定工作负载进行部署的方法。
OPA 的 Gatekeeper 以及 Kyverno 是 CNCF 的两个头部策略管理项目,两个产品各有千秋,前面我们已经学习了 Gatekeeper,接下来我们就来了解下如何使用 Kyverno。
Kubernetes 的供应链安全需求中,有一个重要的镜像签署和校验的环节,这个环节可以使用 OPA 结合 Notary 的方式来完成。最近 Linux基金会宣布免费 sigstore 签名服务,以确认软件的来源和真实性,在项目网站闲逛时,发现一个叫做 cosign 的子项目,这是个轻量级的选择,让我非常有兴趣,于是就有了本文。
Gatekeeper是目前第一个开源的DoS拒绝服务攻击防护系统。该系统被设计成可以扩展到任何峰值的带宽,因此它可以抵御目前的DoS拒绝服务攻击攻击。尽管Gatekeeper的体系结构在地理上是分布式的,但描述所有传入流量的网络策略必须是集中式的。这种集中化策略使网络运营商能够利用在很高延迟下不可行的分布式算法(例如分布式数据库),并同时抵御DoS拒绝服务攻击。
客座文章最初由eficode顾问Michael Vittrup Larsen在eficode博客上发表
平台工程专注于通过创建和维护称为平台的内部软件产品来赋能开发人员和组织。在本博客中,我们将探讨平台是什么、它们为何重要,并揭示创建和维护架构良好的平台的最佳实践。
1、首先下载这个脚本:macOS-GateKeeper-Helper: Simple macOS GateKeeper script.
本周事情比较多,空闲时间基本都在关注上游的进展,没折腾其他的东西。Kubernetes v1.25 正常情况下会在本月发布正式版本。
● 高密度:采用编码、位打包(bit-packing)和复制数据删除(deduplication techniques)技术来优化数据集的内存占用率。
本篇我来为你介绍一个我个人很喜欢的,通用策略引擎,名叫 OPA,全称是 Open Policy Agent。
大型项目中基本都包含有复杂的访问控制策略,特别是在一些多租户场景中,例如Kubernetes中就支持RBAC,ABAC等多种授权类型。Dapr 的 中间件 Open Policy Agent 将Rego/OPA策略应用到传入的Dapr HTTP请求中。
译自 10 Kubernetes Best Practices in DevOps — without ChatGPT 。
「K8S 生态周报」暂停了 2 个多月的时间,期间也有小伙伴来催更,感谢大家的持续关注!!!
Open Policy Agent 简称 OPA,是一种开源的通用策略代理引擎,是 CNCF 毕业的项目。OPA 提供了一种高级声明式语言 Rego,简化了策略规则的定义,以减轻程序中策略的决策负担。在微服务、Kubernetes、CI/CD、API 网关等场景中均可以使用 OPA 来定义策略。
1、 Visual Studio Code 1.87 发布,编辑器中的语音听写 - 使用你的声音直接在编辑器中听写。对于安装了 VS Code Speech 扩展的用户,可以使用语音直接在编辑器中听写。--vscode社区
不要左移而要下移。为开发者简化困难的事情。从 Kubernetes 的流行及其 API 学习。
去年这个时候,我们推出了Rego游乐场(Rego Playground)。游乐场提供了一个在线交互环境,用户可以在这里试验和共享OPA策略。
微服务通过将应用程序分解为更小的、独立的部分来提高单个开发团队的生产力。然而,仅使用微服务并不能解决诸如服务发现、身份验证和授权等古老的分布式系统问题。事实上,由于微服务环境的异构性和短暂性,这些问题往往更为严重。
作者:本文将带你初步了解开放策略代理 OPA,一个平台无关的策略执行工具。原文:https://www.magalix.com/blog/introducing-policy-as-code-the-open-policy-agent-opa
我们希望借助本文,让读者了解到如何在 Kubernetes 中使用可信镜像,其中依赖两个著名的 CNCF 开源项目:Notary 和 OPA。主要思路是使用 OPA 策略来定义自己的内容限制策略。
e01镜像是目前取证中最常用的镜像格式,在制作过程中进行校验与压缩,兼具了速度与完整性两方面,对于e01镜像仿真最简单的方式就是直接将其作为物理盘挂载到本地,可以用工具 AccessData FTK Imager,挂载后我们简单翻一翻文件内容,可以看到安装了 VMware Tools,在路径
关于 Flux 项目谈安全的博客系列的下一篇文章将介绍我们如何以及为什么要为 Flux CLI 及其所有控制器镜像使用签名,以及你可以在工作流中做些什么来验证镜像来源。
在这篇文章中,我们将对F-Secure Internet Gatekeeper应用程序中的一个堆溢出漏洞进行解析,并介绍为何一个简单的错误就导致了一个可利用的未认证远程代码执行漏洞存在。
关于OPA(Open Policy Agent,开放政策代理),我最喜欢的一点是它可以与其他系统互操作。任何生成JSON的东西 — 现在大多数系统都可以 — 都可以为OPA提供呈现政策判断的输入。由于这种互操作性,你可以将OPA与基于容器的开发工具(如Docker)、基础设施配置工具(如Terraform)、容器编排平台(如Kubernetes)一起使用,而这还只是皮毛。
领取专属 10元无门槛券
手把手带您无忧上云