At the company I work for, we're considering whether to use Open Policy Agent (OPA) for fine grained authZ.
For loading data to OPA there are a number of approaches listed on the website under External Data. For the scenarios we're dealing with, I'd like to use a combination of JWT Tokens and Push Data (depending on the specific use case). As a side note; also thinking of initially hosting OPA as a standalone service instead of sidecar containers (even though were using K8s and Istio), as this seems a bit simpler (conceptually) and will be easier to get buy in from broader IT. Depending on how things go, we could migrate to the sidecar approach later on.
WRT the Push Data approach;
- If data is stored in memory (when using Push Data approach); how would we deal with the scenario when OPA crashes or gets redeployed?
- Assuming multiple OPA replicas; how do we ensure data gets propagated to all OPA containers?