Rego言語(れごげんご)
最終更新:2026/4/27
Rego言語は、KubernetesのポリシーエンジンであるOPA(Open Policy Agent)で使用される宣言型データポリシー言語である。
別名・同義語 OPAポリシー言語ポリシー言語
ポイント
Regoは、JSONやYAML形式のデータを対象とし、複雑なポリシーを簡潔に記述できることを特徴とする。クラウドネイティブ環境におけるセキュリティとコンプライアンスの自動化に貢献する。
Rego言語とは
Rego言語は、Open Policy Agent (OPA) のためのポリシー記述言語です。OPAは、Kubernetesをはじめとする様々なシステムで、ポリシーに基づいた意思決定を自動化するために使用されます。Regoは、宣言的なアプローチを採用しており、ポリシーが「何」を達成したいかを記述することで、OPAが「どのように」それを実現するかを決定します。
特徴
- 宣言的: ポリシーの目的を記述するだけで、実行順序などを指定する必要はありません。
- JSON/YAMLベース: データはJSONまたはYAML形式で表現され、Regoはこれらの形式のデータを直接操作できます。
- 強力な型システム: 静的な型チェックにより、ポリシーの誤りを早期に発見できます。
- 再利用性: ポリシーはモジュール化でき、再利用が可能です。
- セキュリティ: OPAは、ポリシーの評価を安全に行うための仕組みを提供します。
構文
Regoの構文は、Datalogに影響を受けています。基本的な構成要素は、ルール、パッケージ、およびデータです。ルールは、条件と結果で構成され、条件が満たされた場合に結果が真となります。パッケージは、関連するルールとデータをまとめたものです。
ユースケース
- Kubernetesのアクセス制御: 誰がKubernetesリソースにアクセスできるかを制御します。
- クラウドセキュリティ: クラウド環境におけるセキュリティポリシーを適用します。
- APIゲートウェイ: APIへのアクセスを制御します。
- コンプライアンス: 規制要件への準拠を自動化します。
学習リソース
- OPA公式ドキュメント: https://www.openpolicyagent.org/docs/latest/
- Rego Playground: https://play.openpolicyagent.org/