/awesome-opa

A curated list of OPA related tools, frameworks and articles

Creative Commons Zero v1.0 UniversalCC0-1.0

awesome-opa



A curated list of awesome Open Policy Agent (OPA) related tools, frameworks and articles.

Contents

Official projects

Repositories

  • OPA - Open Policy Agent Github repository
  • Gatekeeper - Kubernetes admission controller using OPA
  • Conftest - Write tests against structured configuration data

Docs

Blogs and Articles

  • OPA - Official blog for the OPA project

Policy Packages

  • Library - Community-owned policy library for OPA
  • Policy Hub CLI - CLI tool that makes Rego policies searchable
  • Rego policies - Rego policies from the the Red Hat community of practice

Language and Platform Integrations

Java

  • Java - Generic Java client to query OPA's REST API
  • Spring Security - OPA Spring Security Library
  • Gradle - OPA plugin for Gradle

Python

Go

PHP

  • OPA Library for PHP - OPA client, a PSR-15 authorization middleware and a PSR-15 bundle distributor middleware

.NET

Node.js

Clojure

  • Clojure - Middleware and utilities for app authorization with OPA in Clojure

Docker

Containers

  • Konveyor Forklift Validation Service - VM migration suitability assessment to avoid migrating VMs that are not fit for Kubevirt. Rules are applied on all the VMs of the source provider (VMware) during the initial inventory collection, then whenever a VM configuration changes.

WebAssembly (WASM)

  • NPM module - a small SDK for using WebAssembly (wasm) compiled Open Policy Agent Rego policies
  • Go SDK - a small Go library for using WebAssembly (wasm) compiled Open Policy Agent Rego policies
  • .NET Core Library - .NET SDK for calling WASM-compiled OPA policies from .NET Core

Docs

  • WASM - Official docs on WebAssembly for OPA

Kubernetes

Blogs and Articles

Datasource Integrations

IDE and Editor Integrations

  • VS Code plugin - Develop, test, debug, and analyze policies for OPA in VS Code
  • IntelliJ plugin - OPA plugin for the IntelliJ IDE
  • Emacs - Emacs Major mode for working with Rego
  • Vim - Vim plugin for the Rego language, with support for syntax highlighting
  • Atom - Syntax highlighting for the Atom editor
  • CodeMirror - Rego mode and minimal key map for CodeMirror
  • TextMate - Syntax highlighting for TextMate
  • Sublime - Syntax highlighting for Sublime
  • Nano - Syntax highlighting for Nano

Infrastructure as Code

  • Regula - Evaluates Terraform code for potential security misconfigurations and compliance violations.
  • Example Terraform policies - Example Terraform policies
  • Terrascan - 500+ Policies written in OPA for security best practices.
  • KICS - Keeping Infrastructure as Code Secure or KICS scans IaC projects for security vulnerabilities, compliance issues, and infrastructure misconfiguration. Currently working with Terraform projects, Kubernetes manifests, Dockerfiles, AWS CloudFormation Templates, and Ansible playbooks.

Infrastructure as Code Blogs and Articles

Tools and Utilities

Support and Community

  • Styra - Commercial support, and tools for managing OPA at scale, by the creators of OPA
  • Stack Overflow - Stack Overflow OPA section
  • OPA Slack - Opem Policy Agent Slack workspace

Recommended Reading

  • Microservices Security in Action - Book on micorservices security, with dedicated section covering OPA. Freely available online.
  • Fugue - 5 tips for using the Rego language for Open Policy Agent

Commercial Tools

  • Styra DAS - Styra Declarative Authorization Service, from the creators of OPA
  • Scalr - Collaboration and Automation for Terraform, backed by OPA
  • Fairwinds Insights - Run OPA policies consistently across CI/CD, Admission Control, and an multi-cluster scanner