雷戈概述 - AWS 規定指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

雷戈概述

Rego 是一種通用的策略語言,這意味著它適用於堆棧的任何層和任何域。Rego 的主要目的是接受經過評估的 JSON/YAML 輸入和資料,以針對基礎結構資源、身分識別和作業做出啟用原則的決策。Rego 可讓您撰寫有關堆疊或網域任何層的原則,而不需要變更或擴充語言。以下是 Rego 可以做出的一些決定示例:

  • 這個 API 請求是允許還是拒絕?

  • 這個應用程序的備份服務器的主機名是什麼?

  • 這項建議的基礎設施變更的風險評分為何?

  • 為了獲得高可用性,應將此容器部署到哪些叢集?

  • 此微服務應該使用哪些路由資訊?

為了回答這些問題,Rego 採用了關於如何做出這些決定的基本理念。在 Rego 起草政策時的兩個關鍵原則是:

  • 每個資源、身分識別或作業都可以表示為 JSON 或 YAML 資料。

  • 原則是套用至資料的邏輯。

Rego 透過定義有關如何評估 JSON/YAML 資料輸入的邏輯,協助軟體系統做出授權決策。C、Java、Go 和 Python 等程式設計語言是解決這個問題的常見解決方案,但 Rego 的設計目的是專注於代表系統的資料和輸入,以及使用此資訊做出政策決策的邏輯。