5.1.1 Ensure that the cluster-admin role is only used where required

Information

The RBAC role cluster-admin provides wide-ranging powers over the environment and should be used only where and when needed.

Kubernetes provides a set of default roles where RBAC is used. Some of these roles such as cluster-admin provide wide-ranging privileges which should only be applied where absolutely necessary. Roles such as cluster-admin allow super-user access to perform any action on any resource. When used in a ClusterRoleBinding it gives full control over every resource in the cluster and in all namespaces. When used in a RoleBinding it gives full control over every resource in the rolebinding's namespace, including the namespace itself.

Solution

Identify all clusterrolebindings to the cluster-admin role. Check if they are used and if they need this role or if they could use a role with fewer privileges.

Where possible, first bind users to a lower privileged role and then remove the clusterrolebinding to the cluster-admin role :

kubectl delete clusterrolebinding [name]

Impact:

Care should be taken before removing any clusterrolebindings from the environment to ensure they were not required for operation of the cluster. Specifically, modifications should not be made to clusterrolebindings with the system: prefix as they are required for the operation of system components.

See Also

https://workbench.cisecurity.org/benchmarks/17568

Item Details

Category: ACCESS CONTROL, AUDIT AND ACCOUNTABILITY

References: 800-53|AC-2, 800-53|AC-3, 800-53|AC-6, 800-53|AC-6(1), 800-53|AC-6(7), 800-53|AU-9(4), CSCv7|5.1

Plugin: Unix

Control ID: 429d80d16affde87c366c7bf0de860c1966c156b8362b7c70b9e53b83990bff8