Open Policy Agent (OPA)
General-purpose, CNCF-graduated policy engine for enforcing authorization, compliance, and configuration rules as code across microservices, APIs, Kubernetes, and CI pipelines.
- Actively maintained
- Foundation-backed
- Well documented
- Permissive license
Overview
Open Policy Agent (OPA) is a general-purpose policy engine that decouples policy decisions from application code. Policies are written in Rego, a declarative query language purpose-built for expressing rules over structured data, and OPA evaluates those policies against a request or resource to return an allow/deny decision (or richer structured output) that the calling service then enforces.
Because OPA is a standalone engine rather than a library embedded in one application, it's commonly deployed as a sidecar, a Kubernetes admission controller that rejects non-compliant resources before they're created, or a policy check inside CI pipelines - one policy language reused across very different enforcement points instead of reimplementing rules per system.
OPA is a fit for platform and security teams that need policy enforced consistently across many services and layers of the stack. It's a different layer than Casbin or OpenFGA (also in this catalog): those are authorization libraries an application embeds directly to check permissions in its own code, while OPA is typically run as shared infrastructure that many different systems - application code among them - can query.
Why it's in this catalog
Catalog rating: ★★★★☆ (4/5)
The standard general-purpose policy engine (Rego), essential representative project for policy-as-code.
- Foundational
- Foundation-governed
- Categories
- DevOps
- Languages
- Go, Rego
- License
- Apache-2.0
Related Projects
Kyverno
Apache-2.0Kubernetes-native policy engine that lets you write and enforce policies using plain YAML instead of a separate policy language.
Actively maintained
- DevOps
Cilium
Apache-2.0eBPF-based networking, security, and observability platform for Kubernetes that replaces traditional networking components with kernel-level performance.
Actively maintained
- DevOps
etcd
Apache-2.0Distributed, consistent key-value store that Kubernetes itself uses to store all cluster state, and a reliable building block for other distributed systems.
Actively maintained
- DevOps
cert-manager
Apache-2.0Automates issuing, renewing, and managing TLS certificates for Kubernetes applications, eliminating manual certificate handling.
Actively maintained
- DevOps
Spotted an error? Suggest an edit on GitHub.