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.
HinweisStandardmäß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.
