TL;DR: A GitHub Actions workflow that pushes policy files to Cerbos Hub on main-branch changes using repository secrets and a containerised CLI shows how CI/CD pipelines can become secret-bearing automation paths rather than simple build steps, according to Cerbos. The governance question is whether those credentials, triggers, and write permissions are controlled like production identity assets, not convenience plumbing.
NHIMG editorial — based on content published by Cerbos: a guide to automatically uploading Cerbos policies to Cerbos Hub from GitHub Actions
By the numbers:
- 96% of organisations store secrets outside of secrets managers in vulnerable locations including code, config files, and CI/CD tools.
Questions worth separating out
Q: How should security teams govern GitHub Actions workflows that use secrets to update policy stores?
A: Treat the workflow as a non-human identity with its own owner, purpose, scope, and revocation path.
Q: Why do CI/CD secrets create more risk than teams often expect?
A: CI/CD secrets become high-risk when they persist across many runs, are stored close to code, and can be reused by automated jobs with write authority.
Q: What breaks when repository secrets are never recertified?
A: Access drift becomes invisible.
Practitioner guidance
- Classify the workflow as a governed machine identity Assign an owner, purpose, and access scope to each GitHub Actions workflow that can authenticate to external systems.
- Replace long-lived credentials with narrow, revocable access Use the smallest possible permission set for policy upload jobs, then rotate or revoke credentials whenever the repository, store, or deployment process changes.
- Separate policy publishing from routine build automation Put policy replacement behind a dedicated approval and audit path, especially when the job can change authorization behaviour.
What's in the full article
Cerbos' full guide covers the operational detail this post intentionally leaves for the source:
- The exact GitHub Actions workflow file structure and container command used to upload policies
- The repository secret names and setup sequence needed to make the automation run successfully
- The step-by-step verification flow in GitHub Actions after a policy push
- The Cerbos Hub store credential fields required for write access
👉 Read Cerbos' guide to automating policy uploads with GitHub Actions →
GitHub Actions policy uploads: what it means for secret handling?
Explore further