Ansichten:
Profilanwendbarkeit: Stufe 1 - Master-Knoten
Die Kubernetes-API speichert Geheimnisse, bei denen es sich um Service-Account-Tokens für die Kubernetes-API oder um Anmeldeinformationen handelt, die von Workloads im Cluster verwendet werden. Der Zugriff auf diese Geheimnisse sollte auf die kleinstmögliche Gruppe von Benutzern beschränkt werden, um das Risiko einer Rechteausweitung zu verringern.
Unangemessener Zugriff auf Geheimnisse, die im Kubernetes-Cluster gespeichert sind, kann einem Angreifer zusätzlichen Zugriff auf den Kubernetes-Cluster oder externe Ressourcen ermöglichen, deren Anmeldedaten als Geheimnisse gespeichert sind.
Hinweis
Hinweis
Standardmäßig haben in einem kubeadm-Cluster die folgende Liste von Prinzipalen get-Berechtigungen für secret-Objekte.
CLUSTERROLEBINDING                                SUBJECT
TYPE                          SA-NAMESPACE
cluster-admin                                              system:masters
Group
system:controller:clusterrole-aggregation-controller       clusterroleaggregation-
controller ServiceAccount kube-system
system:controller:expand-controller                        expand-controller
ServiceAccount kube-system
system:controller:generic-garbage-collector                generic-garbagecollector
ServiceAccount kube-system
system:controller:namespace-controller                     namespace-controller
ServiceAccount kube-system
system:controller:persistent-volume-binder                 persistent-volumebinder
ServiceAccount kube-system
system:kube-controller-manager                             system:kube-controllermanager
User

Auswirkung

Es sollte darauf geachtet werden, den Zugriff auf Geheimnisse für Systemkomponenten, die diesen für ihren Betrieb benötigen, nicht zu entfernen.

Prüfung

Überprüfen Sie die Benutzer, die get, list oder watch-Zugriff auf secrets-Objekte in der Kubernetes-API haben.

Wiederherstellung

Wo möglich, beschränken Sie den Zugriff auf geheime Objekte im Cluster, indem Sie die Berechtigungen für get, list und watch entfernen.