@@ -232,11 +232,10 @@ SLSA compliance in the Kubernetes release process. While providing a roadmap
232
232
this KEP can be considered complete when a SLSA level is deemed as not
233
233
implementable by the community at large (see Graduation Criteria).
234
234
235
-
236
235
### Non-Goals
237
236
238
237
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,
240
239
SLSA provides an incomplete roadmap to guide our implementation while it leaves
241
240
the rest to the project. Some of these changes need a discussion and KEP by
242
241
themselves, and we will be working on them as we advance.
@@ -377,27 +376,70 @@ required enhancements to reach each SLSA level.
377
376
378
377
### Graduation Milestones
379
378
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
+
380
384
#### SLSA Level 1: Documentation of the Build Process (not user impacting)
381
385
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.
385
389
386
390
#### SLSA Level 2: Tamper Resistance of the Build Service
387
391
388
392
Level 2 calls for digital signatures of the metadata captured and passed
389
393
around the release process in the provenance attestations.
390
394
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
+
391
411
#### SLSA Level 3: Extra Resistance to Specific Threats
392
412
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.
395
423
396
424
#### SLSA Level 4: Highest Levels of Confidence and Trust
397
425
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
399
427
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
+
401
443
402
444
<!--
403
445
**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
808
850
## Implementation History
809
851
810
852
- 2021-10-31 Initial Draft
853
+ - 2021-11-17 Broader descriptions of required work for each SLSA level
811
854
812
855
<!--
813
856
Major milestones in the lifecycle of a KEP should be tracked in this section.
0 commit comments