本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Rego 概述
Rego 是一种通用策略语言,这意味着它适用于堆栈的任何层和任何域。Rego 的主要目的是接受 JSON/YAML 输入和数据,这些输入和数据经过评估,以便就基础设施资源、身份和运营做出基于策略的决策。Rego 使您能够编写有关堆栈或域中任何层的策略,而无需更改或扩展语言。以下是 Rego 可以做出的决策的一些示例:
-
此 API 请求是允许还是被拒绝?
-
此应用程序的备份服务器的主机名是什么?
-
提议的基础设施变更的风险评分是多少?
-
为了实现高可用性,应将此容器部署到哪些集群?
-
此微服务应使用哪些路由信息?
为了回答这些问题,Rego采用了关于如何做出这些决定的基本理念。在 Rego 中起草政策时的两个关键原则是:
-
每个资源、身份或操作都可以表示为 JSON 或 YAML 数据。
-
策略是应用于数据的逻辑。
Rego 通过定义有关如何评估 JSON/YAML 数据输入的逻辑,帮助软件系统做出授权决策。C、Java、Go 和 Python 等编程语言是解决这个问题的常用方法,但是 Rego 的设计重点是代表你的系统的数据和输入,以及使用这些信息做出政策决策的逻辑。