Ansichten:
Profilanwendbarkeit: Stufe 2
Deaktiviert den Zugriff auf die Kubernetes-API von außerhalb des Knotennetzwerks, wenn er nicht erforderlich ist.
In einem privaten Cluster hat der Masterknoten zwei Endpunkte, einen privaten und einen öffentlichen Endpunkt. Der private Endpunkt ist die interne IP-Adresse des Masters, hinter einem internen Lastenausgleich im VPC-Netzwerk des Masters. Knoten kommunizieren mit dem Master über den privaten Endpunkt. Der öffentliche Endpunkt ermöglicht den Zugriff auf die Kubernetes-API von außerhalb des VPC-Netzwerks des Masters.
Obwohl die Kubernetes-API ein autorisiertes Token benötigt, um sensible Aktionen auszuführen, könnte eine Sicherheitslücke möglicherweise den Kubernetes öffentlich mit uneingeschränktem Zugriff exponieren. Zusätzlich könnte ein Angreifer in der Lage sein, den aktuellen Cluster und die Kubernetes-API-Version zu identifizieren und festzustellen, ob sie anfällig für einen Angriff ist. Sofern nicht erforderlich, hilft das Deaktivieren des öffentlichen Endpunkts, solche Bedrohungen zu verhindern, und erfordert, dass der Angreifer sich im VPC-Netzwerk des Masters befindet, um einen Angriff auf die Kubernetes-API durchzuführen.
Hinweis
Hinweis
Standardmäßig ist der private Endpunkt deaktiviert.

Auswirkung

Um einen privaten Endpunkt zu aktivieren, muss der Cluster auch mit privaten Knoten, einem privaten Master-IP-Bereich und aktivierter IP-Aliasing konfiguriert sein.
Wenn das Private-Endpoint-Flag --enable-private-endpoint an die gcloud-CLI übergeben wird oder die externe IP-Adresse während der Clustererstellung in der Google Cloud Console undefiniert ist, wird jeglicher Zugriff von einer öffentlichen IP-Adresse untersagt.

Prüfung

Verwendung der Google Cloud Console:
  1. Gehen Sie zur Kubernetes Engine-Website.
  2. Wählen Sie den erforderlichen Cluster aus, und stellen Sie im Detailbereich sicher, dass der Endpunkt keine öffentliche IP-Adresse hat.
Verwendung der Befehlszeile:
Führen Sie diesen Befehl aus:
gcloud container clusters describe <cluster_name> --format json | 
jq '.privateClusterConfig.enablePrivateEndpoint'
Die Ausgabe des obigen Befehls gibt true zurück, wenn ein privater Endpunkt aktiviert ist und der öffentliche Zugriff deaktiviert ist.
Für eine zusätzliche Überprüfung kann der Endpunkt-Parameter mit dem folgenden Befehl abgefragt werden:
gcloud container clusters describe <cluster_name> --format json | jq '.endpoint'
Die Ausgabe des obigen Befehls gibt eine private IP-Adresse zurück, wenn der private Endpunkt aktiviert und der öffentliche Zugriff deaktiviert ist.

Wiederherstellung

Sobald ein Cluster erstellt wird, ohne dass nur der private Endpunkt aktiviert ist, kann es nicht behoben werden. Stattdessen muss das Cluster neu erstellt werden.
Verwendung der Google Cloud Console:
  1. Gehen Sie zur Kubernetes Engine-Website.
  2. Klicken Sie auf CREATE CLUSTER und wählen Sie KONFIGURIEREN für den Standardmodus-Cluster.
  3. Konfigurieren Sie den Cluster wie erforderlich und klicken Sie dann im Navigationsbereich unter CLUSTER auf Networking.
  4. Unter IPv4-Netzwerkzugriff klicken Sie auf die Option "Privates Cluster".
  5. Deaktivieren Sie das Kontrollkästchen für die Zugriffskontrolle über die externe IP-Adresse.
  6. Geben Sie im Textfeld für den IP-Bereich der Steuerungsebene einen IP-Bereich für die Steuerungsebene an.
  7. Konfigurieren Sie die anderen Einstellungen nach Bedarf und klicken Sie auf CREATE.
Verwendung der Befehlszeile:
Erstellen Sie einen Cluster mit einem aktivierten privaten Endpunkt und deaktiviertem öffentlichem Zugriff, indem Sie das Flag --enable-private-endpoint im Befehl zum Erstellen des Clusters einschließen:
gcloud container clusters create <cluster_name> --enable-private-endpoint
Das Setzen dieser Flagge erfordert auch das Setzen von --enable-private-nodes, --enable-ip-alias und --master-ipv4-cidr=<master_cidr_range>.