Rego 概述 - AWS 规范性指导

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

Rego 概述

Rego 是一种通用策略语言,这意味着它适用于堆栈的任何层和任何域。Rego 的主要目的是接受 JSON/YAML 输入和数据,这些输入和数据经过评估,以便就基础设施资源、身份和运营做出基于策略的决策。Rego 使您能够编写有关堆栈或域中任何层的策略,而无需更改或扩展语言。以下是 Rego 可以做出的决策的一些示例:

  • 此 API 请求是允许还是被拒绝?

  • 此应用程序的备份服务器的主机名是什么?

  • 提议的基础设施变更的风险评分是多少?

  • 为了实现高可用性,应将此容器部署到哪些集群?

  • 此微服务应使用哪些路由信息?

为了回答这些问题,Rego采用了关于如何做出这些决定的基本理念。在 Rego 中起草政策时的两个关键原则是:

  • 每个资源、身份或操作都可以表示为 JSON 或 YAML 数据。

  • 策略是应用于数据的逻辑。

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