Skip to content

Commit 37ccc10

Browse files
committed
KEP-3027: SLSA level work items
The KEP text now describes in a broad sense the required work to reach each of the SLSA levels. No attempt is made to make comprehensive descriptions, just to provide a rough guide to what we need to work to achieve each level. Signed-off-by: Adolfo García Veytia (Puerco) <[email protected]>
1 parent c8f9156 commit 37ccc10

File tree

1 file changed

+52
-9
lines changed
  • keps/sig-release/3027-slsa-compliance

1 file changed

+52
-9
lines changed

keps/sig-release/3027-slsa-compliance/README.md

Lines changed: 52 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,10 @@ SLSA compliance in the Kubernetes release process. While providing a roadmap
232232
this KEP can be considered complete when a SLSA level is deemed as not
233233
implementable by the community at large (see Graduation Criteria).
234234

235-
236235
### Non-Goals
237236

238237
This KEP does not aim to propose concrete technical implementation details
239-
or process improvements to achieve each of the SLSA levels. As a framework,
238+
or process improvements to achieve each SLSA level. As a framework,
240239
SLSA provides an incomplete roadmap to guide our implementation while it leaves
241240
the rest to the project. Some of these changes need a discussion and KEP by
242241
themselves, and we will be working on them as we advance.
@@ -377,27 +376,70 @@ required enhancements to reach each SLSA level.
377376

378377
### Graduation Milestones
379378

379+
The following is a rough, non-comprehensive outline of the work required
380+
to achieve each of the SLSA levels. It is important to note that some
381+
items and/or their specific implementations (like digital signing)
382+
will warrant a KEP of their own.
383+
380384
#### SLSA Level 1: Documentation of the Build Process (not user impacting)
381385

382-
SLSA level 1 calls for build and release process information to be made available
383-
to consumers to provide a better overview of how software gets built. To comply,
384-
only provenance metadata needs to be produced:
386+
SLSA level 1 calls for consumer availability of build and release process
387+
information. The metadata provides a better overview of how software gets
388+
built. Only provenance attestations need be published to reach compliance.
385389

386390
#### SLSA Level 2: Tamper Resistance of the Build Service
387391

388392
Level 2 calls for digital signatures of the metadata captured and passed
389393
around the release process in the provenance attestations.
390394

395+
Work to reach SLSA 2 will center around three key areas:
396+
397+
1. Laying the required groundwork to enable SIG Release access to
398+
produce digital signatures. This enhancement is being proposed in
399+
[KEP-3031](https://github.com/kubernetes/enhancements/issues/3031).
400+
401+
2. Add the required improvements to sign the container images that are part
402+
of a Kubernetes release.
403+
404+
3. Add the required improvements to allow the release process to
405+
sign and verify artifacts as they travel through staging and release.
406+
407+
With those improvements in place, releases will produce signatures
408+
for their artifacts (images, binaries, tarballs, etc) as well as the
409+
release metadata (provenance attestations, SBOMs, etc).
410+
391411
#### SLSA Level 3: Extra Resistance to Specific Threats
392412

393-
Enhancements needed to reach SLSA Level 3 involve modifying the release process
394-
so that builds are controlled from configuration code checked into the VCS.
413+
The enhancements needed to reach SLSA Level 3 involve modifying the release process
414+
so that builds are controlled from configuration code checked into the VCS. Key
415+
areas for SLSA level 3 include:
416+
417+
1. Modifying the release process to run from configuration files that determine
418+
the build's outcome (relevant issue:
419+
[k/release#1836](https://github.com/kubernetes/release/issues/1836))
420+
421+
2. The build process needs to be modified to ensure the parameters for
422+
running builds are accessible and recorded in the provenance statements.
395423

396424
#### SLSA Level 4: Highest Levels of Confidence and Trust
397425

398-
Reaching SLSA level 4 requires hardening and reviewing of access controls and
426+
Reaching SLSA level 4 demands hardening and reviewing of access controls and
399427
permissions to the build infrastructure, possibly a review of the PR approval
400-
process, and making the build process hermetic.
428+
process, and making the build process hermetic. Some requirements:
429+
430+
1. Modifying the release process to make available all dependencies before
431+
the build starts (tracking issue:
432+
[k/sig-release#1720](https://github.com/kubernetes/sig-release/issues/1720))
433+
434+
2. Ensuring that the release process meets a security standard. The framework
435+
does not require a specific one. This topic shall be proposed and discussed in
436+
a KEP when the time comes.
437+
438+
3. Ensuring that only an extremely limited number of individuals can override the
439+
guarantees provided by SLSA. This is mostly true at the moment but more
440+
transparency is needed to ensure risks and policies are understood by the
441+
community.
442+
401443

402444
<!--
403445
**Note:** *Not required until targeted at a release.*
@@ -808,6 +850,7 @@ For each of them, fill in the following information by copying the below templat
808850
## Implementation History
809851

810852
- 2021-10-31 Initial Draft
853+
- 2021-11-17 Broader descriptions of required work for each SLSA level
811854

812855
<!--
813856
Major milestones in the lifecycle of a KEP should be tracked in this section.

0 commit comments

Comments
 (0)