policy - 从开放策略代理 (OPA) 查询中传回一个值
问题描述
我不想查看谁可以访问什么,而是想设置策略来返回每秒允许多少个连接,或者允许多少带宽。如何定义我的策略以返回值而不是 true/false?
解决方案
完整的规则只是将 VALUE 分配给 VARIABLE 的 if-then 语句。当 VALUE 被省略时,它是隐式的true
:
allow { input.method == "GET" }
相当于:
allow = true { input.method == "GET" }
没有什么特别allow
的true
。您可以类似地定义一个设置每秒连接数限制的规则:
connections_per_second = 7 { input.tier == "gold" }
如果您有多个定义,请注意只有一个可以成功(否则 OPA 将引发冲突错误)。您需要解决政策内部的冲突。有不同的处理方式,例如default
,、、else
否定等。
推荐阅读
- angular - 如何对 authguard 的 Angular 的 canActivate 进行单元测试?
- python - Keras:我的模型损失和准确率随机下降到零
- bamboo - 竹工作区处理
- javascript - 异步等待不适用于“then”和“catch”
- javascript - 允许两个站点进行通信以了解 iframe 的当前 URL
- java - 如何解决错误 java.lang.NoSuchMethodError: sun.security.ssl.SSLSessionImpl?
- javascript - Safari 视频不工作,但所有浏览器都可以自动播放。多个视频一一播放
- python - 如何从基于行的字典列表创建 Pandas DataFrame
- javascript - 将两个json对象数据合二为一,JSON转成新的Single JSON,
- c# - 如何为 RabbitMQ 上的传入消息触发某些功能