This is the moment most teams learn that role-based access control alone is not enough. Separation of duties (SoD) is a security principle that stops any one user from having too much power over critical operations. It is essential for reducing insider risk and meeting audit and compliance requirements.
Open Policy Agent (OPA) makes implementing separation of duties precise and flexible. You define policies in Rego, OPA’s policy language, and enforce them across microservices, APIs, CI/CD pipelines, and Kubernetes clusters. With OPA, the logic for SoD is centralized, version-controlled, and testable.
A separation of duties policy in OPA can require that no single engineer both creates and approves a deployment. It can block a service account from both issuing and approving production certificates. It can ensure that code reviewers are never the same people who merge to main. These checks can be expressed in clear, declarative rules that integrate directly into admission controllers, API gateways, or build pipelines.