Configuration :: Cerbos Authorization Management Platform // Documentation
Configuration
The Cerbos server is configured with a YAML file, conventionally named .cerbos.yaml. Start the server by passing the configuration file using the --config flag. The values defined in the file can be overridden from the command-line by using the --set flag. The --set flag can be used multiple times. For example, to override server.httpListenAddr and engine.defaultPolicyVersion, the --set flag can be used as follows:
./cerbos server --config=/path/to/.cerbos.yaml --set=server.httpListenAddr=:3592 --set=engine.defaultPolicyVersion=staging
Config values can reference environment variables by enclosing them between ${}, for example ${HOME}. Defaults can be set using ${VAR:default}. |
Minimal Configuration
At a minimum, Cerbos requires a storage driver to be configured. If no explicit configuration is provided using the --config flag, Cerbos defaults to a disk driver configured to look for policies in a directory named policies in the current working directory.
Default configuration
---
server:
httpListenAddr: ":3592"
grpcListenAddr: ":3593"
engine:
defaultPolicyVersion: "default"
auxData:
jwt:
disableVerification: true
storage:
driver: "disk"
disk:
directory: "${PWD}/policies"
watchForChanges: true
Full Configuration
Cerbos has many configuration options that are either optional or has reasonable defaults built-in. The following section describes all user-configurable options and their defaults.
Cerbos configuration file
---
audits:
accessLogsEnabled: false # AccessLogsEnabled defines whether access logging is enabled.
backend: local # Backend states which backend to use for Audits.
decisionLogFilters: # DecisionLogFilters define the filters to apply while producing decision logs.
checkResources: # CheckResources defines the filters that apply to CheckResources calls.
ignoreAllowAll: false # IgnoreAllowAll ignores responses that don't contain an EFFECT_DENY.
planResources: # PlanResources defines the filters that apply to PlanResources calls.
ignoreAll: false # IgnoreAll prevents any plan responses from being logged. Takes precedence over other filters.
ignoreAlwaysAllow: false # IgnoreAlwaysAllow ignores ALWAYS_ALLOWED plans.
decisionLogsEnabled: false # DecisionLogsEnabled defines whether logging of policy decisions is enabled.
enabled: false # Enabled defines whether audit logging is enabled.
excludeMetadataKeys: ['authorization'] # ExcludeMetadataKeys defines which gRPC request metadata keys should be excluded from the audit logs. Takes precedence over includeMetadataKeys.
includeMetadataKeys: ['content-type'] # IncludeMetadataKeys defines which gRPC request metadata keys should be included in the audit logs.
file:
additionalPaths: [stdout] # AdditionalPaths to mirror the log output. Has performance implications. Use with caution.
logRotation: # LogRotation settings (optional).
maxFileAgeDays: 10 # MaxFileAgeDays sets the maximum age in days of old log files before they are deleted.
maxFileCount: 10 # MaxFileCount sets the maximum number of files to retain.
maxFileSizeMB: 100 # MaxFileSizeMB sets the maximum size of individual log files in megabytes.
path: /path/to/file.log # Required. Path to the log file to use as output. The special values stdout and stderr can be used to write to stdout or stderr respectively.
# The remaining configuration content continued in a manner similar to how it was structured originally.
```yaml
# Additional configurations and settings as per original details...
The formatted and structured configuration sets a comprehensive foundation for the Cerbos server, covering storage options, auditing, engine configurations, and specific server settings for both HTTP and gRPC servers.