For DevOps, SecOps, and Platform Engineering
A NextSecurity Project β Enforce runtime approval policies in CI/CD pipelines.
SecureCICD is designed to run as a centralized runtime validation service:
| Environment | Description |
|---|---|
| Docker (Default) | Easy to run anywhere, local or server |
| Kubernetes (K8s) | Scalable deployment using ConfigMap for policies |
| AWS Fargate / Cloud Run | Serverless, secure perimeter, stateless |
| Azure Web App | Optional PaaS deployment |
docker run -d -p 8080:8080 \
-e ALLOWED_APPROVERS="svc-release,secops,ENG\\DevLeads,SEC\\Architects" \
--name securecicd nextsecurity/securecicd:latest| Variable | Purpose |
|---|---|
ALLOWED_APPROVERS |
Comma-separated list of trusted usernames or groups |
LOG_LEVEL |
info or debug (default: info) |
PORT |
Optional override for default 8080 |
- task: CurlUploader@1
inputs:
curlArgs: >
-X POST $(SECURECICD_URL)/validate-approval
-H "Content-Type: application/json"
-d '{
"approver":"$(Build.RequestedFor)",
"author":"$(Build.QueuedBy)",
"reassigned":false,
"pipeline_id":"$(Build.DefinitionName)",
"commit_id":"$(Build.SourceVersion)"
}'SecureCICD logs every validation request:
- Approver, author, reassigned, pipeline ID, commit ID
- Result: pass/fail
- Output format: JSON (stdout, can redirect to log agent)
Recommended to send logs to:
- SIEM (Splunk, Datadog)
- S3 bucket
- Centralized audit store
| Mode | Purpose |
|---|---|
| Passive | Log violations, do not block |
| Blocking | 403 Forbidden on violation (recommended) |
| Hybrid | Block prod only, log for others |
SecureCICD is built for large organizations. Here's how to scale across 100+ pipelines:
- Create a composite action or Docker-based action
- Store in a central GitHub internal repo
- Reuse via:
uses: your-org/securecicd-action@v1- Package SecureCICD validation logic as a shared task
- Use
template.ymlto include it across projects - Or inject into existing pipelines using task groups
| Platform | Method |
|---|---|
| GitHub | Shared workflows or composite actions |
| Azure DevOps | Task groups or template extends: |
| GitLab | include: |
| CircleCI | Reusable config blocks / orbs |
| OWASP Risk | SecureCICD Mitigation |
|---|---|
| CICD-SEC-1: Unauthorized Deployments | β Blocks unapproved users |
| CICD-SEC-2: Misconfig Pipelines | β Validates approvals at runtime |
| CICD-SEC-7: Missing Approver Controls | β Self-approval and reassignment checks |
| CICD-SEC-8: Insufficient Logging | β Full structured JSON audit |
| CICD-SEC-10: Weak Access Control | β Enforced trusted groups via policy |
- Deploy SecureCICD in logging mode to 3β5 pilot pipelines
- Review logs weekly with SecOps/Platform Eng
- Harden allowlist (pull from AD/LDAP or ConfigMap)
- Switch to blocking mode for prod pipelines
- Expand org-wide as a required pipeline stage
- Python 3.10+ (if running from source)
- Docker 20+ (if containerized)
- Outbound access from pipelines (for
curlorInvoke-RestMethod)
SecureCICD is built for real-world scale, security-first orgs, and visibility in every deployment decision.