2

KontextIAM und RBAC Konflikte auf Google Cloud Container Engine (GKE)

Zugang zu einem Google-Cloud (GKE) Kubernetes Cluster wird durch die Google Cloud IAM-Funktion verwaltet werden;

  1. Ein Administrator lädt einen neuen Benutzer ein (mit seinem Google-Konto/Login) und weist ihnen eine Rolle zu.

    Die folgende Beispielrolle ist "Container Engine Viewer", mit der der Benutzer auf den kubernetes-Cluster zugreifen und alle "Ansichts" -Operationen ausführen kann.

  2. Der Benutzer kann die gcloud auth login auf ihrem lokalen Rechner von gcloud container clusters get-credentials gefolgt verwenden, um Google IAM zu authentifizieren und hat das gcloud Werkzeug sich Datei, bereit, eine Kubernetes Config schreibt die Cluster zu verwenden.

  3. Benutzer können dann kubectl verwenden, um auf den Cluster zuzugreifen. Im obigen Beispiel liest die Arbeit ... schreibt/ändert nicht; alles gut!

Das Problem

Die IAM-Rollen für eine GKE Kubernetes Cluster sind sehr einfach, "Admin, Lesen/Schreiben, Lesen".

Für feinere Kontrolle über den Kubernetes Cluster, Kubernetes RBAC sollte innerhalb den Cluster verwendet werden, so dass mir einen Benutzer zu einem einzigen Namensraum, einzelnen API-Endpunkt, einzelne Aktion beschränken usw.

Ohne Angabe einer IAM-Rolle für den Benutzer; Der Benutzer hat keine Möglichkeit, sich beim Cluster zu authentifizieren (RBAC ist Autorisierung, keine Authentifizierung).

Noch die Niedrigste Erlaubnis IAM Rolle, die ich einstellen kann, ist "Container Engine Viewer", also unabhängig von den Einschränkungen, die ich mit Kubernetes RBAC implementieren, haben alle meine Benutzer noch vollen Lesezugriff.

Frage

Hat jemand eine Möglichkeit, alle Berechtigungen in GKE, um sicherzustellen, gefunden von RBAC kommen, im Grunde die Berechtigungen von IAM zunichte macht?

Antwort

1

Seltsam, wie das Schreiben des Problems Sie zu einer Antwort eher huh?

Es gibt eine neue "Alpha" -Funktion in Google Clouds IAM, die beim letzten Mal nicht da war, als ich versuchte, dieses Problem anzugehen;

Unter IAM> Rollen können Sie jetzt benutzerdefinierte IAM-Rollen mit einer eigenen Teilmenge von Berechtigungen erstellen.

Ich habe eine minimale Rolle erstellt, die gcloud container clusters get-credentials funktioniert, aber nichts anderes, so dass die Berechtigungen innerhalb des Kubernetes-Clusters vollständig von RBAC verwaltet werden können.

Erstprüfung sieht gut aus.

IAM Role Screenshots (mit den erforderlichen Berechtigungen) unten.

Minimal IAM role with GKE cluster access

New IAM roles alpha functionality

Verwandte Themen