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;
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.
Der Benutzer kann die
gcloud auth login
auf ihrem lokalen Rechner vongcloud container clusters get-credentials
gefolgt verwenden, um Google IAM zu authentifizieren und hat dasgcloud
Werkzeug sich Datei, bereit, eine Kubernetes Config schreibt die Cluster zu verwenden.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?