CloudForge
All articles
August 25, 202616 min read

DevSecOps Pipeline Security: SBOMs, SLSA, Secrets and Policy as Code

Design a practical DevSecOps delivery system with threat-based controls, workload identity, dependency governance, SBOMs, build provenance and policy as code.

CloudForge field note
DevSecOpsSoftware Supply Chain SecuritySBOM

DevSecOps integrates security into the way software is designed, built, tested, released and operated. It does not mean adding every available scanner to a CI pipeline. A pipeline overloaded with duplicate checks and unowned findings can slow delivery without materially reducing risk.

The better objective is a trustworthy path from reviewed source to a verifiable production artifact. Controls should address realistic threats, produce evidence, identify an owner and fail in a way the team understands.

NIST's Secure Software Development Framework provides high-level practices that can be integrated into an existing software lifecycle. SLSA provides a model for increasing confidence in build provenance. SBOM standards describe the components in an artifact. These pieces are useful when they are connected to engineering decisions rather than treated as compliance attachments.

Begin with the delivery threat model

Map the path from source change to production and identify how it could be compromised.

Delivery stageExample threats
SourceStolen credentials, unreviewed change, malicious dependency update
BuildMutable runner, injected input, exposed secret, tampered output
RegistryUnsigned replacement, weak access, vulnerable retained artifact
DeploymentOverprivileged identity, policy bypass, environment drift
RuntimeVulnerable component, leaked credential, unobserved configuration change

Rank threats by likelihood, impact and existing control strength. A regulated production service may need stronger provenance and approval than an internal prototype. The control model should be proportional and explicit.

Protect source and change authority

Require multi-factor authentication and least privilege for source control. Protect release branches, define review expectations and restrict who can change pipeline definitions. A pipeline file is production code because it can alter artifacts, identities and deployment behavior.

Use CODEOWNERS or equivalent rules for sensitive areas, but avoid review theater. A required approval has value only when the reviewer has enough context and time to challenge the change. For high-risk infrastructure, consider separation between the person proposing a change and the person approving production promotion.

Record exception paths. Emergency changes may need a faster route, but they should remain attributable and receive retrospective review.

Replace long-lived secrets with workload identity

Static cloud keys in CI systems create broad, durable exposure. Prefer short-lived, federated identity such as OpenID Connect between the CI provider and AWS, Azure or Google Cloud. Scope trust to the repository, branch, workflow and environment where possible.

Separate build, deployment and runtime identities. A test job should not inherit production deployment authority. A deployment identity should not automatically receive application data access. Use environment protection and approval for sensitive roles.

Keep unavoidable secrets in a managed secret system. Prevent them from entering source, build logs, artifacts or caches. Scan for accidental disclosure, but treat prevention and rapid rotation as the primary controls.

Govern dependencies at admission and over time

Software composition analysis identifies known vulnerabilities and license information, but a raw result is not a decision policy. Define what blocks a build, what creates a ticket and what can ship with an approved exception.

Consider severity, exploitability, reachability, exposure and compensating controls. A critical advisory in an unused development dependency is different from an exploitable library on an internet-facing path. Exceptions need an owner and expiration date.

Pin dependencies and actions to controlled versions or immutable references where the ecosystem supports it. Use trusted registries and verify integrity. Automate update proposals, then run the same tests and review required for other code.

An SBOM provides an inventory of software components. CISA recognizes SPDX and CycloneDX among standard machine-readable formats. Generate an SBOM during the build, associate it with the artifact and retain it where security teams can query it during a new vulnerability event.

Create verifiable build provenance

SLSA defines provenance as verifiable information about where, when and how an artifact was produced. Provenance can connect an artifact digest to its source revision, build process, builder and inputs.

The practical value appears during verification. A signed attestation should be checked against expected builders, source locations and build parameters before deployment. Merely generating a file does not prevent a substituted artifact.

Adopt maturity in stages:

  1. Make builds scripted and reproducible enough to identify source and inputs.
  2. Use a hosted or controlled build service that can generate authenticated provenance.
  3. Isolate build environments and protect signing authority from tenant-controlled steps.
  4. Verify provenance and policy at artifact admission or deployment.

Choose a target based on threat and customer requirements. Do not claim a SLSA level until the exact specification requirements and build platform behavior have been validated.

Scan the artifact you will deploy

Build once and promote the same immutable artifact through environments. Sign or attest the artifact after the controlled build. Scan the container or package, not only the source tree, because the final artifact includes base images, operating-system packages and build output.

Store findings with artifact identity. Rescan retained production artifacts when vulnerability intelligence changes. A clean result on build day does not guarantee that a dependency remains free of known issues.

Use admission policy to reject artifacts that lack required provenance, signatures, SBOMs or approved registries. Keep an audited break-glass path for urgent recovery.

Express infrastructure and deployment controls as policy

Policy as code can evaluate Terraform plans, Kubernetes manifests and cloud configuration before deployment. Useful policies include prohibited public exposure, required encryption, trusted image sources, workload identity, ownership metadata and resource limits.

Roll policies out through visibility, remediation and enforcement. Audit existing environments first. Give developers a compliant example and clear failure message. Enforce only when the supported path exists and exceptions can be governed.

Runtime policy and cloud configuration monitoring should detect drift after deployment. Prevention is not complete if administrators can create an equivalent risky state outside the pipeline without detection.

Design a pipeline that gives fast evidence

Order controls for both feedback speed and trust:

StagePurpose
Local and pull requestSecrets, linting, focused tests and fast static analysis
Controlled buildDependency resolution, artifact creation, SBOM and provenance
Artifact assessmentImage scan, signature, license and policy evaluation
Environment promotionApproval, identity, configuration and deployment policy
Post-deploymentHealth, SLO, exposure, drift and runtime validation

Parallelize independent checks and cache safely. Remove duplicate tools that produce the same unowned findings. Give failures actionable messages and a documented remediation route.

The CI/CD deployment architecture shows how immutable artifacts, environment promotion and deployment strategies fit into the wider delivery system.

Measure risk reduction and delivery health together

Security measures should show whether exposure is shrinking without hiding damage to delivery.

Track time to remediate exploitable findings, percentage of production artifacts with verified provenance and SBOMs, age of exceptions, secret exposure events, policy bypasses and recurrence of root causes. Review these beside change lead time, failure rate and recovery time.

A growing queue of scanner findings is not maturity. Prioritized remediation, verified controls and fewer repeated defects are stronger evidence.

A practical implementation sequence

During the first month, threat-model one representative production path, inventory identities and secrets, protect pipeline code and define vulnerability and exception policy.

Next, establish a controlled build that produces an immutable artifact, SBOM and provenance. Scan the artifact and verify its identity before promotion.

Then add infrastructure and deployment policy with an audit-first rollout. Connect production drift, runtime findings and incident learning back into the same backlog.

CloudForge provides DevSecOps consulting and DevOps consulting for secure CI/CD, workload identity, software supply chain controls, infrastructure policy and production evidence.

Sources

  1. NIST Secure Software Development Framework SP 800-218
  2. SLSA provenance specification
  3. SLSA artifact verification
  4. CISA SBOM resources library
  5. OWASP Software Assurance Maturity Model
Related expertise

Put this into practice

DevSecOps consulting DevOps consulting CI/CD deployment engineering
Continue learning
Cloud Run Cost Optimization: Idle Costs, Billing and Scaling6 min read GCP Network Egress Cost Optimization: Trace the Bill to the Traffic6 min read BigQuery Cost Optimization: Find and Fix Expensive Queries7 min read

Want this applied to your cloud environment?

Send CloudForge your requirements and the company will identify the highest-impact next step for your cost, delivery or reliability goals.

Contact CloudForge