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

Auf dieser Seite wird erläutert, wie Sie autorisierten Netzwerkzugriff auf Cluster-Steuerungsebenen in Google Kubernetes Engine-Clustern (GKE) gewähren. Allgemeine Informationen zum GKE-Netzwerk finden Sie in der Netzwerkübersicht.

Übersicht

Mit autorisierten Netzwerken können Sie CIDR-Bereiche angeben und IP-Adressen in diesen Bereichen den Zugriff auf den Endpunkt der Clustersteuerungsebene mithilfe von HTTPS ermöglichen. Autorisierte Netzwerke sind mit allen Clustern kompatibel.

GKE nutzt sowohl Transport Layer Security (TLS) als auch Authentifizierung, um einen sicheren Zugriff auf den Endpunkt der Clustersteuerungsebene über das öffentliche Internet zu ermöglichen. Dadurch haben Sie die Flexibilität, Ihren Cluster standortunabhängig zu verwalten. Mit einem autorisierten Netzwerk können Sie den Zugriff auf bestimmte Gruppen von IP-Adressen weiter einschränken.

Private Cluster führen Knoten aus, die nur interne IP-Adressen haben. Sie lassen nicht zu, dass öffentliche IP-Adressen über das Internet auf den Endpunkt der Steuerungsebene zugreifen. Darüber hinaus erlauben private Cluster Google Cloud-IP-Adressen nicht, standardmäßig auf den Endpunkt der Steuerungsebene zuzugreifen. Bei Verwendung autorisierter Netzwerke in privaten Clustern können Sie die Steuerungsebene nur über zulässige CIDRs, über Knoten und Pods innerhalb der VPC Ihres Clusters und über interne Produktionsjobs von Google, die Ihre Steuerungsebene verwalten, erreichen.

Vorteile

Das Hinzufügen autorisierter Netzwerke kann für den Containercluster weitere Sicherheitsvorteile mit sich bringen. Autorisierte Netzwerke gewähren Zugriff auf eine bestimmte, von Ihnen festgelegte Gruppe von Adressen (z. B. lokale). So schützen Sie den Zugang zum Cluster, wenn es eine Sicherheitslücke bei der Authentifizierung des Clusters oder des Autorisierungsmechanismus gibt.

Beschränkungen

  • Öffentliche Cluster können bis zu 50 CIDR-Bereiche in autorisierten Netzwerken haben. Private Cluster können bis zu 100 haben.
  • Wenn Sie ein Subnetz erweitern, das von einem Cluster mit autorisierten Netzwerken verwendet wird, müssen Sie das autorisierte Netzwerk so aktualisieren, dass es den erweiterten IP-Adressbereich enthält.

Hinweis

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

  • Achten Sie darauf, dass die Google Kubernetes Engine API aktiviert ist.
  • Google Kubernetes Engine API aktivieren
  • Prüfen Sie, ob die Google Cloud CLI installiert ist.
  • Mit den folgenden Methoden können Sie die Standardeinstellungen der Google Cloud CLI für Ihr Projekt einrichten:
    • Verwenden Sie gcloud init, wenn Sie die Standardeinstellungen für Projekte ansehen möchten.
    • Verwenden Sie gcloud config, um Ihre Projekt-ID, Zone und Region individuell festzulegen.

    gcloud init

    1. Führen Sie gcloud init aus und folgen Sie der Anleitung:

      gcloud init

      Wenn Sie SSH auf einem Remote-Server verwenden, können Sie mit dem Flag --console-only verhindern, dass mit dem Befehl ein Browserfenster geöffnet wird:

      gcloud init --console-only
    2. Folgen Sie der Anleitung, um die gcloud CLI für die Nutzung Ihres Google Cloud-Kontos zu autorisieren.
    3. Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
    4. Wählen Sie ein Google Cloud-Projekt aus.
    5. Wählen Sie eine Compute Engine-Standardzone aus.
    6. Wählen Sie eine Compute Engine-Standardregion aus.

    gcloud config

    1. Legen Sie Ihre standardmäßige Projekt-ID fest:
      gcloud config set project PROJECT_ID
    2. Legen Sie Ihre standardmäßige Compute Engine-Region fest (z. B. us-central1):
      gcloud config set compute/region COMPUTE_REGION
    3. Legen Sie Ihre standardmäßige Compute Engine-Zone fest (z. B. us-central1-c):
      gcloud config set compute/zone COMPUTE_ZONE
    4. Aktualisieren Sie gcloud auf die neueste Version:
      gcloud components update

    Durch das Festlegen von Standardspeicherorten können Sie in der gcloud CLI Fehler wie One of [--zone, --region] must be supplied: Please specify location vermeiden.

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 den folgenden Befehl aus:

gcloud container clusters create 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 Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf Erstellen.

  3. Konfigurieren Sie den Cluster nach Bedarf.

  4. Klicken Sie im Navigationsmenü unter Cluster die Option Netzwerk an.

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

  6. Klicken Sie auf Autorisiertes Netzwerk hinzufügen.

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

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

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

  10. 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.

Privaten Cluster mit autorisierten Netzwerken erstellen

Informationen zum Erstellen eines privaten Clusters mit einem oder mehreren autorisierten Netzwerken finden Sie unter Private Cluster.

Einem vorhandenen Cluster ein autorisiertes Netzwerk hinzuzufügen

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

gcloud

Führen Sie den folgenden 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 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 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 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 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 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

Sie können alle benutzerdefinierten autorisierten Netzwerke für einen vorhandenen Cluster über die gcloud CLI oder die Cloud Console entfernen.

gcloud

Führen Sie diesen Befehl aus:

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

Console

  1. Rufen Sie in der 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, um CIDRs zu entfernen.

  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