问题标签 [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 回答
432 浏览

open-policy-agent - OPA HTTP 自引用 PUT 请求超时

我在一个main包中有两个策略,它们调用同一个实例(本地运行的 OPA 服务器),如下所示:

我像这样运行我的 OPA 服务器:

当我 curlget策略时,我得到 200 响应:

但是,当我卷曲 put 策略时,它会在 5 秒后超时:

有谁知道为什么会发生这种情况PUT而不是GET针对 OPA 实例的请求?

同时,类似的 curl 效果很好:

我知道这是一个奇怪/糟糕的“用例”,但出于好奇,我想更好地了解 rego http 功能中发生了什么。

0 投票
1 回答
157 浏览

kubernetes - 如何通过开放策略拒绝在 openshift 中查看/获取操作?

我们要禁用oc get/describeforsecrets以防止令牌登录

当前政策禁止创建、更新、删除但不禁止查看机密

资源对象中的数据只是:

{\"kind\": {\"group\": \"\", \"kind\": \"Secret\", \"version\": \"v1\"}, \"name\": \"s5-token-n6v6q\", \"namespace\": \"demo\", \"operation\": \"DELETE\", \"resource\": {\"group\": \"\ ",\"资源\":\"秘密\",\"版本\":\"v1\"},\"uid\":\"748cdab2-1c1d-11ea-8b11-080027f8814d\",\"用户信息\": {\"groups\": [\"system:cluster-admins\", \"system:masters\", \"system:authenticated\"], \"username\": \"system:admin\ "}

https://github.com/raffaelespazzoli/openshift-opa/blob/master/examples/authorization-webhooks/unreadable_secrets.rego中的示例使用了resource.spec对象,但我认为它在我的input/AdmissionReview对象中不可用?

我在用

  • 迷你换档 1.24
  • openshift v3.9.0+2e78773-56
  • Kubernetes v1.9.1+a0ce1bc657
  • etcd 3.2.16
0 投票
1 回答
45 浏览

kubernetes - 如何通过开放策略策略控制 Kubernetes GET 对象请求?

opa(开放策略)可以在创建、删除或更新 Kubernetes 资源之前引用其策略。但在获取(描述或获取)时不能。如何强制执行此操作以获取请求?这是 OPA 的路线图还是准入控制器的范围?

我们想要阻止查看服务帐户令牌。

0 投票
1 回答
1207 浏览

open-policy-agent - 如何在 Rego 中发出 HTTP GET 请求

我想向 rego 中的 url 发出获取请求。但它引发了无效参数:rego 模块中不允许的内置函数调用:http.send错误这是我的代码。

我做错了什么?

0 投票
2 回答
966 浏览

kubernetes - 不使用标签的命名空间子集的 Gatekeeper/OPA 约束

我正在使用网守/OPA 为我在特定命名空间中运行的各种服务创建约束。为此,我依靠 namespaceSelectors 将约束与一组命名空间相匹配。我的 CI/CD 流程负责使用我的约束将要查找的所需标签来标记我的所有自定义命名空间。

但是,我现在需要确保在没有所需标签的情况下不会创建新的命名空间(否则这个命名空间将忽略我的所有约束)。我的 CI/CD 工具应用了这些标签这一事实并不能让我确定在没有这些标签的情况下我的集群中没有创建其他命名空间。

如果我在所有命名空间上应用 k8srequiredlabels[2] 约束模板,这将发现对系统命名空间(如 kube-system)的违反。网守约束允许您指定以下任一项以匹配您的约束[1]:

理想情况下,我想说我想确保所有名称空间上都有 x 标签,排除列表中的名称空间除外(例如 kube-system)。但是,没有选项可以以独占方式使用上述“命名空间”列表,而其他 2 个选项需要有人手动将标签添加到新创建的命名空间(这为错误提供了空间)。

  • 关于如何确保集群命名空间的子集具有 x 个标签而无需手动标记它们并使用标签/命名空间选择器的任何建议?
  • 如果名称空间不符合某些条件(例如带有 x 标签),您将如何防止使用 OPA 和 Gatekeeper 创建名称空间?

[1] https://github.com/open-policy-agent/gatekeeper/pull/131/files

[2] https://github.com/open-policy-agent/gatekeeper/blob/master/demo/agilebank/templates/k8srequiredlabels_template.yaml

0 投票
2 回答
96 浏览

kubernetes - 对非管理员的选择性 kubernetes 命名空间的限制

我已经为命名空间上的所有服务帐户设置了删除限制(使用验证 webhook),包括命名空间本身,作为集群管理员,我有没有办法从该命名空间中删除对象?

或者,有没有办法将集群管理员置于异常状态。

更新:

我想出了要执行的用户名,但是该策略虽然在策略检查器中正确评估但没有状态:在 configmap 状态中正常:

更新:

一段时间后,策略状态为 Ok。

0 投票
2 回答
1584 浏览

open-policy-agent - 使用 rego 比较输入列表中的前后值

当我运行以下命令时,我可以比较参数 instance_class 的值并计算差异数:

但是,我希望能够使用相同的代码块来比较我的列表 my_params 中包含的不同参数值。我尝试了以下方法,但这不起作用。

0 投票
1 回答
297 浏览

open-policy-agent - 怎么办 || 雷戈中的“b”

我们验证有和没有命名空间的对象,我总是想打印当前的命名空间是什么......但是当没有设置命名空间时回退到“”或其他一些默认值。

使用 naiveinput.review.object.metadata.namespace直接违反了规则,所以我求助于

它打印一个数组,有点难看,但它可以工作......有更好的解决方案吗?

0 投票
2 回答
1947 浏览

open-policy-agent - 将 Open Policy Agent 与 ASP.Net Core Web API 集成

我浏览了一些关于 OPA(开放策略代理)的视频和教程,发现使用它跨多个服务/API 实现身份验证和授权真的很酷。但是,我无法获得有关如何在 Windows 上安装它并将其与 ASP.Net 核心 Web API 集成以实现身份验证和授权的任何见解。任何人都可以帮助我吗?

谢谢,

阿米特·阿南德

0 投票
1 回答
509 浏览

open-policy-agent - Rego:如何指定不具有多个条件中的任何一个

如何验证 Rego for OPA 中是否存在两个单独的密钥?目前,我正在使用这样的not运算符:

但是,这只会拒绝没有livenessProbe和的容器readinessProbe。如何指定拒绝缺少两个键中的任何一个的容器