问题标签 [rego]

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 投票
2 回答
145 浏览

open-policy-agent - 给定动态数量的参数的数组产品

我有一个执行数组产品的函数:

如果我有如下定义的三个数组:

那么输出arrayProduct(animals1, animals2, animals3)将是:

如果我可以保证输入将始终是列表,我可以创建一个函数来做同样的事情,除了它可以接受动态数量的列表作为输入而不是仅仅 3?

我也在探索是否也可以只使用一个包含其中所有数组的参数来执行此操作,而不是接受多个参数。例如:

任何对任何一种方法的解决方案的见解将不胜感激。

0 投票
1 回答
1697 浏览

open-policy-agent - 从 Rego 中的一串元素创建一个集合

如何从 Rego Open Policy Agent 语言中的字符串创建集合?

我有一串元素,比如"values": "pvc-volume,emptydir-volume,hostPath,ConfigMaps"哪些元素需要根据一组给定的允许值进行验证

例如使用交叉点

valid_backup_profiles & elements_coming_from_string_above

我知道该split(string, ",")函数返回一个元素数组,但该数组不能与集合相交。有没有什么聪明的方法可以从字符串而不是数组生成集合?

0 投票
1 回答
2319 浏览

open-policy-agent - Rego 规则中的参数 [Open Policy Agent]

如何在 Rego 规则中使用参数?我会有这样的事情:

wherelabel用于构建错误消息。我从 OPA 收到错误:var label is unsafe ...

一般来说,我仍然不清楚如何在 Rego 中传递参数。

0 投票
1 回答
2168 浏览

open-policy-agent - 开放策略代理满足所有数组项的条件

试图解决这个问题一段时间 - 我有一个 JSON 输入,其中包含一个数组,这样说:

我的目标是验证数组中的所有对象是否满足具有名为 foo 的字段的条件(实际用例是确保云部署中的所有资源都有标签)。我的问题是标准 rego 表达式被评估为“至少”而不是“全部”,这意味着表达式如下:

总是返回 true,即使某些对象不满足这一点。我看过这个,但是评估正则表达式返回true或者false当我的策略检查字段是否存在时,这意味着如果它不存在,我会收到一个“var_is_unsafe”错误。

有任何想法吗?

0 投票
2 回答
960 浏览

open-policy-agent - OPA 单元测试失败,如何输出响应变量?

OPA 的新手,我正在编写 OPA 单元测试用例。

它失败了response == "approved"。我想查看响应变量的输出,如何输出?

0 投票
1 回答
60 浏览

terraform - 开放策略代理定义动态全局变量

我想知道是否有任何方法可以美化我的代码,因为它看起来非常低效且完全不干燥。我想要实现的是将特定资源从资源列表中拉出(从 terraform 计划中名为“aks”的资源),并针对它运行一些测试。问题是,我使用some关键字来获取它,这会阻止我配置全局变量,这会导致大量重复,例如:

有没有办法创建一个“全局”变量来捕获 aks 资源,以防止所有重新计算?

干杯。

0 投票
2 回答
1067 浏览

open-policy-agent - 比较 Rego 语言中的两个数组

我想比较所需数组中输入数组中的每个值。在其他语言中,两个正常的循环会做到这一点。但在 Rego 语言中,它们不是循环。有谁知道我该怎么做

0 投票
1 回答
435 浏览

open-policy-agent - OPA 冲突政策

我写了一个示例 rego 代码

当我尝试使用带有参数的http://localhost:8181/v1/data/http/authz/allow API验证策略时

我得到回复:{"decision_id":"xxxxx","re​​sult":true}

这是预期的结果吗?如果存在冲突的策略,不应该出现错误吗?

0 投票
1 回答
116 浏览

open-policy-agent - OPA PrepareForEval 时间呈指数增长

我需要我的应用程序能够加载策略 (rego),然后根据定义的策略评估输入 JSON。

我错误地PrepareForEval在我的评估 API 中使用了而不是加载策略 API。这个结果让我感到惊讶,因为每次评估后响应时间都呈指数级增长,而策略却保持不变。虽然,在此之后,我已经意识到并改变了我的逻辑,在加载策略时调用PrepareForEval方法,然后将准备好的查询实例存储在我的结构实例中。但是我仍然担心如果在加载策略时准备方法被多次执行,那么它仍然会成为一项昂贵的操作。

因此,最好指出使用 prepare 方法的正确方法。

示例代码:

0 投票
0 回答
232 浏览

open-policy-agent - OPA - http.send 方法抛出间歇性 403

我正在使用版本:“0.21.0-istio of OPA 及以下是流程

  1. 用户访问我的 API
  2. 我从标头中获取某些信息,并使用 http.send 对另一个系统进行内部调用以获取与用户关联的详细信息
  3. 根据响应,我进行匹配并决定是否可以允许用户访问或拒绝

我遇到了随机的间歇性问题,其中 http.send 方法被 opa 取消,因此我的代码中断,因为我不能允许用户在不匹配响应的情况下访问 API

以下是我在日志中看到的错误

请指教