Open Policy Agent如何工作以保护Cloud-Native工作负载

2019-09-18 16:13:37 来源: INeng财经

T安全的核心要素是制定适当的策略来定义给定流程或实体的内容和内容。在云本地世界中,有多个分布式元素可以存在于不同的部署模式中,定义和实施策略的挑战是不平凡的,但这是开放策略代理(OPA)项目希望解决的挑战。本周,在西班牙巴塞罗那举行的DockerCon Europe 2018活动会议上,Strya的软件工程师Torin Sandall和Docker的软件工程师Justin Cormack概述了OPA如何帮助创建和实施安全性。

“除了很长的政策清单之外,我们还要处理这样一个事实:我们正在处理许多不同的复杂系统,用不同的语言和协议编写,系统变化非常快,”Cormack说。

OPA项目于2016年启动,并于3月29 日成为云原生计算基金会(CNCF)的一部分。它提供了帮助定义和部署策略的机制。Sandall解释说OPA是一个开源的通用策略引擎。

“这意味着你基本上可以使用OPA,你可以将它应用于任何系统中的任何服务[和]任何层的堆栈,以帮助实施策略,”Sandall说。“OPA的目标是提供一个工具或库或一个组件,使您能够统一各种技术的策略执行。”

Sandall表示,OPA已经被包括Netflix在内的一些知名公司采用,后者利用该技术对内部资源实施广泛的授权政策。此外,配置管理供应商Chef正在其产品中嵌入OPA,以便为最终用户提供基于策略的控制。体验管理供应商Medallia也在使用OPA,帮助编制和实施基础架构的风险管理政策。

“目前有数十家公司在他们的Kubernetes集群中使用OPA来对那些部署在这些系统上的工作负载实施准入控制策略,”他说。

这个怎么运作

Sandall表示,通过OPA,政策决策可以与政策执行脱钩。因此,不要采取特定的政策,如HIPAA(健康保险流通与责任法案)或PCI-DSS(支付卡行业数据安全标准)合规,写下维基或将它们放入电子表格并采取政策和努力将它们编码为服务,OPA方法将策略卸载到专用组件。

“例如,如果我们要构建一个公开服务于流量请求的API的服务,那么它的工作方式就是每当服务收到请求时,它就会根据OPA策略执行查询,”他说。“查询会问一个问题,'这个请求是否应该被允许?'”

在对OPA进行查询之后,它会接受该查询并根据它可以访问的许多策略和数据对其进行评估。桑德尔说,评估过程的结果是一个决定; 它是对允许请求用户查看数据或执行此操作,还是部署此容器等问题的答案。然后将OPA决定发送回要执行的服务。

“该服务可以是作为更大应用程序的一部分构建的内部微服务,也可以是公司的API服务器,或者它可以是网关,或者它可以是Message Broker或您正在尝试的数据库保护对敏感数据的访问。这并不重要,“桑德尔说。“这就是为什么我们称之为通用目的,因为你可以把它应用到各种各样的软件中。”

政策语言

Sandall表示,OPA提供了一种高级声明性语言,用于编写问题的答案,例如,此用户是否可以访问此资源并在此资源上执行此操作?策略语言本身称为Rego,它的语法非常简单。

“有了Rego,因为它只是纯粹的逻辑,而且只是我们正在运行的纯数据,所以很容易就只是问它的临时问题,”他说。“这很有用,因为你不仅可以在执法中使用它,而且它对于审计和干运行等也很有用。”

今天的策略通常在具有不同机制的组织中完成,包括访问控制列表(ACL),身份和访问管理(IAM)和基于角色的访问控制(RBAC)类型的系统。Sandall说组织实际上可以在Rego策略中实现RBAC,ACL或IAM样式模型。

他补充说,RBAC,ACL和IAM系统可能受到一定限制和限制,并不总是涵盖所有可能的用例。例如,如果组织需要根据一天中的时间或基于连接的客户端所基于的地理区域来实施策略,那么在ACL或RBAC系统中轻松表达这些内容可能具有挑战性。 。

“这就是Rego所说的。它实际上可以让你表达这些政策并组成它们,”Sandall说。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。