Skip to main content

valint_slsa

valint slsa

Create SLSA provenance evidence command

Synopsis

Collect, Create and Store SLSA provenance evidence

valint slsa [TARGET] [flags]

Optional flags

Flags for slsa subcommand

ShortLongDescriptionDefault
--all-envAttach all environment variables
--attest.configAttestation config path
--attest.defaultAttestation default config, options=[sigstore sigstore-github x509 x509-env kms pubkey]
--build-typeSet build type
--builder-idSet builder id
--by-productAttach by product path
--cax509 CA Chain path
--certx509 Cert path
--componentsSelect by products components groups, options=[metadata layers packages syft files dep commits][metadata,layers]
--crlx509 CRL path
--crl-full-chainEnable Full chain CRL verfication
--depthGit clone depth
--disable-crlDisable certificate revocation verificatoin
--externalAdd build external parameters[]
--finished-onSet metadata finished time (YYYY-MM-DDThh:mm:ssZ)
-f--forceForce overwrite cache
-o--formatEvidence format, options=[statement attest]
--git-authGit repository authentication info, [format: 'username:password']
--git-branchGit branch in the repository
--git-commitGit commit hash in the repository
--git-tagGit tag in the repository
-h--helphelp for slsa
--invocationSet metadata invocation ID
--keyx509 Private key path
--kmsProvide KMS key reference
--ociEnable OCI store
-R--oci-repoSelect OCI custom attestation repo
--passPrivate key password
--payloadpath of the decoded payload
--platformSelect target platform, examples=windows/armv6, arm64 ..)
--predicateImport predicate path
--pubkeyPublic key path
--started-onSet metadata started time (YYYY-MM-DDThh:mm:ssZ)
--statementImport statement path

Global options flags

Flags for all valint subcommands

ShortLongDescriptionDefault
--cache-enableEnable local cachetrue
-c--configConfiguration file path
-C--context-typeCI context type, options=[jenkins github circleci azure gitlab travis tekton bitbucket local admission]
--deliverableMark as deliverable, options=[true, false]
-e--envEnvironment keys to include in evidence
-G--gatePolicy Gate name
-L--labelAdd Custom labels
--levelLog depth level, options=[panic fatal error warning info debug trace]
--log-contextAttach context to all logs
--log-fileOutput log to file
-d--output-directoryOutput directory path"${XDG_CACHE_HOME}/valint"
-O--output-fileOutput file name
-p--pipeline-namePipeline name
--predicate-typeCustom Predicate type (generic evidence format)"http://scribesecurity.com/evidence/generic/v0.1"
-n--product-keyProduct Key
-V--product-versionProduct Version
-q--quietSuppress all logging output
-U--scribe.client-idScribe Client ID (deprecated)
-P--scribe.client-secretScribe Client Token
-D--scribe.disableDisable scribe client
-E--scribe.enableEnable scribe client (deprecated)
-u--scribe.urlScribe API Url"https://api.scribesecurity.com"
-s--showPrint evidence to stdout
--structuredEnable structured logger
--timeoutTimeout duration"120s"
-v--verboseLog verbosity level [-v,--verbose=1] = info, [-vv,--verbose=2] = debug

Examples for running valint slsa

  valint slsa <target>

<target> Target object name format=[<image:tag>, <dir path>, <git url>]

valint slsa alpine:latest create In-toto statement of SLSA provenance (default)
valint slsa alpine:latest -o statement create In-toto statement of SLSA provenance
valint slsa alpine:latest -o attest create In-toto attestation of SLSA provenance
valint slsa alpine:latest --predicate custom.predicate.json use custom SLSA provenance predicate
valint slsa alpine:latest --statement custom.statement.json use custom SLSA provenance statement
valint slsa alpine:latest --by-product build.log.txt attach build products
valint slsa alpine:latest --components layers,packages,files attach target components by products
valint slsa alpine:latest --all-env attach all environment
valint slsa alpine:latest --env MY_ENV attach specific environment
valint slsa alpine:latest --invocation my_invocation set invocation id
valint slsa alpine:latest --started-on 2023-07-25T15:30:00Z set started on

Supports the following image sources:
valint slsa yourrepo/yourimage:tag defaults to using images from a Docker daemon. If Docker is not present, the image is pulled directly from the registry.

You can also explicitly specify the scheme to use:
valint slsa docker:yourrepo/yourimage:tag explicitly use the Docker daemon
valint slsa podman:yourrepo/yourimage:tag explicitly use the Podman daemon
valint slsa docker-archive:path/to/yourimage.tar use a tarball from disk for archives created from "docker save"
valint slsa oci-archive:path/to/yourimage.tar use a tarball from disk for OCI archives (from Skopeo or otherwise)
valint slsa dir:path/to/yourproject read directly from a path on disk (any directory)
valint slsa registry:yourrepo/yourimage:tag pull image directly from a registry (no container runtime required)
valint slsa file:path/to/yourproject/file read directly from a path on disk (any single file)
valint slsa git:path/to/yourrepository read directly from a local repository on disk
valint slsa git:https://github.com/yourrepository.git read directly from a remote repository on git

SEE ALSO

  • valint - Validate Supply Chain Integrity