OSS探訪GitHubでログイン

認可や構成ルールをRegoで記述し、アプリから分離して判定する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
12,322
主要言語
Go
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

Open Policy Agentは、認可や構成の判断をRegoポリシーとして記述し、入力データに対する決定を返す汎用ポリシーエンジンです。CLI、REST API、Go SDK、Wasmなどでアプリや基盤へ組み込めます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

判断規則を宣言的なポリシーへ切り出す

利用者、操作、資源などをJSON入力として受け、許可や拒否、必要な設定値を問い合わせごとに返します。

出典:[1]

向いている用途

複数サービスで同じ統制を適用する用途に向く

API認可、Kubernetes、Terraform、CIなどで、コードへ規則を埋め込まず統一した判断を使いたい場合に向きます。

出典:[1]

導入前の確認

ポリシーの試験と入力契約を運用する

誤った規則は広い範囲へ影響します。Regoの単体試験、入力スキーマ、配布用ポリシーの更新、失敗時の既定動作を変更と一緒に管理してください。

出典:[1][3]

参考にした公式資料

  1. [1]OPA README at v1.21.1(2026-10-05)
  2. [2]OPA policy testing documentation(2026-10-05)
  3. [3]OPA LICENSE at v1.21.1(2026-10-05)
  4. [4]OPA v1.21.1 release(2026-10-05)
編集部からの補足

ポリシーエンジンを比較するときは、入力の項目と型を先に契約として定め、判断できない場合は既定で拒否する小さな規則から始めてください。許可例と拒否例を同じ変更で試験すると事故を減らせます。

3ステップで試す

  1. 1

    固定版のOPA CLIを取得する

    Linux x86-64でcurlとzshまたはbashを使い、OPA v1.21.1の静的CLIを取得して実行権限を付けます。

    mkdir opa-demo && cd opa-demo && curl -fsSLo opa https://github.com/open-policy-agent/opa/releases/download/v1.21.1/opa_linux_amd64_static && chmod +x opa
  2. 2

    ポリシーと試験を書く

    roleを入力契約にした既定拒否のRegoポリシーと、adminの許可・readerの拒否を確認する単体試験を書きます。

    printf '%s\n' 'package example.authz' 'import rego.v1' 'default allow := false' 'allow if input.role == "admin"' > policy.rego && printf '%s\n' 'package example.authz_test' 'import rego.v1' 'import data.example.authz.allow' 'test_admin if allow with input as {"role": "admin"}' 'test_reader_denied if not allow with input as {"role": "reader"}' > policy_test.rego
  3. 3

    試験と拒否判断を確認する

    opa testで両方の試験が通ることを確認し、readerのallowがfalseであるという比較がtrueになって終了コード0になることも確認します。

    ./opa test . && ./opa eval --fail --data policy.rego --input <(printf '%s\n' '{"role":"reader"}') 'data.example.authz.allow == false'
公式READMEで確認

成長

成長の推移 · 直近30日

12,322 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
155
Open PR
12
Issue登録
54
Issue解決
108
PR登録
407
PRマージ
369

Issues

54 / 108

7月8日10月5日
Issue登録Issue解決

Pull Requests

407 / 369

7月8日10月5日
PR登録PRマージ

メンテナンス状況

Issue初回応答中央値
4.1時間
Issue応答率
32.4% (12/37)

直近90日に外部から作成されたIssue(新しい順に最大100件)が対象です。OWNER・MEMBER・COLLABORATORによる最初のコメントを応答とし、全コメントを確認できないIssueは集計から除外します。中央値と応答率は週次更新です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • opa
  • policy
  • declarative
  • json
  • compliance
  • cloud-native
  • authorization
  • open-policy-agent
Stars
12,322
Forks
1,692
Watchers
133
Open Issues
292
Contributors
414
所有者種別
Organization
主要言語
Go
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?