CI/CD Supply-Chain Security
Control identity, artifacts, secrets, and promotion policy along the path code already travels. A scanner report is not a security program.
Integrating security into infrastructure and delivery workflows through strong access controls, secure configurations, and automated checks.
Unprioritized CVE lists train teams to ignore scanners. Severity, exploitability, exposure, and a remediation deadline belong together.
A private subnet does not help if a CI role can create IAM users or read every secret. Map who can assume what, from where.
A scan that finds a key is incomplete until the key is revoked, rotated, and the leak path is closed.
Put security on the path that code and infrastructure already travel. Workload identity, least privilege, secrets hygiene, image and dependency scanning, and policy at promotion time beat a separate security process that reports after the change is live.
CI assumes a narrowly scoped role through OIDC. Dependencies and images are scanned before publish. Secrets live in AWS Secrets Manager, Azure Key Vault, or HashiCorp Vault—and reach the cluster through External Secrets, CSI, or SOPS—not Git or workflow logs. Certificate issuance and rotation are part of the same path. Admission or pipeline policy blocks known-bad classes of change. Network segmentation and workload identity close the runtime side. Detection still matters: preventative controls will miss something.
OIDC identity. Short-lived credentials scoped to a repository, ref, and audience. Not a stored access key.
Illustrative control points. A scanner finding is a signal, not proof that a system is secure. Identity and promotion policy usually matter more than another dashboard.
OIDC to cloud roles, IRSA or workload identity to application roles. Avoid long-lived keys in repositories and container images.
Build-time scans catch issues early. Promotion policy decides what is allowed into staging and production. They are different controls.
Branch protection, CODEOWNERS on workflow files, and environment reviewers restrict who can change the privileged path.
Critical exposed findings block. Lower findings have a deadline and an exception record. Infinite backlogs are not a security program.
Issuance, renewal, trust distribution, and revocation need owners. An expired ingress certificate is both an availability and a trust failure.
A gate that blocks on every informational finding will be bypassed. A gate that never blocks will not change behavior. Tie blocks to exploitability and exposure.
Org-level rules prevent the worst defaults. Teams still need a documented exception path with expiry.
Three scanners with no owner produce noise. One owned pipeline, one identity model, and one secrets path usually reduce real risk faster.
A GitHub Actions job requests an id-token and assumes a role that can push to one ECR repository and update one Kubernetes namespace. The image is scanned; critical findings with a known exploit and internet exposure block promotion. Production secrets come from a manager using the workload identity. This is an educational control set, not evidence of a client engagement.
Temporary keys become permanent. If OIDC is delayed, shorten the key lifetime and restrict the role immediately.
The image is clean and the runtime identity can do anything. Review the role, not only the CVE list.
Finding a token in Git history is the start of the incident. Rotate, revoke, and rewrite the leak path.
The delivery simulation includes a security step before the image is treated as publishable.
Inspect the scan gate →Control identity, artifacts, secrets, and promotion policy along the path code already travels. A scanner report is not a security program.
Build once, use short-lived identities, protect release gates, and verify the artifact you actually deploy.
Isolate blast radius with accounts, identities, state, and promotion of the same artifact—not a shared admin role with three VPC names.
Architecture, delivery, identity, and recovery—not a tool list. No fabricated case studies, no implied retainer.