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

Kubernetes Hardening Guide #30

Open
raesene opened this issue Apr 12, 2021 · 39 comments
Open

Kubernetes Hardening Guide #30

raesene opened this issue Apr 12, 2021 · 39 comments
Assignees

Comments

@raesene
Copy link
Contributor

raesene commented Apr 12, 2021

What would you like to be added

As part of SIG-Security-Docs, we've been discussing the creation of a hardening guide for Kubernetes. We've got an initial document for the guide's creation here https://docs.google.com/document/d/1teb42X_c5_k8PNOSEEEbVnEr9aVAwWJXezBuf5fdmZU/edit

Why is this needed

The goal of the hardening guide is to provide guidance to cluster operators about how they can improve the security of their clusters. This will be done by discussing the major areas of security relating to a Kubernetes cluster, looking at the options available for hardening and the trade-offs inherent in them. In contrast to existing 3rd party documentation in this area (the CIS benchmark) which is a prescriptive audit style document, this guide should provide a more discursive approach.

** Table of Areas**

Section Assignee PR(s)
Threat Model @cailynse  
Control Plane Configuration    
API Server Configuration    
Scheduler Configuration @AnshumanTripathi    
Controller Manager Configuration    
File Permissions    
Worker Node Configuration    
PKI Management    
Cluster Authentication @raesene  
Authorization @bjornsen @vinayakankugoyal  
Workload Security Configuration    
Network Policy Configuration @cailynse    
Resource Limits    
Add-On Configuration  

cc @savitharaghunathan @sftim

@sftim
Copy link
Contributor

sftim commented Apr 12, 2021

/sig security

@sftim
Copy link
Contributor

sftim commented Apr 12, 2021

/triage accepted

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@savitharaghunathan
Copy link
Member

/remove-lifecycle stale

@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-triage-robot
Copy link

The Kubernetes project currently lacks enough active 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 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 rotten

@savitharaghunathan
Copy link
Member

/remove-lifecycle rotten

@savitharaghunathan
Copy link
Member

/transfer sig-security

@k8s-ci-robot k8s-ci-robot transferred this issue from kubernetes/website Jan 6, 2022
@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 Apr 6, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active 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 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 rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 6, 2022
@sftim
Copy link
Contributor

sftim commented May 6, 2022

/remove-lifecycle rotten

Hope that's OK

@k8s-ci-robot k8s-ci-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label May 6, 2022
@cailyn-codes
Copy link
Contributor

I'd be really interested in helping with this one!

@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 Aug 31, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active 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 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 rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 30, 2022
@cailyn-codes
Copy link
Contributor

/remove-lifecycle rotten

@savitharaghunathan - is this something we could work on in the next cycle with SIG Security Docs?

@k8s-ci-robot k8s-ci-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Oct 5, 2022
@cailyn-codes
Copy link
Contributor

/assign

@ericsmalling
Copy link
Contributor

I'm interested in helping, even if just to help review and learn.

@cailyn-codes
Copy link
Contributor

Awesome! @ericsmalling feel free to pick up a section! I've just been researching and trying to fill in the TODOs from the top down!

@cailyn-codes
Copy link
Contributor

Threat Modelling PR: kubernetes/website#39087

I'll also take Network Policy Configuration, please and thank you!

@bjornsen
Copy link

I'm interested in Authorization.

@raesene
Copy link
Contributor Author

raesene commented Jan 31, 2023

1st Draft for the Authentication section is open for comment on Hackmd https://hackmd.io/kxo4SRN3T3ipJHca2JNPTg

@raesene
Copy link
Contributor Author

raesene commented Jan 31, 2023

@bjornsen cool! I've added that assignment to the table at the top.

@vinayakankugoyal
Copy link

@bjornsen and me are going to be collaborating on Authorization.

@PushkarJ
Copy link
Member

PushkarJ commented Apr 6, 2023

This might be of interest to the group here: cncf/tag-security#1054

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues 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 as fresh with /remove-lifecycle stale
  • Close this issue 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 Jul 5, 2023
@savitharaghunathan
Copy link
Member

/remove-lifecycle stale

@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 Jul 5, 2023
@raesene
Copy link
Contributor Author

raesene commented Jul 30, 2023

Hey all, so I've done some more fix-ups on the authentication section (https://hackmd.io/kxo4SRN3T3ipJHca2JNPTg?both) seems like it's probably in a decent enough spot to open a PR?

I know we had a quick chat about where in the docs site these pages should go, but I'm not sure we came to any firm conclusion.

@savitharaghunathan
Copy link
Member

savitharaghunathan commented Aug 3, 2023

I think concepts -> security is a good home for the hardening guide. If needed we can create a folder and add items there. eg concepts -> security -> hardening guide -> auth mechanisms.
@reylejano WDYT? should we bring this up in a sig-docs meeting or create a draft PR to get feedback on the content as well as the location?

@sftim
Copy link
Contributor

sftim commented Aug 3, 2023

I think concepts -> security is a good home for the hardening guide

👍

A guide like this might then link to specific task pages, eg “Enable audit logging” “Configure KMS encryption for API objects”.

@reylejano
Copy link
Member

I think concepts -> security is a good home for the hardening guide. If needed we can create a folder and add items there. eg concepts -> security -> hardening guide -> auth mechanisms. @reylejano WDYT? should we bring this up in a sig-docs meeting or create a draft PR to get feedback on the content as well as the location?

I think concepts -> security -> hardening guide works which translates to/docs/concepts/security/hardening-guide

@sftim
Copy link
Contributor

sftim commented Aug 4, 2023

I wonder if we want to add a section to the list: cluster network security. That's different from network policy.

For example, you can harden Kubernetes by using MACsec between nodes, with appropriately frequent rekeying (lots of alternatives exist).

@raesene
Copy link
Contributor Author

raesene commented Aug 10, 2023

yeah I could see cluster network security being a good addition, as the topic is wider than just netpol.

On the organization of the page, that makes sense to me, I'll do a PR for the Authentication section with that structure and we can see if it works well :).

@raesene
Copy link
Contributor Author

raesene commented Aug 10, 2023

Opened the PR here kubernetes/website#42486

@ashish493
Copy link

I've opened a PR for Authorization Guide - kubernetes/website/#43623.
Reviews and feedback are appreciated.

@ashish493
Copy link

I'm planning to pick the Resource Limits topic next. If anyone else is working on this topic, let me know if I can be of any help.

@slashben
Copy link

slashben commented Nov 6, 2023

I am happy to work on

  • Workload Security Configuration
  • API server configuration

@AnshumanTripathi
Copy link

I volunteer to work on Scheduler Configuration.

@AnshumanTripathi
Copy link

Question: should the hardening guides be moved to References? This is with regards to question from @tengqm here
kubernetes/website#45080 (comment)

@sftim
Copy link
Contributor

sftim commented Sep 22, 2024

Guides are typically not reference material; see eg https://www.writethedocs.org/videos/eu/2017/the-four-kinds-of-documentation-and-why-you-need-to-understand-what-they-are-daniele-procida/ to see that these are different documentation kinds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests