Workload Secrets
Configure dynamic secret generation, CI/CD injection, and Kubernetes integration for workload credentials.
Workload Secrets replaces static credentials with dynamic, short-lived secrets generated at runtime — scoped to the requesting workload and expired automatically.
How Dynamic Secrets Work
When a workload requests credentials, WNCYBER:
- Verifies the workload’s identity (via agent token, IAM role, or Kubernetes service account)
- Checks the applicable secret policy
- Creates a new credential in the upstream system (database, cloud provider, etc.)
- Returns the credential with a TTL
- Revokes the credential automatically when the TTL expires
The upstream system never holds a static password — credentials exist only for the duration of the requesting workload’s session.
Configuring Secret Paths
Secret paths define which secrets are available and to which workloads.
- Navigate to Secrets → Secret Paths → New Path
- Define:
- Path name — e.g.,
database/production/api-db - Backend — the upstream system (PostgreSQL, MySQL, AWS, etc.)
- Allowed requestors — which workload identities may request this secret
- TTL — how long issued credentials remain valid (default: 1 hour)
- Path name — e.g.,
- Test the path with Generate Test Secret
Database Credentials
Supported Databases
PostgreSQL, MySQL, MariaDB, Microsoft SQL Server, Oracle, MongoDB, Redis.
Setup
- Create a service account in the target database with the minimum permissions required
- Grant WNCYBER the ability to create and revoke credentials under that service account
- Configure the secret path with the database connection details
- Workloads request credentials via the WNCYBER API or SDK
Issued credentials are unique to each workload request. If a credential is compromised, only that single workload session is affected — not all consumers of the database.
CI/CD Integration
GitHub Actions
Add the WNCYBER action to your workflow:
- name: Get database credentials
uses: wncyber/secrets-action@v1
with:
secret-path: database/production/api-db
id: secrets
- name: Run migrations
env:
DB_USER: ${{ steps.secrets.outputs.username }}
DB_PASS: ${{ steps.secrets.outputs.password }}
run: npm run db:migrate
Credentials are injected as masked environment variables and are never written to logs or artifacts.
Other CI/CD Platforms
WNCYBER supports native integrations with GitLab CI, Jenkins, Azure DevOps, CircleCI, and Bitbucket Pipelines. See the provider-specific guides for configuration examples.
Kubernetes Integration
Secrets Store CSI Driver
WNCYBER supports the Kubernetes Secrets Store CSI Driver for mounting dynamic secrets as volumes:
- Install the WNCYBER provider for the Secrets Store CSI Driver
- Create a
SecretProviderClassreferencing your secret path - Mount the secret in your pod spec — credentials are injected at pod startup and rotated automatically
Native Vault Injection (Sidecar)
Alternatively, deploy the WNCYBER sidecar injector:
- Add the annotation
wncyber.io/inject: "true"to your pod spec - Specify secret paths in the
wncyber.io/secretsannotation - The sidecar injects credentials as environment variables at startup
Encryption Key Management
WNCYBER provides centralised encryption key management with automatic rotation:
- Navigate to Secrets → Encryption Keys → New Key
- Define the key purpose, algorithm (AES-256, RSA-4096), and rotation schedule
- Applications reference keys by name — WNCYBER handles the underlying key material
Key rotation is transparent to consuming applications: WNCYBER re-encrypts existing data with the new key during the rotation window.