コンテンツへスキップ
FindOpenSource

Open Policy Agent (OPA)

マイクロサービス、API、Kubernetes、CI パイプラインにまたがって、認可・コンプライアンス・設定ルールをコードとして統一的に適用する、CNCF を卒業した汎用ポリシーエンジンです。

概要

Open Policy Agent(OPA)は、ポリシーの判断をアプリケーションコードから切り離す汎用ポリシーエンジンです。ポリシーは、構造化データに対するルールを表現するために作られた宣言的なクエリ言語である Rego で記述され、OPA はそれらのポリシーをリクエストやリソースに照らして評価し、許可/拒否の判断(あるいはより豊富な構造化された出力)を返し、それを呼び出し元のサービスが実施します。

OPA は1つのアプリケーションに組み込まれるライブラリではなく独立したエンジンであるため、サイドカーとして、あるいは非準拠のリソースが作成される前に拒否する Kubernetes のアドミッションコントローラーとして、または CI パイプライン内のポリシーチェックとしてデプロイされるのが一般的です。システムごとにルールを再実装するのではなく、まったく異なる適用ポイントで同じポリシー言語を再利用できます。

OPA は、多数のサービスやスタックのレイヤーにまたがって一貫してポリシーを適用する必要がある、プラットフォームチームやセキュリティチームに向いています。カタログ内の Casbin や OpenFGA とはレイヤーが異なります。それらはアプリケーションが自身のコード内で権限をチェックするために直接組み込む認可ライブラリであるのに対し、OPA はアプリケーションコードを含む多数の異なるシステムが問い合わせる、共有インフラとして稼働するのが一般的です。

カテゴリ
DevOps
キーワード
policy-as-codepolicy-engineauthorization-policyregoadmission-control
言語
Go, Rego
ライセンス
Apache-2.0

誤りを見つけましたか? GitHub で修正を提案する