オープンソースの汎用ポリシーエンジン。アプリのロジックからポリシー判定を切り離す
ツールなの?
ツール。 opa という 1 つのバイナリで、CLI / HTTP サーバー / Go ライブラリとして使える。
- アプリが JSON を渡して「これ OK?」と聞く → OPA が Rego(専用言語)で書いたルールで判定して返す
- 判定は OPA、実際に止めるのはアプリ側
どう使う?
- サーバー: アプリが
POST localhost:8181/v1/data/...で問い合わせ →{"result": false}なら 403- 毎リクエスト聞くので、同じ Pod(サイドカー)やホストに置く
- CLI: CI で
terraform show -jsonをチェック(Conftest)。サーバー不要 - 1 か所の簡単なチェックならアプリの
ifで十分。複数サービスでルールを揃えたいときに効く
CNCF との関係は?
- CNCF = Kubernetes などを管理する、クラウドネイティブ系 OSS の運営団体
- OPA は CNCF の Graduated プロジェクト(成熟度の最上位、2021-01 に到達)