repl.info

OpenPolicyAgentを使ってSecurityGroupを検査する

OpenStackのSecurityGroupで危なそうなものをチェックしてSlackに通知する https://github.com/takaishi/sg_inspector というツールを以前作ったのだが、最近チェックする条件を増やしたくなったのでOpenPolicyAgentを使ってチェック条件を記述できるようにしてみた。OPAを使うことでポリシーをツールの外に出すことができ、より汎用的に実装できるのが利点。しかし、ポリシーの記述にRegoという言語を使う必要があり、学習コストが必要という課題もあった。Rego自体でテストの記述も可能なので、検査ロジックとデータ、テストをツールの外に出せるのは良いですね。

コードは https://github.com/takaishi/sg_inspector/blob/v0.0.7/openstack.go#L98-L116 あたり。ひとまず、Goでポリシーファイルなどを読み込んで検査するあたりの書き方はわかったので今後活かせそうなものがあれば取り組んでいきたい。