问题标签 [open-policy-agent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
55 浏览

jwt - OPA 参考语言:如何知道变量的类型

我正在使用开放策略语言为我的微服务实施策略,使用 JWT 和角色和组。

我的 OPA 政策正在解码 JWT 并提取声明。问题是其中一些声明可能是标量(例如 group1)或数组(例如 ["group1", "group2"]),我需要知道才能正确处理它。

问题类似于 如何确定 opa 中变量的类型?

有什么帮助吗?

0 投票
1 回答
786 浏览

open-policy-agent - 如何根据开放策略代理 (OPA) 中的 OR 标准返回响应对象。获取错误完整规则一定不能产生多个输出?

我试图根据触发该规则的条件返回 OPA 策略中的响应对象,但给出错误“错误评估 policy.rego:11: eval_conflict_error: 完整规则不得产生多个输出”,因为两个 OR 条件都评估为真的。

例如,这是一个示例 OPA 策略:

使用以下输入:

在这里,我尝试将 OptionalRule 实现为 OR 条件并尝试返回触发它的 optionalRule 条件,但它给出了上述错误。关于如何实施的任何想法?

0 投票
1 回答
69 浏览

open-policy-agent - 断言集合中的每个字符串在对象中都有一个关联的键

在阅读了几次 Open Policy Agent 介绍文档之后,我在编写一条规则时遇到了麻烦,该规则断言对于集合中的每个元素,指定的对象都有一个关联的键。

这是我目前正在尝试的一个简化示例

https://play.openpolicyagent.org/p/oWBumjRkWX

据我了解,当不包含该元素并且我已经测试它是否有效has_lemon时应该是错误的。但是,我也认为该规则应该评估到这里,因为缺少and的键。我在这里做傻事吗?fruits"lemon"all_fruits_have_entries_in_my_objectfalsemy_object"orange""banana"

0 投票
1 回答
311 浏览

spring-security - 如何即时更新 OPA 政策

我是 OPA(开放策略代理)的新手,并试图将 OPA 用作授权的集中服务。

我有几个使用 Spring Boot 构建的微服务,我不想使用 Spring Security 来保护我的资源/控制器,因为这需要使用 Spring 安全注释来注释我的控制器,并且对资源和角色映射的任何更改都会导致部署服务,这是使用 OPA 的动机,因为我的资源和角色映射并保存在 DB(JSON 格式)中并且可以动态配置/更改,所以我如何更新 OPA 策略,我遇到了 bundles API但这需要将策略(rego 文件)打包为 tar 文件,OPA 会定期提取它,那么如何将我的 JSON(资源到角色映射)转换为 rego 文件?

0 投票
1 回答
410 浏览

open-policy-agent - 开放策略代理 - 如何从 REST API 持久化策略?

我是 OPA(开放策略代理)的新手,并尝试使用 REST API /v1/policies/{id} 创建新策略。有用!但是,OPA 服务器将其保存到内存中,重新启动后我的所有策略都被删除。我该如何解决它,我应该使用哪些参数来持久保存创建的策略?

0 投票
1 回答
500 浏览

open-policy-agent - 如何在 OPA Rego 中将列表转换为具有重复键的对象

我是 Open Policy Agent (OPA) 和 Rego 语言的新手。我需要将从输入中获得的对象列表转换为对象(最好在 O(n) 时间内)。问题是使用的密钥可能在列表中重复。输入示例:

预期输出:

这样做的最佳选择是什么?我试图创建一个函数,但从未评估输出:

我发现的唯一选择是内循环(O(n ^ 2)):

0 投票
2 回答
965 浏览

kubernetes - 如何在 Kubernetes 中限制对“kube-system”等命名空间的访问

我们想为我们的客户提供一个预装应用程序的集群,因此希望给客户除我们提供的命名空间和系统命名空间(例如“kube-system”)之外的所有权利,以便他们看不到敏感信息秘密中的信息或破坏那里的任何东西。我们已经用 OPA 进行了测试,但不幸的是你不能在那里拦截 GET 请求,这意味着秘密仍然可以查看。它也不适用于 RBAC,因为您不能拒绝访问那里的特定命名空间。

有没有办法做到这一点?

谢谢和最好的问候

吠陀

0 投票
1 回答
678 浏览

unit-testing - rego_type_error:未定义的函数

我是 OPA 和 rego 文件的新手。我创建了一个这样的 rego 文件:

而且,我创建了这样的测试 rego 文件:

当我运行这个测试用例时,我收到类似"rego_type_error: undefined function data.myaccess.is_user_allowed"的错误。帮我解决这个问题。谢谢

0 投票
1 回答
73 浏览

go - 如何在另一个内置的 Open 策略代理中使用内置

有没有办法在我想要创建的新内置中调用内置(如 io.jwt.decode_verify(string, constraints))?

或者有没有办法调用 OPA 的内部包的方法?

0 投票
1 回答
427 浏览

.net - 运行 regos 测试时遇到错误说“rego_unsafe_var_error”

为我的 rego 文件运行测试时出错。雷戈文件:

Rego 测试文件:

如果我在测试文件中设置值,can_tigger:= true/false那么我的测试将通过,但这样做不是编写测试的正确方法。