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.
![]() |
HinweisStandardmäß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:
- Gehen Sie zur Kubernetes Engine-Website.
- 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:
- Gehen Sie zur Kubernetes Engine-Website.
- Klicken Sie auf CREATE CLUSTER und wählen Sie KONFIGURIEREN für den Standardmodus-Cluster.
- Konfigurieren Sie den Cluster wie erforderlich und klicken Sie dann im Navigationsbereich unter CLUSTER auf Networking.
- Unter IPv4-Netzwerkzugriff klicken Sie auf die Option "Privates Cluster".
- Deaktivieren Sie das Kontrollkästchen für die Zugriffskontrolle über die externe IP-Adresse.
- Geben Sie im Textfeld für den IP-Bereich der Steuerungsebene einen IP-Bereich für die Steuerungsebene an.
- 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>
.