Ansichten:
Profilanwendbarkeit: Stufe 1
Kubernetes-Rollen und ClusterRoles bieten Zugriff auf Ressourcen basierend auf Objektgruppen und Aktionen, die auf diese Objekte ausgeführt werden können. Es ist möglich, eine dieser Optionen auf das Platzhalterzeichen "*" zu setzen, das alle Elemente abdeckt.
Die Verwendung von Platzhaltern ist aus Sicherheitsperspektive nicht optimal, da sie möglicherweise unbeabsichtigten Zugriff ermöglichen kann, wenn neue Ressourcen entweder als CRDs oder in späteren Versionen des Produkts zur Kubernetes-API hinzugefügt werden.
Das Prinzip der minimalen Rechte empfiehlt, dass Benutzern nur der für ihre Rolle erforderliche Zugriff gewährt wird und nicht mehr. Die Verwendung von Platzhalter-Rechten gewährt wahrscheinlich übermäßige Rechte auf die Kubernetes-API.

Prüfung

Rufen Sie die Rollen ab, die in den einzelnen Namespaces im Cluster definiert sind, und überprüfen Sie sie auf Platzhalter.
Hier ist ein null-sicherer, spaltenformatierter Befehl, der nur Rollen und Clusterrollen anzeigt, die ein Platzhalterzeichen (*) irgendwo in Verben, Ressourcen oder API-Gruppen verwenden – und Ihnen mitteilt, welches Feld bzw. welche Felder das Platzhalterzeichen verwenden:
kubectl get clusterrole,role -A -o json | jq -r ' def has_star(a): (a // []) | any(. == "*");

.items[] | . as $r |
( any($r.rules[]?; has_star(.verbs)) ) as $wv |
( any($r.rules[]?; has_star(.resources)) ) as $wr |
( any($r.rules[]?; has_star(.apiGroups)) ) as $wg |
select($wv or $wr or $wg) |
[ $r.kind, $r.metadata.name,
  ($r.metadata.namespace // "cluster-wide"),
  ([ if $wv then "verbs" else empty end,
     if $wr then "resources" else empty end,
     if $wg then "apiGroups" else empty end
  ] | join(","))
] | @tsv
' | awk -F'\t' '{printf "%-15s %-40s %-20s %-20s\n", $1, $2, $3, $4}'
Beispielausgabe vom Befehl:
KIND                    NAME                                         NAMESPACE
WILDCARD_IN
--------------- ---------------------------------------- --------------------
--------------------
ClusterRole                  cluster-admin                                   cluster-wide
verbs,resources,apiGroups
ClusterRole                  external-metrics-reader                         cluster-wide
resources
ClusterRole                  kubelet-api-admin                               cluster-wide
verbs
ClusterRole                  system:cloud-controller-manager                 cluster-wide
resources,apiGroups
ClusterRole                  system:controller:disruption-controller         cluster-wide
apiGroups
ClusterRole                  system:controller:generic-garbage-collector     cluster-wide
resources,apiGroups
ClusterRole                  system:controller:horizontal-pod-autoscaler     cluster-wide
resources,apiGroups
ClusterRole                  system:controller:namespace-controller          cluster-wide
resources,apiGroups
ClusterRole                  system:controller:resourcequota-controller      cluster-wide
resources,apiGroups
ClusterRole                  system:gcp-controller-manager                   cluster-wide
verbs
ClusterRole                  system:gke-common-webhooks                      cluster-wide
verbs,resources,apiGroups
ClusterRole                  system:gke-hpa-actor                            cluster-wide
resources,apiGroups
ClusterRole                  system:glbc-status                              cluster-wide
verbs
ClusterRole                  system:kube-controller-manager                  cluster-wide
resources,apiGroups
ClusterRole                  system:kubelet-api-admin                        cluster-wide
verbs
ClusterRole                  system:kubestore-collector                      cluster-wide
verbs,resources,apiGroups
ClusterRole                  system:managed-certificate-controller           cluster-wide
verbs
ClusterRole                  system:metrics-server-nanny                     cluster-wide
verbs
Role                         gke-spiffe-leaderelection                       kube-system
verbs

Wiederherstellung

Wo möglich, ersetzen Sie die Verwendung von Platzhaltern in Clusterrollen und Rollen durch spezifische Objekte oder Aktionen.