Autorisierte Netzwerke für den Zugriff auf die Steuerungsebene hinzufügen


Auf dieser Seite wird beschrieben, wie Sie autorisierte Netzwerke verwenden, um die Ursprünge einzuschränken, von denen aus Sie auf die Steuerungsebenen Ihrer Google Kubernetes Engine-Cluster (GKE) zugreifen können. Autorisierte Netzwerke gewähren der Steuerungsebene Zugriff auf eine bestimmte Gruppe vertrauenswürdiger IP-Adressen und bieten Schutz und zusätzliche Sicherheitsvorteile für Ihren GKE-Cluster.

Funktionsweise autorisierter Netzwerke

Autorisierte Netzwerke bieten eine IP-basierte Firewall, die den Zugriff auf die GKE-Steuerungsebene steuert. Der Zugriff auf die Steuerungsebene hängt vom Typ des GKE-Clusters und den Quell-IP-Adressen ab. Mit autorisierten Netzwerken konfigurieren Sie die IP-Adressen, die Zugriff auf den Endpunkt der Steuerungsebene des GKE-Clusters gewähren möchten, als CIDR-Blockliste.

Mit den folgenden Begriffen wird unterschieden, welche IP-basierten Firewallregeln vorhanden sind, je nach Clustertyp:

Unterscheidungen von IP-Adressen:

  • Öffentliche IP-Adressen aller Compute Engine-VMs in Google Cloud: Öffentliche IP-Adressen, die einer beliebigen VM zugewiesen sind, die von einem in Google Cloud gehosteten Kunden verwendet wird. Google Cloud besitzt diese IP-Adressen. Weitere Informationen finden Sie unter Wo finde ich Compute Engine-IP-Bereiche?
  • IP-Adressen der Google Cloud-Plattform: IP-Adressen, die von Google Cloud-Produkten wie Cloud Run oder Cloud Functions verwendet werden. Jeder in Google Cloud gehostete Client kann diese IP-Adressen instanziieren. Google Cloud besitzt diese IP-Adressen.
  • Von Google reservierte IP-Adressen: Öffentliche IP-Adressen für GKE-Clusterverwaltungszwecke. Diese IP-Adressen umfassen von GKE verwaltete Prozesse und andere Produktionsdienste von Google. Google besitzt diese IP-Adressen.
  • Öffentliche Internet-IP-Adressen: Externe IP-Adressen außerhalb von RFC 1918 und von Google. Weder Google- noch Google Cloud-Produkte haben diese öffentlichen IP-Adressen.
  • IP-Adressbereiche des GKE-Clusters: IP-Adressen, die dem Cluster zugewiesen sind und von GKE für die Knoten, Pods und Services des Clusters verwendet werden.
  • Privat verwendete IP-Adressen: IP-Adressen aus dem VPC-Netzwerk des Clusters. Diese IP-Adressen können Ihre Cluster-IP-Adresse, lokale Netzwerke, die RFC 1918-Bereiche oder die privat verwendeten öffentlichen IP-Adressen (PUPI) enthalten, die auch Nicht-RFC 1918-Bereiche umfassen.

Clustertypen:

  • Öffentliche Legacy-Cluster: Öffentliche Cluster, die in Legacy-Netzwerken oder VPC-Netzwerken mit öffentlichen IP-Adressen ausgeführt werden, die Knoten zugewiesen sind wurden nicht zur Architektur von Private Service Connect migriert.
  • Private Legacy-Cluster: Cluster, die auf VPC-Netzwerk-Peering basieren, um die Verbindung der Steuerungsebene von Knoten mit privaten IP-Adressen zu ermöglichen.
  • PSC-basierter Cluster, der als öffentlich oder privat erstellt wurde: Cluster, die die Private Service Connect-Architektur für die Kommunikation zwischen der Steuerungsebene und den Knoten des GKE-Clusters verwenden. Informationen dazu, ob Ihr Cluster Private Service Connect verwendet, finden Sie auf der GKE-Steuerungsebene.

Zugriff auf Endpunkte der Steuerungsebene

Die folgende Tabelle zeigt den standardmäßigen Status des autorisierten Netzwerks beim Erstellen des Clusters. Je nach Typ des GKE-Clusters und des Endpunkts der Steuerungsebene können Sie Folgendes ermitteln:

  • Die voreingestellten IP-Adressen, die immer auf die GKE-Steuerungsebene zugreifen können.
  • Die IP-Adressen, die Sie für den Zugriff auf die Steuerungsebene des Clusters konfigurieren können, wenn autorisierte Netzwerke aktiviert sind.

Die konfigurierbaren IP-Adressen können auf den Steuerungsebenencluster zugreifen, wenn Sie sie auf die Zulassungsliste setzen und autorisierte Netzwerke aktivieren.

Typ des GKE-Clusters und des Endpunkts der Steuerungsebene Standardstatus des autorisierten Netzwerks der Steuerungsebene Voreingestellte IP-Adressen, die immer auf die GKE-Steuerungsebene zugreifen können1 Konfigurierbare IP-Adresse, die mit aktivierten autorisierten Netzwerken auf die GKE-Steuerungsebene zugreifen kann2
Öffentliche Legacy-Cluster oder private Cluster, die auf VPC-Netzwerk-Peering basieren
Öffentliche Legacy-Cluster mit öffentlichem Endpunkt Deaktiviert
  • Öffentliche IP-Adressen aller Compute Engine-VMs in Google Cloud
  • IP-Adressen der Google Cloud Platform
  • Von Google reservierte IP-Adressen
  • IP-Adressbereiche des GKE-Clusters
  • Öffentliche IP-Adressen des Internets, die auf den öffentlichen IP-Endpunkt des Clusters zugreifen dürfen, werden zugelassen.
Private Legacy-Cluster mit öffentlichen und privaten Endpunkten Aktiviert
  • Von Google reservierte IP-Adressen
  • IP-Adressbereiche des GKE-Clusters (Knoten, Pods und Dienste haben nur private IP-Adressen).
  • Privat genutzte IP-Adressen aus dem Clusternetzwerk, die auf den privaten Endpunkt des Clusters zugreifen sollen.
  • Öffentliche IP-Adressen auf der Zulassungsliste können auf den öffentlichen Endpunkt des Clusters zugreifen, wenn das Flag --enable-private-endpoint deaktiviert ist.
Cluster, die Private Service Connect verwenden
Als öffentlich erstellte Cluster Deaktiviert
  • Alle privaten IP-Adressen aus dem Netzwerk des Clusters (ausgenommen erkannte VPC-Netzwerk-Peering-Routen).

Wenn das Flag –enable-google-cloud festgelegt ist (Standardeinstellung), können die folgenden IP-Adressen auf die GKE-Steuerungsebene zugreifen:

  • Öffentliche IP-Adressen aller Compute Engine-VMs in Google Cloud
  • IP-Adressen der Google Cloud Platform
  • Von Google reservierte IP-Adressen
  • Öffentliche IP-Adressen Ihrer GKE-Clusterknoten.

Wenn das Flag –no-enable-google-cloud festgelegt ist, können die folgenden IP-Adressen auf die GKE-Steuerungsebene zugreifen:

  • Von Google reservierte IP-Adressen
  • IP-Adressbereiche des GKE-Clusters (Knoten, Pods und Dienste haben nur private IP-Adressen).

Weitere Informationen finden Sie unter Clusterisolation ändern.

  • Öffentliche IP-Adressen des Internets auf den öffentlichen Endpunkt des Clusters zugreifen
Als privat erstellte Cluster Aktiviert

IP-Adressbereiche des GKE-Clusters wie Knoten, Pods und Services haben nur private IP-Adressen.

Wenn der Cluster erstellt wird, ist die –enable-google-cloud standardmäßig deaktiviert. Wenn das Flag –enable-google-cloud festgelegt ist, können die folgenden IP-Adressen auf die GKE-Steuerungsebene zugreifen:

  • Öffentliche IP-Adressen aller Compute Engine-VMs in Google Cloud
  • IP-Adressen der Google Cloud Platform
  • Von Google reservierte IP-Adressen
  • Öffentliche IP-Adressen Ihrer GKE-Clusterknoten.

Wenn das Flag –no-enable-google-cloud festgelegt ist, können die folgenden IP-Adressen auf die GKE-Steuerungsebene zugreifen:

  • Von Google reservierte IP-Adressen
  • IP-Adressbereiche des GKE-Clusters (Knoten, Pods und Dienste haben nur private IP-Adressen).

Weitere Informationen finden Sie unter Clusterisolation ändern.

  • Öffentliche IP-Adressen auf der Zulassungsliste können auf den öffentlichen Endpunkt des Clusters zugreifen, wenn das Flag --enable-private-endpoint deaktiviert ist.
  • Privat genutzte IP-Adressen aus dem Clusternetzwerk, die auf den privaten Endpunkt des Clusters zugreifen sollen.
  1. Die IP-Adressen, die immer auf die GKE-Steuerungsebene zugreifen können, unabhängig davon, ob autorisierte Netzwerke aktiviert oder deaktiviert sind

  2. Sie müssen diese konfigurierbaren IP-Adressen für den Zugriff auf die Clustersteuerungsebene auf die Zulassungsliste setzen

Beschränkungen

  • Wenn Sie ein Subnetz erweitern, das von einem Cluster mit autorisierten Netzwerken verwendet wird, müssen Sie die autorisierte Netzwerkkonfiguration so aktualisieren, dass es den erweiterten IP-Adressbereich enthält.
  • Die Anzahl der autorisierten IP-Adressbereiche, die Sie für öffentliche und private IP-Adressen angeben können, hängt vom Clustertyp ab:

    • Öffentlicher Cluster: 50 IP-Adressbereiche
    • Privater Cluster: 100 IP-Adressbereiche
    • PSC-basierte Cluster: 100 IP-Adressbereiche

Hinweis

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit gcloud components update ab.

Cluster mit autorisierten Netzwerken erstellen

Einen Cluster mit einem oder mehreren autorisierten Netzwerken können Sie über das Google Cloud CLI, die Google Cloud Console oder die GKE API erstellen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name Ihres Clusters.
  • CIDR1,CIDR2,... ist eine durch Kommas getrennte Liste der CIDR-Werte für die autorisierten Netzwerke. Beispiel: 8.8.8.8/32,8.8.8.0/24.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie auf Erstellen.

  3. Klicken Sie im Abschnitt Autopilot oder Standard auf Konfigurieren.

  4. Konfigurieren Sie den Cluster nach Bedarf.

  5. Klicken Sie im Navigationsmenü auf Netzwerk.

  6. Klicken Sie unter Erweiterte Netzwerkoptionen das Kästchen Autorisierte Steuerungsebenennetzwerke aktivieren an.

  7. Klicken Sie auf Autorisiertes Netzwerk hinzufügen.

  8. Geben Sie einen Namen für das Netzwerk ein.

  9. Geben Sie unter Netzwerk einen CIDR-Bereich ein, dem Sie Zugriff auf die Cluster-Steuerungsebene gewähren möchten.

  10. Klicken Sie auf Fertig. Fügen Sie bei Bedarf weitere autorisierte Netzwerke hinzu.

  11. Klicken Sie auf Erstellen.

API

Geben Sie in Ihrer Cluster-create-Anfrage das Objekt masterAuthorizedNetworksConfig an:

"masterAuthorizedNetworksConfig": {
  "enabled": true,
  "cidrBlocks": [
    {
      "displayName": string,
      "cidrBlock": string
    }
  ]
}

Weitere Informationen finden Sie unter MasterAuthorizedNetworksConfig.

Sie können einen privaten Cluster mit einem oder mehreren autorisierten Netzwerken konfigurieren. Weitere Informationen finden Sie unter Private Cluster.

Cluster mit eingeschränktem Zugriff auf die Steuerungsebene erstellen

GKE weist der Steuerungsebene in öffentlichen Clustern eine öffentliche IP-Adresse (externen Endpunkt) zu. Bei öffentlichen Clustern, die Private Service Connect verwenden, um Knoten und Steuerebene privat zu verbinden, können Sie eine weitere Clusterisolierung festlegen. Wenn Sie prüfen wollen, ob Ihr Cluster Private Service Connect verwendet, finden Sie unter Öffentliche Cluster mit Private Service Connect weitere Informationen.

Sie können einen Cluster erstellen und GKE anweisen, den Zugriff von den folgenden Ursprüngen auf die Steuerungsebene zu blockieren:

Mit der Google Cloud CLI oder der Google Cloud Console können Sie einen Cluster erstellen und den Zugriff auf die Steuerungsebene definieren.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters create-auto CLUSTER_NAME
    --no-enable-google-cloud-access

Ersetzen Sie dabei CLUSTER_NAME durch den Namen des GKE-Clusters.

Mit diesem Befehl verhindert das Flag no-enable-google-cloud-access, dass die Steuerungsebene über IP-Adressen zugänglich ist, die Google Cloud gehören.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie auf Erstellen.

  3. Klicken Sie im Abschnitt Autopilot oder Standard auf Konfigurieren.

  4. Konfigurieren Sie den Cluster nach Bedarf.

  5. Klicken Sie im Navigationsmenü auf Netzwerk.

  6. Klicken Sie unter Erweiterte Netzwerkoptionen das Kästchen Autorisierte Steuerungsebenennetzwerke aktivieren an.

  7. Entfernen Sie das Häkchen beim Kästchen Zugriff über öffentliche IP-Adressen von Google Cloud zulassen, um zu verhindern, dass die Steuerungsebene über IP-Adressen von Google Cloud zugänglich ist.

  8. Klicken Sie auf Autorisiertes Netzwerk hinzufügen.

  9. Geben Sie einen Namen für das Netzwerk ein.

  10. Geben Sie unter Netzwerk einen CIDR-Bereich ein, dem Sie Zugriff auf die Cluster-Steuerungsebene gewähren möchten.

  11. Klicken Sie auf Fertig. Fügen Sie bei Bedarf weitere autorisierte Netzwerke hinzu.

  12. Klicken Sie auf Erstellen.

Einem vorhandenen Cluster ein autorisiertes Netzwerk hinzuzufügen

Sie können einem vorhandenen Cluster ein autorisiertes Netzwerk über die gcloud CLI oder die Google Cloud Console hinzufügen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,...

Dabei gilt:

  • CLUSTER_NAME ist der Name Ihres vorhandenen Clusters.
  • CIDR1,CIDR2,... ist eine durch Kommas getrennte Liste der CIDR-Werte für die autorisierten Netzwerke. Beispiel: 8.8.8.8/32,8.8.8.0/24.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.

  3. Klicken Sie unter Netzwerk im Feld Autorisierte Steuerungsebenennetzwerke auf Autorisierte Steuerungsebenennetzwerke bearbeiten.

  4. Klicken Sie das Kästchen Autorisierte Steuerungsebenennetzwerke aktivieren an.

  5. Klicken Sie auf Autorisiertes Netzwerk hinzufügen.

  6. Geben Sie einen Namen für das Netzwerk ein.

  7. Geben Sie unter Netzwerk einen CIDR-Bereich ein, dem Sie Zugriff auf die Cluster-Steuerungsebene gewähren möchten.

  8. Klicken Sie auf Fertig. Fügen Sie bei Bedarf weitere autorisierte Netzwerke hinzu.

  9. Klicken Sie auf Änderungen speichern.

API

Geben Sie in Ihrer Cluster-update-Anfrage das Feld desiredMasterAuthorizedNetworksConfig an: Geben Sie im Feld das Objekt MasterAuthorizedNetworksConfig an:

"desiredMasterAuthorizedNetworksConfig": {
    object(MasterAuthorizedNetworksConfig)
  }

Autorisiertes Netzwerk prüfen

Sie können ein autorisiertes Netzwerk in einem vorhandenen Cluster mithilfe der gcloud CLI oder der Google Cloud Console prüfen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters describe CLUSTER_NAME

Die entsprechende Ausgabe sieht etwa so aus:

...
masterAuthorizedNetworksConfig:
  cidrBlocks:
  - cidrBlock: 8.8.8.8/32
  - cidrBlock: 8.8.4.4/32
  enabled: true
...

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.

  3. Unter Netzwerk werden im Feld Autorisierte Netzwerke der Steuerungsebene die zulässigen CIDRs angezeigt.

API

Senden Sie eine get-Anfrage. Suchen Sie im Feld masterAuthorizedNetworksConfig nach CIDR-Blöcken. Beispiel:

"masterAuthorizedNetworksConfig": {
"enabled": true,
 "cidrBlocks": [
  {
    "displayName": "Office",
    "cidrBlock": "192.0.2.0/24"
  }
]
}

Autorisiertes Netzwerk deaktivieren

Sie können autorisierte Netzwerke für einen vorhandenen Cluster über die gcloud CLI oder die Google Cloud Console deaktivieren.

gcloud

Führen Sie diesen Befehl aus:

gcloud container clusters update CLUSTER_NAME \
  --no-enable-master-authorized-networks

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.

  3. Klicken Sie unter Netzwerk im Feld Autorisierte Steuerungsebenennetzwerke auf Autorisierte Steuerungsebenennetzwerke bearbeiten.

  4. Entfernen Sie das Häkchen aus dem Kästchen Autorisierte Steuerungsebenennetzwerke aktivieren.

  5. Klicken Sie auf Änderungen speichern.

Autorisierte Netzwerke entfernen

gcloud

Führen Sie diesen Befehl aus:

gcloud container clusters update CLUSTER_NAME \
    --enable-master-authorized-networks

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.

  3. Klicken Sie unter Netzwerk im Feld Autorisierte Steuerungsebenennetzwerke auf Autorisierte Steuerungsebenennetzwerke bearbeiten.

  4. Klicken Sie auf Löschen.

  5. Klicken Sie auf Änderungen speichern.

Fehlerbehebung

In den folgenden Abschnitten wird erläutert, wie Sie häufige Probleme im Zusammenhang mit autorisierten Netzwerken beheben können.

Zu viele CIDR-Blöcke

gcloud gibt den folgenden Fehler zurück, wenn Sie versuchen, einen Cluster mit mehr als 50 CIDR-Blöcken zu erstellen oder zu aktualisieren:

ERROR: (gcloud.container.clusters.update) argument --master-authorized-networks: too many args

Um dieses Problem zu beheben, dürfen Sie nicht mehr als 50 CIDR-Blöcke angeben, wenn der Cluster öffentlich ist. Wenn Ihr Cluster privat ist, geben Sie nicht mehr als 100 CIDR-Blöcke an.

Serververbindung kann nicht hergestellt werden

kubectl-Befehle führen zu einer Zeitüberschreitung wegen falsch konfigurierter CIDR-Blöcke:

Unable to connect to the server: dial tcp MASTER_IP: getsockopt: connection timed out

Geben Sie beim Erstellen oder Aktualisieren eines Clusters die richtigen CIDR-Blöcke an.

Weitere Informationen