A Software Bill of Materials (SBOM) is a list of all the components, libraries, and other dependencies used in a software application. Harness SSCA can ingest JSON SPDX or CycloneDx formatted SBOM from any tool that can generate these report formats.
Use this configuration for scanners that don't have built-in support in SSCA. For scanners with built-in support, use the SSCA Orchestration step to generate SBOM or configure your pipeline to ingest results from an STO scanner step. For a list of all SSCA-supported scanners, go to What's supported for STO.
Generate a key pair
Keys are used to sign and verify attestations.
- Generate a public and private key pair. For example, you can use Cosign to generate key pairs.
- Create two Harness file secrets, one for the private key file and one for the public key file.
- Create a Harness text secret to store the password for the private key.
Configure your pipeline to ingest SBOM
In your Harness pipeline, go to the stage where you want to ingest the SBOM, and select the Overview tab.
In Shared Paths, enter a path to a location where your SBOM can be stored on the build machine, such as
Add a step to your stage that generates an SBOM, such as a Run, Plugin, or GitHub Action step.
For example, this Run step uses Aqua Trivy to generate an SBOM.
trivy image \
--format spdx-json \
--output /shared/customer_artifacts/result.spdx.json \
You can also configure pipelines to ingest SBOM from STO scanner steps.
If your SBOM tool can't output directly to your Shared Path, then add commands or a Run step to copy the SBOM into the directory specified in Shared Paths.
Add an SSCA Orchestration step configured to ingest the SBOM:
- Set the Step Mode to Ingestion.
- For SBOM File Path, enter the path to the SBOM file generated by your SBOM tool.
- For Container Registry, select the Docker Registry connector that is configured for the Docker-compliant container registry where you stored the artifact associated with the SBOM, such as Docker Hub, Amazon ECR, or GCR.
- For Image, enter the repo path (in your container registry) and tag for the image associated with the SBOM, such as
- Private Key: The Harness file secret containing the private key to use to sign the attestation.
- Password: The Harness text secret containing the password for the private key.
If you're using Docker-compliant ECR or GCR repositories, you must: