-
Notifications
You must be signed in to change notification settings - Fork 505
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Signing artifacts with cosign
#2227
Comments
Yay! |
Some stream of consciousness...
|
Everything!
Why not?
No need!
Definitely not!
Why not both?
Not the artifacts themselves!
Sure, why not?
Sure!
Great question! Ideally, anything you want to quickly verify.
At least for things you intend folks to consume, I would think yes.
I'd say just the manifest list, but it depends on if the downstream software understands manifest lists. If that's too hard to keep up, just sign both. |
I was thinking that, at least for the images that go out as part of the kubernetes releases, we should sign them in CI before promotion and then have the promoter verify the signature to accept them for promotion. And then add a final signature during promotion for verification downstream.
Another idea: what about if we start a new repo for .deb and .rpm packages signed with a new key and publish those in parallel to the current ones. Then we slowly make the transition to these as the official ones, signed with a key managed by the community? |
Thanks for the quick response, @jonjohnsonjr! Let's sign ALL THE THINGS!
+1
Hearing a few things for image promoter:
Are you referring to:
If #1, let's consider this out of scope, at least for this issue:
If #2, I think you're touching on the "galaxy-brain stuff" I've mentioned on a few of the leads call! As an example:
ref: https://github.blog/2021-06-21-github-packages-container-registry-generally-available/ I'd like to modify the image promoter to be a generic artifact promoter that uses GCR/GAR as the backend. If we do that, we can genericize all of the signing/validation workflows. |
Isn't changing the signature after promotion confusing for end users? Why won't wee keep the original signature if the content of the image does not change during promotion? |
second what @puerco said |
I am not sure if you're at the right stage of planning to this level, but you should definitely start recording entries into rekor as well. |
@saschagrunert -- How I see this potentially playing out (for release artifacts in particular):
Optionally, somewhere in the middle, we could have the Release Manager in charge sign the staging images as part of
@lukehinds -- Absolutely! |
cc: @kubernetes/sig-release @kubernetes/wg-k8s-infra |
My question: does this change need a KEP? |
Discussion here: kubernetes/sig-release#1724 |
A few thoughts on this: Right now, there is a cosign test key for signing. It would be nice, if we could switch to keyless signing via workload identities. The next cosign version should be able to:
Current blockers:
I would suggest to wait until the sigstore stack is ready :) It also might make sense to combine all of this with TUF or in-toto on the long run. First TUF, then in-toto. |
+1, one concern I have is making sure that the signatures are meaningful, having workload identity based signatures from the relatively locked down release process would provide some assurances.
build / publish actually runs in Google Cloud Build currently anyhow, FWIW. (or CI builds happen in our own Kubernetes based CI, which has GKE workload identity available). Definitely smells like a KEP to me :-) Somewhat related: I think if we want to sign CI builds we need to better secure them first (move them out to GCB for starters). |
@BenTheElder Just for the record: https://github.com/google-github-actions/auth this might be interesting then, right? |
Er I don't think so for the main project 😅 Some of the smaller repos use GitHub Actions for various things but not Kubernetes releases or CI builds. |
The initial draft of the sining KEP is proposed in kubernetes/enhancements#3061 |
Would be a great pioneering use case for sigstore trust delegations! @asraa |
Tracking the first implementation in #2383 |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
/priority important-longterm |
I think this can be closed and we can track the work in kubernetes/enhancements#3031 |
What would you like to be added:
Signing artifacts with
cosign
(I'm opening a placeholder to capture work. Let's capture thoughts here and we'll iterate over the issue description together.)
roles/cloudkms.signerVerifier
: infra/gcp: Grant Release Manager Adminsroles/cloudkms.signerVerifier
k8s.io#2614Why is this needed:
Should supersede sections of #914 once we flesh this out.
/assign @justaugustus @cpanato @puerco
cc: @kubernetes/sig-release-admins @kubernetes/release-engineering @dlorenc @lukehinds
The text was updated successfully, but these errors were encountered: