Kubernetes Runasuser

Kubernetes Runasuser
Runasuser definiert die Benutzer -ID mit spezifischen Sicherheitsberechtigten, die sich nicht um die Administratorrechte befassen. In diesem Artikel wird definiert, was ein Kubernetes Runasuser ist und wie er in der Kubernetes -Umgebung verwendet werden kann, um den Sicherheitskontext für einen Container oder einen Pod festzulegen. Hier werden wir demonstrieren.

Was ist Runasuser in der Kubernetes -Umgebung??

Der Runasuser ist eines der in der Konfigurationsdatei angegebenen Sicherheitskontextfelder. Der Wert des Runasuser -Feldes bestimmt, dass alle Prozesse im Container mit der angegebenen Runasuser -ID ausgeführt werden.

Der Sicherheitskontext wird verwendet. Die Haupteinstellungen für Sicherheitskontext umfassen Benutzer -ID, primäre Gruppen -ID, ergänzende Gruppen -ID, SecComp, Apparmor, Linex -Funktionen usw. Die Sicherheitskontexteinstellung ist nicht auf diese Dinge beschränkt, es gibt viel mehr Einstellungen enthalten.

In diesem Artikel möchten wir jedoch anhand des Verwendungs ​​-ID des Benutzers anstelle des Administrators durch die Verwendung der ID dieses Benutzers anstelle des Administrators ausgeführt werden. Lassen Sie uns zum nächsten Abschnitt wechseln, um zu überprüfen, wie Sie die Sicherheitskontexteinstellung für einen Container oder einen Pod definieren.

Voraussetzungen

Stellen Sie vor Beginn sicher, dass Ihr System den Voraussetzungen erfüllt, damit Sie keine Fehler haben, während Sie Kubernetes als allgemeiner Benutzer verwenden. Die Liste der Voraussetzungen ist unten angegeben:

  • Ubuntu 20.04 oder eine andere neueste Version
  • Minikube Cluster, um mit Knoten zu interagieren
  • KubeCLT -Befehlszeilenwerkzeug zur Interaktion mit dem Cluster in der Kubernetes -Umgebung

Wenn Sie alle diese Tools in Ihrem System installieren lassen, können Sie die Kubernetes -Umgebung als allgemeiner Benutzer verwenden.

Geben Sie den Runasuser -Sicherheitskontext für die Kubernetes -Umgebung an

Im Allgemeinen wurden in der Kubernetes -Umgebung mit Administratorrechten alle ausgeführten Befehle oder Arbeiten durchgeführt. Wenn Sie die Sicherheitsberechtigungen des Benutzers ändern müssen, können Sie die Benutzerrechte ändern, indem Sie einem bestimmten Benutzer ermöglichen, Zugriff auf das System zu haben. Dies kann durch Befolgen des unten angegebenen Vorgangs erfolgen.

Zunächst müssen wir sicherstellen, dass der Minikube -Cluster erfolgreich in Betrieb ist, und dafür werden wir den folgenden Befehl verwenden:

> Minikube Start

Dadurch wird der Minikube -Cluster gestartet, wenn er nicht zuvor gestartet wurde oder sicherstellt, dass sich der Minikube im aktiven Modus befindet.

Nachdem unser Minikube -Cluster im Betrieb ist, sind wir bereit, die Sicherheitsbeschränkungen für unser System zu ändern. Um die Sicherheitseinstellungen für einen POD im Cluster anzugeben. Verwenden Sie den Befehl "Nano", um eine neue YAML -Konfigurationsdatei zu erstellen.

> Nano SC.Yaml

Dieser Befehl erstellt eine YAML -Datei namens SC.Yaml. Jetzt können Sie die Definitionsdefinition in diese Konfigurationsdatei einfügen. Die Definitionsdefinition wird unten für Ihre Referenz angegeben:

Speichern Sie nun die Bereitstellungsdefinition im SC.YAML -Konfigurationsdatei, damit wir die Bereitstellung auf den Pods anwenden können. Beachten Sie, dass der Wert des Runasuser 1000 beträgt, was bedeutet, dass die Benutzer -ID 1000 ist, mit der wir uns auf den spezifischen Benutzer beziehen können. Der Runasuser gibt an, dass alle Prozesse für die Container im Pod mit dem angegebenen Runasuser -Wert ausgeführt werden. Die Rinasgroup gibt die primäre Gruppen -ID für den Prozess im POD.

Lassen Sie uns nun die Konfigurationsdefinition auf die Bereitstellung anwenden, indem wir den unten angegebenen Befehl verwenden:

> kubectl anwenden -f sc.Yaml

Dies hat die Schoten aus der Konfigurationsdefinition erstellt. Überprüfen Sie den aktuellen Status der POD im Cluster mit dem folgenden Befehl:

> Kubectl Get Pod Security-Context-Demo

Der Status des POD ist "ausgeführt", was bedeutet, dass wir die Shell in diesem Behälter bereitstellen können. Verwenden Sie den folgenden Befehl, um die Shell in den Container des laufenden Sicherheitskontext-Demo-Pod zu bringen:

> kubectl exec -it Security -Context -Demo - -Sh

Der nächste Schritt besteht darin, alle ausgeführten Prozesse aufzulisten:

> ps

Da wir den Runasuser als 1000 definiert haben, werden alle Prozesse als 1000 ausgeführt. Dies bedeutet, dass wir dem Benutzer 1000 Berechtigungen zur Verfügung gestellt haben, um Zugriff auf das System zu erhalten. Die Sicherheitspräferenzen wurden für den Benutzer 1000 geändert. Jetzt werden alle Prozesse mit der Benutzer -ID 1000 ausgeführt. Lassen Sie uns direkt zu einem anderen navigieren, um den Sicherheitskontext von Benutzer 1000 zu überprüfen:

> CD /Daten

Dadurch navigieren wir uns zum /data -Verzeichnis, in dem wir alles im Verzeichnis mit dem folgenden Befehl auflisten können:

> ls -l

In der obigen Ausgabe sehen Sie, dass das /data -Verzeichnis die ergänzende Benutzer -ID 2000 verwendet. Lassen Sie uns nun zu einem anderen Verzeichnis navigieren, um zu überprüfen, welche Benutzer -ID es verwendet:

> CD -Demo

Dies führt uns zum /Demo -Verzeichnis, in dem wir alles aus dem Verzeichnis auflisten können:

> ls -l

Lassen Sie uns sehen, welche IDs im Verzeichnis /Daten /Demo verwendet wurden:

> id

Die Ausgabe zeigt, dass die Dateien im Verzeichnis /data /demo die Benutzer -ID 1000, die primäre Gruppen -ID 3000 und die ergänzende Gruppen -ID 2000 verwenden.

Um die Shell zu schließen, können Sie den Befehl exit verwenden und sofort aus der Shell herausholen:

> existieren

Denken Sie daran, dass wir in verschiedene Verzeichnisse navigiert haben, um die Runasuser -Berechtigungen zu überprüfen. Daher müssen wir ordnungsgemäß aus der Shell beenden, um die Sicherheitsberechtigungen vom Benutzer zurückzubekommen.

Abschluss

In diesem Artikel haben wir speziell etwas über die Runasuser -Sicherheitsrechte erfahren. Wir haben gelernt, dass der Prozess in der Kubernetes -Umgebung ohne Administratorrechte ausgeführt werden kann. Der Sicherheitskontext kann für andere Benutzer definiert werden und sie können sicheren Zugriff auf das System haben und alle Prozesse nach Bedarf ausführen. Wenn Sie den Sicherheitskontext für einen bestimmten Benutzer aktivieren, indem Sie ihm die Runasuser -ID zuweisen, werden alle Prozesse in den Containern des Pod mit dieser ID ausgeführt.