Skip to content
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

Security Self Assessment: [STRIDE-INFODISCLOSE-3] RFE: Improve certificate management in Cluster API #5490

Closed
fabriziopandini opened this issue Oct 25, 2021 · 23 comments
Labels
area/control-plane Issues or PRs related to control-plane lifecycle management area/security Issues or PRs related to security kind/feature Categorizes issue or PR as related to a new feature. kind/proposal Issues or PRs related to proposals. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. sig/security Categorizes an issue or PR as relevant to SIG Security. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@fabriziopandini
Copy link
Member

fabriziopandini commented Oct 25, 2021

User Story

As a user/operator I would like to have control on how certificates are created
As a user/operator I would like to have visibility on certificate expiration date
As a user/operator I would like CAPI to support me in certificate lifecycle management
As a user/operator I would like to have the option to rely on external tools for certificate management

Detailed Description

As of today Cluster API provide a minimal support for certificate management, mostly util for management of secrets with certificate authorities, while over time the responsibility of creating certificates has been delegated to control plane providers.

While this approach worked well, some shortcomings are starting to surface, mostly boiling up to the fact that there is no top level certificate management primitives in our API, and this makes it difficult and fragmented the answer to:

  • how can I customise certificate at provisioning time
  • how can I monitor state of my certificates (expiration date)
  • how can CAPI support me in certificate lifecycle management tasks, like certificate renewal or CA rotation

Last but not least, CAPI leaks of a clean interface for integrating with external tools for certificate management, like e.g Hashicorp Vault.

This issue is about starting an effort for rethinking this area, and providing a clean solution for addressing above concerns starting from the two issues that mostly concern users, that are better support for certificate renewal and CA rotation tasks

/kind feature
/kind proposal

@randomvariable to add more from a provider PoV

@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. kind/proposal Issues or PRs related to proposals. labels Oct 25, 2021
@vincepri vincepri changed the title RFE: Improve cerificate management in Cluster API RFE: Improve certificate management in Cluster API Oct 25, 2021
@vincepri
Copy link
Member

/milestone v1.1

@k8s-ci-robot k8s-ci-robot added this to the v1.1 milestone Oct 25, 2021
@vincepri
Copy link
Member

/priority important-soon

@k8s-ci-robot k8s-ci-robot added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Oct 25, 2021
@timothysc
Copy link
Member

I agree with the sentiment, but I also think simple changes to kubeadm defaults would go a long way. cc @neolit123

@neolit123
Copy link
Member

neolit123 commented Oct 26, 2021 via email

@randomvariable
Copy link
Member

/area kcp

@k8s-ci-robot
Copy link
Contributor

@randomvariable: The label(s) area/kcp cannot be applied, because the repository doesn't have them.

In response to this:

/area kcp

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@randomvariable
Copy link
Member

/area ?

@k8s-ci-robot
Copy link
Contributor

@randomvariable: The label(s) area/? cannot be applied, because the repository doesn't have them.

In response to this:

/area ?

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@randomvariable
Copy link
Member

/area control-plane

@k8s-ci-robot k8s-ci-robot added the area/control-plane Issues or PRs related to control-plane lifecycle management label Nov 2, 2021
@randomvariable
Copy link
Member

@PushkarJ it would be good to get feedback from security folk.

@PushkarJ
Copy link
Member

PushkarJ commented Nov 2, 2021

+1 Agree that it would be fantastic to get this as a built-in feature in CAPI. CA hierarchy and CAPI cluster hierarchy also lends itself several benefits of simplicity in how we could manage the root of trust.

However, it might be helpful to understand what problem we are trying to solve (which might be well-known but is worth re-iterating in detail) by sharing the current state and its drawbacks.

Is this were Cluster API Enhancement Proposal would come into picture that elaborates more on motivations, current state, its drawbacks and future state?

@randomvariable
Copy link
Member

@randomvariable to add more from a provider PoV

I don't think there's anything more to add from a provider specific PoV. At least if we consider the possibility of leveraging cert-manager for generation, then we can defer provider specific implementations to it.

@k8s-triage-robot
Copy link

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:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 3, 2022
@sbueringer
Copy link
Member

/remove-lifecycle stale
/assign

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 3, 2022
@fabriziopandini fabriziopandini modified the milestones: v1.1, v1.2 Feb 3, 2022
@vincepri
Copy link
Member

vincepri commented Feb 3, 2022

/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added the lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. label Feb 3, 2022
@PushkarJ
Copy link
Member

Security Self Assessment: [STRIDE-INFODISCLOSE-3] RFE: Improve certificate management in Cluster API

@PushkarJ
Copy link
Member

/retitle Security Self Assessment: [STRIDE-INFODISCLOSE-3] RFE: Improve certificate management in Cluster API
/area security
/sig security

@k8s-ci-robot k8s-ci-robot changed the title RFE: Improve certificate management in Cluster API Security Self Assessment: [STRIDE-INFODISCLOSE-3] RFE: Improve certificate management in Cluster API May 13, 2022
@k8s-ci-robot k8s-ci-robot added area/security Issues or PRs related to security sig/security Categorizes an issue or PR as relevant to SIG Security. labels May 13, 2022
@sbueringer
Copy link
Member

I've created a separate issue to track machine certificate renewal specifically: #6529

@PushkarJ PushkarJ added this to To do in sig-security-tracker Jul 15, 2022
@fabriziopandini fabriziopandini added the triage/accepted Indicates an issue or PR is ready to be actively worked on. label Jul 29, 2022
@fabriziopandini fabriziopandini removed this from the v1.2 milestone Jul 29, 2022
@fabriziopandini fabriziopandini removed the triage/accepted Indicates an issue or PR is ready to be actively worked on. label Jul 29, 2022
@sbueringer
Copy link
Member

/unassign

@fabriziopandini
Copy link
Member Author

/triage accepted
@PushkarJ we are implementing automatic certificate renewal as described in #7268. is this enough to close this issue?

@k8s-ci-robot k8s-ci-robot added the triage/accepted Indicates an issue or PR is ready to be actively worked on. label Oct 3, 2022
@PushkarJ
Copy link
Member

@fabriziopandini the linked PR does look promising. We can close this with the usual caveat that if somebody feels like there is something left in the scope that is not covered in the new feature docs, we should reopen the issue.

@fabriziopandini
Copy link
Member Author

Thanks @PushkarJ !
/close

@k8s-ci-robot
Copy link
Contributor

@fabriziopandini: Closing this issue.

In response to this:

Thanks @PushkarJ !
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

sig-security-tracker automation moved this from To do to Done Oct 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/control-plane Issues or PRs related to control-plane lifecycle management area/security Issues or PRs related to security kind/feature Categorizes issue or PR as related to a new feature. kind/proposal Issues or PRs related to proposals. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. sig/security Categorizes an issue or PR as relevant to SIG Security. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Development

No branches or pull requests

9 participants