1. 策略语言 Rego

Rego 是一种高级的声明性语言,是专门为 OPA 建立的。它使定义策略和解决以下问题变得非常容易:Bob 是否被允许对 /api/v1/products 执行 GET 请求?他实际上被允许查看哪些记录?

1.1. 部署

当涉及到部署 OPA 时,你有多个选择,这取决于你的具体场景。

  • 作为 Go 库:如果你的应用程序是用 Golang 写的,你可以把 OPA 作为应用程序中的第三方库来实现。
  • 作为守护程序:如果你不使用 Go,那么你可以像其他服务一样,把 OPA 作为一个守护程序来部署。在这种情况下,建议你使用一个 sidecar 容器或在主机上运行。原因是,这种设计可以提高性能和可用性。想象一下,你把 OPA 部署在 Kubernetes 的一个单独的 pod 中,而这个 pod 恰好位于一个单独的节点上,而你的应用 pod 正在那里运行。现在,每当你的服务需要咨询 OPA 的策略决策时,它必须通过网络进行调用,以达到 OPA 运行的 pod。这引入了不必要的延迟,并可能在高峰期导致应用程序的迟滞。
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-11-28 08:10:05

results matching ""

    No results matching ""