Free workshop to help you design Cerbos policies for your requirementsBook a session

Open source, plug-and-play access management for your software

Do not reinvent

user permissions

access management

authorization

ABAC

RBAC

user permissions

Decoupled, low-

latency and scalable

Build features, not plumbing

Decouple and centrally manage the authorization logic across all applications and services to reduce repetition, gain visibility and push access changes instantly across the fleet.

Fine grained access management

Test and deploy fine-grained access control policies with confidence using CI/CD/GitOps workflow.

Bring your own identity

Cerbos works with any identity provider from popular services like Auth0, Okta, FusionAuth, Magic, WorkOS to your own, bespoke directory system.

if (cerbos.isAuthorized(user, resource, "edit")) {
  // allowed
} 
if (user.email.includes("@mycompany.com") ||
  (user.company.package === "premium" && user.groups.includes("managers"))
) {
  if(user.region === resource.region) {
    // allowed
    AuditLog.record("ALLOWED", "edit", user, resource);
  } else {
    // denied
    AuditLog.record("DENIED", "edit", user, resource);
  }
} else {
  // denied
  AuditLog.record("DENIED", "edit", user, resource);
}

Before

After

Human-readable

access configuration

Configure rather than code

Low-code, human-readable configuration that provides wider organizational visibility and enables collaboration for enforcing security policies and auditing compliance requirements.

Extensible roles and conditions

Go beyond basic role-based-access-control with context-aware role definitions and attributes.

Multiple use cases

Cerbos policies are flexible enough to model a wide range of domains including multi-tenant SaaS systems, feature flags, product packaging and more.

---
apiVersion: api.cerbos.dev/v1
resourcePolicy:
  resource: contact 
  version: default
  rules:

    # admins can do all actions
    - actions: ["*"]
      effect: EFFECT_ALLOW
      roles:
        - admin  

    # user role can read and list contacts
    - actions: ["read", "list"]
      effect: EFFECT_ALLOW
      roles:
        - user

    # user role can create and update contacts
    # if they are a member of the sales group
    - actions: ["create", "update"]
      effect: EFFECT_ALLOW
      roles:
        - user
      condition:
        match:
          expr: ("sales" in request.principal.attr.groups)

    # user role can delete a contact if they are one of:
    # - the owner of the contact
    # - member of the sales-manager group
    # - member of the product group
    - actions: ["delete"]
      effect: EFFECT_ALLOW
      roles:
        - user 
      condition:
        match:
          any:
            of:
              - expr: request.resource.attr.owner == request.principal.id
              - expr: ("sales-manager" in request.principal.attr.groups)
              - expr: ("product" in request.principal.attr.groups)

Open-core, language-

agnostic and auditable

No vendor or cloud lock-in

Cerbos is stateless and self-hosted. Run on any public/private cloud, serverless platform or even your own datacenter. Everything stays within your perimeter and 100% within your control.

Polygot

Cerbos exposes a simple, language-agnostic API that can be used from any part of your stack from legacy apps and monoliths to microservices.

Full auditing and accountability

Audit access controls with real-time change logs and meet ISO27001 and SOC2 requirements. Integrate with security information and event management providers to help avoid advanced persistent threats to security.

Bring your own identity

Use any identity provider to authenticate your users. Use Cerbos to enforce access controls.

JWT
Auth0
AWS Cognito
Okta
Clerk
Magic
FusionAuth
WorkOS

SDKs & Integrations

Get productive very quickly using our SDKs, quickstart guides and integrations with popular frameworks.

Nodejs
Python
Java
Rust
Go
Ruby
Graphql
Prisma

Why we built Cerbos

google
elastic
microsoft
qubit
cgi

We built Cerbos based on our experience at Google, Microsoft, Elastic, Qubit and CGI, because we have experienced first hand the problems with creating, maintaining and scaling permissions management.

These are the questions on our users' mind:

As a Developer

I am tired of the toil and risk of managing access controls. I need off-the-shelf controls that I don't have to build myself. How do I take advantage of modern stacks, serverless architectures and a stateless approach? How do I manage authorization at scale for SaaS multi-tenant environments?

As a Product Manager

How do I support complex requirements for enterprise clients, each one having different organizational structures and access control needs? It also takes far too long to add, retire and tier new features especially as we keep changing our product packaging.

As a CTO / CISO

I want our team to focus on core application development. Who tried to or performed what action? How do I check the access logs? I need to use attribute-based access controls, ABAC, for a zero-trust approach while taking the approval burden off of the IT department.

Let's keep in touch!

Please subscribe below to get notified about
all the new features and updates from Cerbos.