OPA

OPAに関する記事まとめ

OPA

以下はこのブログ内のOpen Policy Agentに関する記事を一覧化したものです。 入門 kenfdev.hateblo.jp kenfdev.hateblo.jp Regoの実装例 kenfdev.hateblo.jp kenfdev.hateblo.jp kenfdev.hateblo.jp kenfdev.hateblo.jp Regoのユニットテスト kenfdev.hatebl…

アプリケーションにおける権限設計の課題

日々権限設計で頭を抱えてます。この苦悩が終わることは無いと思ってますが、新しい課題にぶつかっていくうちに最初のころの課題を忘れていきそうなので、現時点での自分の中でぐちゃぐちゃになっている情報をまとめようと思い、記事にしました。

ConftestとCircleCIで継続的に構造データにPolicyを適用する

構造化されたデータにPolicyを適用したい、って気持ちはチームでコラボレーションしていたら自然と生まれてくる欲求だと思います。コードの場合は最近だと優秀なLinterがあるおかげである程度は強制することができるのですが、例えばYAMLだったりiniファイル…

OPAのDecision Logsを使ってログを残す

OPA

Open Policy Agent (以下OPA)で様々なPolicyの判断をするにあたって、ログをどのように残すのかが気になってきました。 OPAを初めて聞いた、あるいはあまり知らない場合は以下の記事を参考にしていただければ! kenfdev.hateblo.jp ログを残す方法としてOPA…

KubeCon + CloudNativeCon Europe 2019の「Deep Dive: Open Policy Agent」を視聴して

しばらくOPA(Open Policy Agent)の講演を観ることができていなかったので、KubeCon CloudNativeCon Europe 2019の講演をYoutubeで視聴しました。 www.youtube.com 構成 時間 内容 1:27 Example: Application 5:38 Example: Kubernetes Platform 7:14 OPA: …

「CircleCIのconfig.ymlを守ろうとした話」を発表しました

「【大阪】CircleCI ユーザーコミュニティミートアップ #1」に参加し、「CircleCIのconfig.ymlを守ろうとした話」という題名でLTをしてきました。 circleci.connpass.com 発表資料 ストーリー 組織の中でCircleCIを多数のリポジトリで使い始めたとき、config…

Unit Test好きにはたまらない!Conftestで設定ファイルのテストをしてみた

ConftestはYAMLあるいはJSONで定義された設定ファイルに対してテストを書けるというツールです。 面白いのは、テストに使うのがOpen Policy AgentのRegoというポリシー用の言語だという点です。上に紹介した記事にも書いていますが、さらに気になる人は公式…

「誰」が「何」をできるかをOPAのレスポンスで返す

OPA

OPA(Open Policy Agent)で「○○をやっていいですか?」に対して「Allow/Deny」の返答がくるパターンについていくつか記事にしました。 今回は、 「誰」が「何」をしていいか をOPAからのレスポンスで知る方法について検証したので共有します。 どういった場…

OPAでANDとORの条件を組み合わせる

OPA

OPAのSlackでやりとりされている内容とかが流れていってしまうのが勿体無いので残していこうと思います。(将来的に索引にできたら良いかなと) 上図のようなパターンを考えてみましょう。文で表現すると以下のとおりです。 p1, p2, p3, additional_pがすべ…

CircleCIで実行バイナリをDLしてCI内でキャッシュしながら使う

CI内でどこかしらから実行バイナリをダウンロードして、それを使うことがあると思います。 最近では僕はOPAのテストをCircleCIで実行したかったので、OPAのバイナリをダウンロードしてテストを実行しました。 kenfdev.hateblo.jp 毎回バイナリをダウンロード…

OPAのテストをCircleCIに乗せる

OPA

OPAのPolicyをテストする方法について前回は紹介しました! kenfdev.hateblo.jp OPAのバイナリさえあれば opa test コマンドで簡単にテストが実行できます。 ということでOPAのPolicyをCIに乗せて継続的にPolicyのテストができるようにしてみます。 どんなCI…

OPAでテストコードを書く

OPA

OPAでPolicyをRegoで書いていくという話は何度かしてきました。 では、そのPolicyを正しく書けたかどうかはどう判断するのでしょう? これまで扱ってきた記事ではInputを用意してOutputをチェックしてました。 それって大変ですし、Policyが鬼のようにたくさ…

OPAのVisual Studio Code拡張機能

OPA

OPAにはVSCode用の拡張機能があります! ## 機能 できるようになることは次のとおり(2019/03/31時点) * 保存時に構文チェック(現時点でエディタ上で表示はされません) * OPAのpackageを評価 * 選択中の箇所を評価 * 選択中の箇所を部分評価(Partial Eva…

IAM PolicyをOPAで書く

OPA

OPAシリーズです!今回は公式ドキュメントの「Comparison to Other Systems」について見てみます。 世の中に存在しているPolicyのパターンをOPAで実装した場合、どうなるかというのを教えてくれている項目です。 この中でも「Amazon Web Services IAM」をOPA…

OPAでSSHとsudoの認可をする

OPA

このチュートリアルではLinux-PAM(Pluggable Authentication Modules)とOPAを連動させています。Linux-PAM(以下PAM)について僕は今回初めて知ったのですが、Linuxに認証の仕組みをプラグインとして追加できるものという理解です。ここでOPAと連動できるPAM…

Open Policy Agentを始めてみよう

OPA

OPAは汎用的なPolicy Engineと言われています。Policy Engineと言われても正直なところパッとしないと思うのですが、定義されたルールに従って判断を下すことができる専門家という感じです。Policyの中でも「やっていいかどうか(見ていいかどうか)」に関す…