ACL、RBAC、ABACの認可ポリシーをモデルとポリシーファイルで設定して適用する、Go向けアクセス制御ライブラリ。
open-policy-agent/opa
Regoで認可やコンプライアンスのルールを記述し、サービスやKubernetesなどから評価できる汎用ポリシーエンジンです。
- スター
- 12,442
- フォーク
- 1,710
- 未解決の Issue
- 266
- 最終コミット
- 昨日
これは何?
Open Policy Agent (OPA) は汎用ポリシーエンジンです。サービスごとに認可やコンプライアンスのロジックをハードコードする代わりに、OPAの宣言型言語であるRegoでルールを記述し、サービスからクエリを実行してOPAに判定を問い合わせます。OPAは提供されたデータに照らしてルールを評価し、結果を返します。呼び出し元のサービスは、その結果に基づいて処理を実行します。
OPAはCloud Native Computing Foundationの卒業プロジェクトです。スタンドアロンのCLIまたはサーバーとして実行でき、コンテナイメージやバイナリとして配布できるほか、Go SDKや低レベルのGo APIを通じてGoサービスに組み込めます。他の言語からはREST API経由で連携できます。
Kubernetes、Terraform、Docker、SSHなどのシステムとの連携方法がドキュメントに記載されています。エディター向けには、リアルタイム診断、デバッグ、フォーマット機能を備えたVS Code拡張機能が用意されています。
主な機能
- 01宣言型言語のRegoで、ルールやクエリを記述できます。
- 02スタンドアロンのCLIまたはサーバーとして実行でき、SDKを使ってGoアプリケーションに組み込むこともできます。
- 03REST APIを提供しており、あらゆる言語のサービスからポリシー判定を要求できます。
- 04リアルタイム診断、デバッグ、フォーマット機能を備えたVS Code拡張機能を提供します。
- 05コンテナイメージとバイナリとして配布されています。
ユースケース
- API認可を適用し、ユーザーがリソースに対する操作を呼び出せるかどうかをサービスが判定する。
- Kubernetesリソースの作成前に、Admissionポリシーに照らして検証する。
- Terraformのプランなどのインフラ定義を、コンプライアンスルールに照らして確認する。
- 多数のマイクロサービス間でアクセス制御の判定を一元化する。
クイックスタート
- 1
GitHubのリリースまたはDocker Hubから、OPAのバイナリまたはコンテナイメージをダウンロードします
- 2
公式ドキュメントの「Running OPA」の手順に従って、ローカルでOPA CLIを起動します
使う前に知っておきたいこと
- ポリシーを記述するには、Rego言語を習得する必要があります。
収録されている特集
トピック
よくある質問
- opa とは?
- Regoで認可やコンプライアンスのルールを記述し、サービスやKubernetesなどから評価できる汎用ポリシーエンジンです。 Open Policy Agent (OPA) は汎用ポリシーエンジンです。サービスごとに認可やコンプライアンスのロジックをハードコードする代わりに、OPAの宣言型言語であるRegoでルールを記述し、サービスからクエリを実行してOPAに判定を問い合わせます。OPAは提供されたデータに照らしてルールを評価し、結果を返します。呼び出し元のサービスは、その結果に基づいて処理を実行します。
- opa は無料で使えますか?ライセンスは?
- opa は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- opa は今もメンテナンスされていますか?
- 活発にメンテナンス中。opa の最終コミットは 2026年11月6日 です。
- opa は何に使えますか?
- API認可を適用し、ユーザーがリソースに対する操作を呼び出せるかどうかをサービスが判定する。 Kubernetesリソースの作成前に、Admissionポリシーに照らして検証する。 Terraformのプランなどのインフラ定義を、コンプライアンスルールに照らして確認する。 多数のマイクロサービス間でアクセス制御の判定を一元化する。
- opa のインストール方法は?
- GitHubのリリースまたはDocker Hubから、OPAのバイナリまたはコンテナイメージをダウンロードします 公式ドキュメントの「Running OPA」の手順に従って、ローカルでOPA CLIを起動します
- opa はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/open-policy-agent/opa
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
YAMLポリシーを評価し、誰がどのリソースに対してどの操作を実行できるかを判定する、セルフホスト型の認可エンジン(PDP)。
AIエージェントとツールの間で動作し、機密データを未許可の宛先に送るツール呼び出しをブロックする決定論的なポリシーエンジン。
Python、TypeScript、.NET、Rust、Goから利用できる、自律型AIエージェント向けのポリシー適用、ゼロトラストID、実行サンドボックス、SREツール群。
Google Zanzibarに着想を得たオープンソースの認可サービス。アプリのコード外で、きめ細かなRBAC、ReBAC、ABACによるアクセス制御を構築できます。
特定のクライアントにログインできるユーザーを管理者が制限できるKeycloak拡張機能。