Ansible playbook used to secure the master/controlplane node in a kubernetes cluster.

Important

The security of your server is your own job. This sets up and checks a few important things, but not all of them.

Notes

  • anonymous-auth is not set to false because if set, nodes cannot join the cluster.
  • No Admission control plugins have been set
  • Some checks have been left out since they may result in an issue with the deployment if they are included or are too custom

Supported variables

check_cluster_role_bindings

Checks if there is only one cluster-admin role binding Defaults to: yes.

fix_file_permissions

Fixes all the relevant file permissions to be less open Defaults to: yes.

fix_k8s_components

Edits some k8s manifest files to fix security issues Defaults to: yes.

check_roles_have_wildcard_all

Checks if there are any wildcards in roles Defaults to: yes.

check_default_namespace_empty

Checks if the default namespace has anything besides the kubernetes service Defaults to: yes.