Secret Management
In Zerq, treat credentials as managed objects with clear ownership, short rotation windows, and no secret literals in proxies or workflow nodes.
Practical rules
- Store secrets in credential records or env-var-backed sources, never in route definitions.
- Scope credentials per environment (
dev,staging,prod) and per integration. - Restrict who can view, edit, or bind credentials through role policy.
- Require an audit event for every create, rotate, or revoke action.
Validation commands
# Positive path
curl -i "https://gateway.example.com/internal/payments" \
-H "Authorization: Bearer $OPS_TOKEN" \
-H "X-Client-ID: billing-service" \
-H "X-Profile-ID: prod-internal"
# Negative path: missing token should fail
curl -i "https://gateway.example.com/internal/payments" \
-H "X-Client-ID: billing-service" \
-H "X-Profile-ID: prod-internal"
Expected security outcomes
401: caller is unauthenticated.403: caller authenticated but not authorized for this profile or resource.405: request method blocked by proxy method policy.429: caller exceeds profile/client quota after auth passes.
Operational checklist
- Rotate non-human credentials on a fixed schedule.
- Verify one success request and one deny request after every rotation.
- Revoke stale credentials immediately when owner or system changes.
- Review audit trail weekly for direct edits and emergency exceptions.