In DevOps und Sicherheit Letztes Updateated:
Teilen:
Cloudways bietet verwaltetes Cloud-Hosting für Unternehmen jeder Größe zum Hosten einer Website oder komplexer Webanwendungen.

Kubernetes RBAC ist eine effiziente rollenbasierte Autorisierungsmethode, die verwendet wird, um granularen Zugriff auf Ressourcen in einem Kubernetes-Cluster bereitzustellen.

Bei unsachgemäßer Anwendung kann es jedoch leicht zu einer Compliance-Katastrophe kommen. Aus diesem Grund benötigen wir RBAC-Tools zur Prüfung und Lokalisierungate riskante Berechtigungen in Kubernetes.  

In diesem Artikel werden wir erörtern, was Kubernetes RBAC ist, warum es wichtig ist, riskante Berechtigungen zu prüfen, und die Tools entdecken, die uns am besten bei der Prüfung riskanter Berechtigungen helfen können!

Was ist RBAC?

Rollenbasierte Zugriffskontrolle (RBAC) ist eine Sicherheitdienst Mechanismus, bei dem jede Zugriffsberechtigung auf Rollen basiert, die einem Benutzer zugewiesen sind. Mit diesem System ist es also möglich, den Zugriff auf die Ressourcen eines Kubernetes-Clusters (Namespaces, Pods, Jobs) auf Anwendungen oder Benutzer zu beschränken.

In Kubernetes, können RBAC-Richtlinien verwendet werden, um die Zugriffsrechte eines Systembenutzers (Benutzer oder Gruppe) sowie die von Dienstkonten (Dienstkonto) zu verwalten.

Es gibt andere Möglichkeiten, Benutzer in Kubernetes zu autorisieren, wie z. B. ABAC (attributbasierte Zugriffskontrolle), über Webhook oder Knotenautorisierung, aber der am weitesten verbreitete und native Autorisierungsmechanismus, der in der stabilen Version verfügbar ist, ist RBAC.

Praxisally Die gesamte Interaktion mit den Ressourcen erfolgt über seinen API-Server, was bedeutet, dass sich letztendlich alles darauf beschränkt, HTTP-Anfragen an den besagten Server zu stellen (ein wesentlicher Bestandteil des/der Masterknoten/s oder des Control Panels). 

Kubernetes hat vier RBAC –related Objekte, die kombiniert werden können, um Zugriffsberechtigungen für Clusterressourcen festzulegen. Dies sind Role, ClusterRole, RoleBinding und ClusterRoleBinding. Um mit diesen Objekten zu arbeiten, muss wie mit allen Kubernetes-Objekten die Kubernetes-API verwendet werden.

Rollen in Kubernetes

In Kubernetes, gibt es zwei Arten von Rollen namens Role und ClusterRole. Der größte Unterschied zwischen den beiden besteht darin, dass die Rolle zu einem konkreten Namespace gehört, während die ClusterRole global für den Cluster ist. Im Fall von ClusterRole muss der Name also eindeutig sein, da er zum Cluster gehört. Im Fall einer Rolle können zwei verschiedene Namespaces eine Rolle mit demselben Namen haben.

Ein weiterer erwähnenswerter Unterschied besteht darin, dass Role den Zugriff auf Ressourcen im selben Namespace ermöglicht, während ClusterRole zusätzlich zum Zugriff auf Ressourcen in jedem Namespace auch Zugriff auf Ressourcen im selben Namespace wie Knoten gewähren kann unter anderen.

Nachdem wir nun die Arten von Rollen kennen, müssen wir als Nächstes wissen, wem wir diese Rollen zuweisen können. In diesem Fall haben wir Benutzerkonten, Dienstkonten und Gruppen.

Benutzerkonten sind Konten, die einem bestimmten Benutzer zugewiesen sind, während Dienstkonten von verwendet werden processes. Stellen Sie sich zum Beispiel vor, dass unsere Anwendung programmatisch sein mussally Um auf Ressourcen aus dem Cluster zuzugreifen, würden wir hierfür ein Dienstkonto verwenden.

Finallybenötigen wir den „Klebstoff“, der eine Rolle an ein Konto (Benutzer oder Dienst) oder eine Gruppe bindet. Dafür gibt es in Kubernetes zwei Ressourcen: RoleBinding und ClusterRoleBinding. RoleBinding kann auf eine Rolle verweisen, die sich im selben Namespace befindet, während ClusterRoleBinding auf jede Rolle in jedem Namespace verweisen und globale Berechtigungen zuweisen kannally.

Als Hinweis erlauben die Berechtigungen nur den Zugriff auf Ressourcen, da „standardmäßig alles verweigert“ wird und es möglich ist, demselben Benutzer mehrere Rollen zuzuweisen

Die einzige Voraussetzung für die Verwendung von RBAC ist, dass es auf unserem Cluster mit dem „–authorization-mode=RBAC" Möglichkeit. Wir können dies mit dem Befehl überprüfen:

kubectl api-versions

Was sind riskante RBAC-Berechtigungen und wie können sie behoben werden?

Any permission that allows or can allow unauthorized access to the pod resources is considered risky permission. For example, if a user has edit permission they can edit their own Role and can access resources that they are not otherwise allowed to access. This can result in a compliance issue.

Wenn alte Berechtigungen deaktiviert bleiben, können einige Benutzer auf Ressourcen zugreifen, die sie nicht mehr benötigen.

Die Herstellung ist schwierig und zeitaufwändigally Finden Sie solch eine riskante Erlaubnis, wenn Sie eine große Anzahl von Rollen haben. Um das zu machen process Es gibt eine Reihe von RBAC-Berechtigungsprüfungstools, mit denen Sie Ihren gesamten Cluster nach Standort durchsuchen könnenate irgendwelche riskanten Berechtigungen. Es ist auch wichtig zu verstehen, dass die Wirksamkeit von RBAC von einer aktuellen Aktualität abhängtate RBAC-Richtlinie, die wiederum eine regelmäßige Berechtigungsprüfung erfordert.

Im Folgenden sind einige der besten RBAC-Tools zum Prüfen von Berechtigungen basierend auf verschiedenen Sprachen und Benutzeroberflächen aufgeführt.

KubiScan

KubiScan ist ein Python-basiertes RBAC-Tool zum Scannen riskanter Berechtigungen in einem Kubernetes-Cluster. Das Tool muss innerhalb des Master-Knotens ausgeführt werden und kann dann direkt vom Terminal ausgeführt werden, um eine Liste riskanter Berechtigungen zu erhalten. Kubiscan kann verwendet werden, um riskante Rollen, Clusterrollen, Rollenbindungen, Clusterbindungen, Subjekte, Pods und sogar Container zu finden.

Krane

Krane von Appvia ist ein Ruby-basiertes statisches Analyse- und Visualisierungstool für Kubernetes RBAC. Es kann sowohl lokal als auch lokal betrieben werdenally als CLI oder in einer CI/CD-Pipeline. Darüber hinaus kann es auch als eigenständiger Dienst innerhalb eines Kubernetes-Containers arbeiten. Krane bietet die Möglichkeit, RBAC-Berechtigungen durch facettierte Baum- und Diagrammnetzwerkansichten zu analysieren. Es gibt auch Warnungen vor riskanten Berechtigungen aus Slack Integration. 

RBAC-Tool

RBAC-Tool von InsightCloudSec ist ein eigenständiges Tool zur Berechtigungsprüfung, das mit Go erstellt wurde. Sie können damit nicht nur riskante RBAC-Berechtigungen scannen und hervorheben, sondern auch Generierungen vornehmenate RBAC-Richtlinie von der Berechtigungsprüfung über die Auditgen-Funktion. Das RBAC-Tool bietet auch die Funktion der RBAC-Visualisierung.

Schönwind

Fairwinds-Einblick ist ein eigenständiges Tool, das eine Reihe von Kubernetes-Sicherheits- und Compliance-Funktionen bereitstellt. Die Funktion zur Richtliniendurchsetzung ermöglicht es Ihnen, RBAC-Berechtigungen zu prüfen und sie anhand von Standard- und benutzerdefinierten Richtlinien zu scannen. Fairwinds bietet eine On-Demand-Demo an.

Erlaubnis-Manager

Erlaubnis-Manager by Signup ist ein Javascript-basiertes Kubernetes-Berechtigungsverwaltungstool. Es bietet eine einfache und proaktive Möglichkeit, Benutzerberechtigungen innerhalb eines Kubernetes-Clusters zu verwalten. Permission Manager bietet auch eine Enterprise Edition des Tools, mit der Sie grundlegende RBAC-Berechtigungsprüfungen durchführen können.

Fazit

Kubernetes RBAC ist eine effiziente Möglichkeit, den Zugriff auf Ressourcen in einem Kubernetes-Cluster zu verwalten. Wenn es jedoch nicht richtig implementiert wird, kann es zu Sicherheits- und Compliance-Problemen kommen. Dies kann jedoch vermieden werden, indem Berechtigungen durch RBAC-Überwachungstools kontinuierlich überprüft werden.

Dies könnte Sie auch interessieren Best Practices für Kubernetes.

Teilen:
  • Talha Khalid
    Autor
    Ein freiberuflicher Webentwickler und eine Leidenschaftate Schriftsteller. Sie können mir auf Medium folgen: @Talhakhalid101

Danke an unsere Sponsoren

Weitere großartige Lektüre zu DevOps

Treiben Sie Ihr Geschäft an

Einige der Tools und Services, die Ihrem Unternehmen helfen grow.