

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Rego 概述
<a name="rego"></a>

Rego 是一种通用策略语言，这意味着它适用于堆栈的任何层和任何域。Rego 的主要目的是接受 JSON/YAML 输入和数据，这些输入和数据经过评估，以便就基础设施资源、身份和运营做出基于策略的决策。Rego 允许您编写有关堆栈或域中任何层的策略，而无需更改或扩展语言。以下是 Rego 可以做出的决策的一些示例：
+ 此 API 请求是允许还是被拒绝？
+ 此应用程序的备份服务器的主机名是什么？
+ 提议的基础设施变更的风险评分是多少？
+ 为了实现高可用性，应将此容器部署到哪些集群？
+ 此微服务应使用哪些路由信息？

为了回答这些问题，Rego采用了关于如何做出这些决定的基本理念。在 Rego 中起草政策时的两个关键原则是：
+ 每个资源、身份或操作都可以表示为 JSON 或 YAML 数据。
+ 策略是应用于数据的逻辑。

Rego 通过定义有关如何评估 JSON/YAML 数据输入的逻辑，帮助软件系统做出授权决策。C、Java、Go 和 Python 等编程语言是解决这个问题的常用方法，但是 Rego 的设计重点是代表你的系统的数据和输入，以及使用这些信息做出政策决策的逻辑。