1

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

deny["Containers must specify readiness and liveness probes"] {
  not container.readinessProbe
  not container.livenessProbe
}

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

4

1 回答 1

1

对于这种情况,我认为只为每个设置一个拒绝规则是有意义的:

deny["Containers must specify readiness probes"] {
  not container.readinessProbe
}

deny["Containers must specify liveness probes"] {
  not container.livenessProbe
}

使用 Rego 策略,规则是 OR'd 在一起,并且规则正文语句是 AND'd。因此,如果您尝试表达 OR 条件,通常会为每种情况寻找一个规则。

于 2020-01-28T18:33:25.710 回答