概要
- オープンソースの汎用的なポリシーエンジン
- 略してOPAとも
- サイドカー(こちらを参照)、デーモン、ライブラリなどとして用意しアプリケーションからはAPIを介して呼び出す形式で利用する
- アプリケーションからはAPIを介してOPAに問い合わせる形にすることで、ポリシー制御を個々のアプリケーションから分離し統一的に管理することを実現する
- ポリシーをコードとして管理することを可能にする(Policy as Code)
- 記述例
aliceはbobの、charlieはdavidの上位権限であることを以下のように表せる
{
"alice": ["bob"],
"bob": [],
"charlie": ["david"],
"david": []
}
ユースケース
- マイクロサービスでのサービス間の認可
- KubernetesのAdmission Controlを使ったリソースのバリデーション
- Terraformの設定ファイルのバリデーション