Open Policy Agent Rego Knowledge Sharing Meetupを開催しました #opa_rego

はじめに

こんにちは、メルカリMicroservices Platform Group Infra Teamの @keke です。

7月7日にメルカリ主催のOpen Policy Agent Rego Knowledge Sharing Meetupをオンライン配信にて開催しました。 この記事では、当日の各発表を簡単に紹介します! 動画もアップロードされてますので、こちらもぜひご覧ください。

OPA and cloud resources

1つ目のセッションはメルカリ Platform Group Infra Teamの@toshi0607 さんによる「OPA and cloud resources」です。メルカリではCloud resourceをTerraformで管理をしています。conftestを使ってポリシーをCIの中で課すことによってガードレールを提供したり、開発者にフィードバックをして安全なマイクロサービスのプラットフォームを実現している事例でした。それによってCloud SQLを使っているマイクロサービスがバックアップを正しく設定できているかどうかチェックしていました。

発表資料: OPA and cloud resources

Quipper における Rego の活用事例

2つ目のセッションはQuipperの @szkdash さんによる「Quipper における Rego の活用事例」です。OPA CLIツールのフォーマット機能 (opa fmt)やconftestを使ってポリシーを課して、ベストプラクティスやセキュリティ的ルールをきちんと組織内で実施できるようにしていました。例えば、ログの保存先のS3のプレフィックスが正しく設定されているかどうかconftestを使ってチェックしていました。特にconftestのオプションを使って色んなユースケースでポリシーを課せている点が面白いなと感じました。conftestのcombineオプションを使うことによって、ファイル名がRego内でアクセスできることは知りませんでした。

発表資料: Quipper における Rego の活用事例

Terraform x OPA/Conftest の tips

3つ目のセッションはFiNC Technologiesの @ryok6t さんによる「Terraform x OPA/Conftest の tips」です。OPAを実際に活用していて、気づいたTipsの知見共有でした。Regoは学習コストが高いことで知られ、なかなかうまくポリシーを記述できるようにならないという問題があります。そのなかで、どのようにしてポリシーを書いているのか、をケースごとに紹介していて知らないことが多いことに気付かされました。特に、conftestの--traceオプションを使ってトレースを使ってデバックをしていることに驚きました。

発表資料: Terraform x OPA/Conftest の tips

Tanzu Mission Control における Open Policy Agent (OPA) の利用

4つ目のセッションは @motonori_shindo さんによる「Tanzu Mission Control における Open Policy Agent (OPA) の利用」です。Tanzu Mission Controlで提供されているPolicy Templateの事例を中心に、いろんなTanzuのポリシーの活用事例が紹介されていました。またAudit機能なども使用して、Kubernetesクラスタに存在している既存リソースに対してもポリシーを課して、可視化することができています。SaaSの中での機能提供ということで視点が異なり、興味深かったです。

発表資料: Tanzu Mission Control における Open Policy Agent (OPA) の利用

Achieving Security Compliance Monitoring with Open Policy Agent and Rego

5つ目のセッションはメルカリのセキュリティエンジニア@rungさんによる「Achieving Security Compliance Monitoring with Open Policy Agent and Rego」です。今までのセッションはプラットフォームやSREのためのRegoの活用事例が中心でしたが、本セクションはセキュリティのためのRegoの使用でした。セキュリティチームでは、様々なシステムの監査や監視などを自動化するためにOPAを使用しています。例えば、GCPのAudit LogをソースとしてTerraform以外によるIAMの変更を検知したり、BigQueryのデータセットが誤って公開されないようにチェックをしています。また、OPAのサーバー自体をCloud Runというサーバーレスなプラットフォームでホスティングしていたのも面白かったです。

発表資料: Achieving Security Compliance Monitoring with Open Policy Agent and Rego

おわりに

OPAはまだまだ活用事例が少ない中、各社の事例を紹介していただきました。 多くの試行錯誤を経て得た知見を共有することによって、これから新しくOPAの導入を検討している方々の背中を少し押すことができたのではないでしょうか。また、OPAやRegoをこれから始めようと思っている方にとってリファレンスとしても参照していただければ嬉しいなと思います。

このようなOPAの知見を共有する機会をこれからも再度、開催していきたいと思っています。 ライブで視聴いただいた方も録画を観ていただけた方も本当にありがとうございました!

メルカリではOPAやRegoを使う仲間を募集しています、興味がありましたら是非お気軽にご連絡ください。

それでは次回の開催もお楽しみに!