Supply Chain Security
SLSA Framework Implementation
Build Level Requirements
# Example SLSA Level 3 Build Definition
steps:
  - name: Build with provenance
    uses: slsa-framework/slsa-github-generator@v1
    with:
      base-image: 'alpine:3.19'
      provenance-name: 'multiple'
      private-key: ${{ secrets.SLSA_PRIVATE_KEY }}Binary Authorization
Admission Controller Configuration
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: SignedImages
metadata:
  name: require-signed-images
spec:
  match:
    kinds:
    - apiGroups: [""]
      kinds: ["Pod"]
  parameters:
    authorities:
    - keyless:
        url: "spiffe://cluster.local/ns/cosign-system/sa/cosign"
        identities: ["*"]Artifact Signing
Cosign Implementation
# Generate keypair
cosign generate-key-pair
# Sign container image
cosign sign --key cosign.key ${IMAGE_URI}
# Verify signature
cosign verify --key cosign.pub ${IMAGE_URI}Software Bill of Materials (SBOM)
Syft Integration
name: Generate SBOM
on:
  push:
    branches: [ main ]
jobs:
  sbom:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Generate SBOM
        uses: anchore/syft-action@v0.7.0
        with:
          image: ${{ env.IMAGE_NAME }}
          format: spdx-json
          output: sbom.jsonSecure Build Systems
Reproducible Builds
- Deterministic compilation 
- Source verification 
- Build environment isolation 
- Artifact provenance 
Attestation Management
- In-toto attestations 
- Policy enforcement 
- Chain of custody 
- Trust boundaries 
Best Practices
- Dependency Management - Use private artifact repositories 
- Implement dependency pinning 
- Regular vulnerability scanning 
- Automated updates 
 
- Build Security - Hermetic builds 
- Build reproducibility 
- Environment isolation 
- Resource integrity 
 
- Artifact Management - Signature verification 
- SBOM generation 
- Provenance tracking 
- Policy enforcement 
 
Last updated