IAP für die TCP-Weiterleitung verwenden

Auf dieser Seite wird erläutert, wie Sie die TCP-Weiterleitung von Identity-Aware Proxy (IAP) verwenden können, um Administratorzugriff auf VM-Instanzen zu ermöglichen, die keine externen IP-Adressen haben oder keinen direkten Zugriff über das Internet zulassen.

Mit der IAP-TCP-Weiterleitung können Sie einen verschlüsselten Tunnel einrichten, über den Sie SSH-, RDP- und anderen Traffic an VM-Instanzen weiterleiten können. Mit der IAP-TCP-Weiterleitung können Sie auch genau steuern, welche Nutzer Tunnel einrichten dürfen und zu welchen VM-Instanzen Nutzer eine Verbindung herstellen dürfen.

Weitere Informationen zur Funktionsweise der IAP-TCP-Weiterleitung finden Sie in der Übersicht zur TCP-Weiterleitung (nur auf Englisch verfügbar).

Projekt für die IAP-TCP-Weiterleitung vorbereiten

In diesem Abschnitt werden die Schritte beschrieben, mit denen Sie die IAP-TCP-Weiterleitung in Ihrem Google Cloud-Projekt aktivieren.

Firewallregel erstellen

Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:

  • für alle VM-Instanzen gilt, die über IAP zugänglich sein sollen.
  • Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.
  • Lässt Verbindungen zu allen Ports zu, die über die IAP-TCP-Weiterleitung zugänglich sein sollen, z. B. Port 22 für SSH und Port 3389 für RDP.

Console

So gewähren Sie RDP- und SSH-Zugriff auf alle VM-Instanzen in Ihrem Netzwerk:

  1. Öffnen Sie die Seite „Firewallregeln“.

    Zur Seite „Firewallregeln“

    Die verbleibenden Schritte werden automatisch in der Google Cloud Console angezeigt.

  2. Wählen Sie ein Google Cloud-Projekt aus.
  3. Klicken Sie auf der Seite „Firewallregeln“ auf Firewallregel erstellen.
  4. Legen Sie die folgenden Einstellungen fest:
    • Name: allow-ingress-from-iap
    • Trafficrichtung: Eingehend
    • Ziel: Alle Instanzen im Netzwerk
    • Quellfilter: IP-Bereiche
    • Quell-IP-Bereiche: 35.235.240.0/20
    • Protokolle und Ports: Wählen Sie TCP aus und geben Sie 22,3389 ein, um RDP und SSH zuzulassen.
  5. Klicken Sie auf Erstellen.

gcloud

Führen Sie folgenden Befehl aus, um den RDP-Zugriff auf alle VM-Instanzen in Ihrem Netzwerk zuzulassen:

gcloud compute firewall-rules create allow-rdp-ingress-from-iap \
  --direction=INGRESS \
  --action=allow \
  --rules=tcp:3389 \
  --source-ranges=35.235.240.0/20

Führen Sie für SSH-Zugriff Folgendes aus:

gcloud compute firewall-rules create allow-ssh-ingress-from-iap \
  --direction=INGRESS \
  --action=allow \
  --rules=tcp:22 \
  --source-ranges=35.235.240.0/20

Für andere Protokolle führen Sie Folgendes aus:

gcloud compute firewall-rules create allow-ingress-from-iap \
  --direction=INGRESS \
  --action=allow \
  --rules=tcp:PORT \
  --source-ranges=35.235.240.0/20

wobei PORT der vom Protokoll verwendete Port ist.

Rollen für die IAP-TCP-Weiterleitung gewähren

Um zu steuern, welche Nutzer und Gruppen die IAP-TCP-Weiterleitung verwenden dürfen und zu welchen VM-Instanzen sie eine Verbindung herstellen dürfen, weisen Sie dem Projekt die entsprechenden IAM-Rollen (Identity and Access Management) zu.

Die folgende Tabelle zeigt die vordefinierten Rollen, die Sie vertrauenswürdigen Administratoren für die TCP-Weiterleitung und zugehörige Aufgaben zuweisen müssen:

Aufgabe Rollen Weitere Informationen
TCP-Weiterleitung Nutzer IAP-gesicherter Tunnel (roles/iap.tunnelResourceAccessor) Weitere Informationen finden Sie unter Zugriff auf alle VM-Instanzen in einem Projekt gewähren oder Zugriff auf eine bestimmte VM gewähren.
SSH-Zugriff Compute-Instanzadministrator (Version 1) (roles/compute.instanceAdmin.v1)
OS Login (empfohlen) Verschiedene Weitere Informationen finden Sie unter OS Login-Rollen für Nutzerkonten konfigurieren.
Dienstkonto verwenden Dienstkontonutzer (roles/iam.serviceAccountUser) Siehe Rolle „serviceAccountUser“.

Wenn Sie benutzerdefinierte Rollen nur mit den spezifischen Berechtigungen erstellen möchten, die für diese Aufgabe erforderlich sind, lesen Sie die Berechtigungsdetails.

Sie können einem Nutzer oder einer Gruppe Zugriff auf alle VM-Instanzen in einem Projekt oder auf eine bestimmte VM gewähren, je nachdem, wie Sie die erforderlichen Rollen gewähren.

Zugriff auf alle VM-Instanzen in einem Projekt gewähren

Sie können einem Nutzer oder einer Gruppe Zugriff auf alle VM-Instanzen in einem Projekt gewähren, indem Sie die erforderlichen IAM-Rollen auf Projektebene zuweisen:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite IAM und Verwaltung.

    Zur Seite „IAM und Verwaltung“

    Die verbleibenden Schritte werden automatisch in der Google Cloud Console angezeigt.

  2. Klicken Sie auf der Seite IAM und Verwaltung auf Hinzufügen und konfigurieren Sie Folgendes:
    • Neue Hauptkonten: Geben Sie den Nutzer oder die Gruppe an, der Sie Zugriff gewähren möchten.
    • Rolle auswählen: Wählen Sie Cloud IAP > Nutzer IAP-gesicherter Tunnel aus.
  3. Klicken Sie optional auf Bedingung hinzufügen und konfigurieren Sie eine Bedingung:
    • Titel: Geben Sie einen Namen für die Bedingung ein.
    • Ausdruck: Geben Sie eine Bedingung ein, die ein Nutzer erfüllen muss, um die Berechtigungen in der Rolle „Nutzer IAP-gesicherter Tunnel“ zu erhalten.

    Der folgende CEL-Ausdruck gewährt beispielsweise nur Zugriff auf Port 22:

    destination.port == 22

    Sie können den Zugriff auch basierend auf der Zugriffsebene gewähren:

    destination.port == 22 &&
    "FULL_ACCESS_LEVEL_NAME" in request.auth.access_levels

    Dabei ist FULL_ACCESS_LEVEL_NAME eine vorhandene Zugriffsebene und verwendet das folgende Format:

    accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME

  4. Klicken Sie auf Weitere Rolle hinzufügen und konfigurieren Sie Folgendes:
    • Rolle auswählen: Wählen Sie Compute Engine > Compute-Instanzadministrator (Version 1) aus.
  5. Klicken Sie auf Speichern.

gcloud

Weisen Sie dem Nutzer die beiden Rollen zu, indem Sie die folgenden Befehle ausführen:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=user:EMAIL \
    --role=roles/iap.tunnelResourceAccessor
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=user:EMAIL \
    --role=roles/compute.instanceAdmin.v1

Ersetzen Sie Folgendes:

  • PROJECT_ID: ID des Projekts.
  • EMAIL: E-Mail-Adresse des Nutzers, dem Sie Zugriff gewähren möchten, z. B. user@example.com.

Zugriff auf eine bestimmte VM gewähren

Wenn Sie einem Nutzer oder einer Gruppe Zugriff auf eine bestimmte VM gewähren möchten, weisen Sie für diese VM die Rolle roles/iap.tunnelResourceAccessor zu. Die anderen Rollen müssen für das Projekt gewährt werden.

Console

  1. Öffnen Sie die IAP-Administratorseite und wählen Sie den Tab SSH- und TCP-Ressourcen aus.

    Zur IAP-Administratorseite

    Die verbleibenden Schritte werden automatisch in der Google Cloud Console angezeigt.

  2. Wählen Sie auf dem Tab SSH- und TCP-Ressourcen der IAP-Administratorseite die VM-Instanzen aus, die Sie konfigurieren möchten.
  3. Falls das Infofeld nicht sichtbar ist, klicken Sie auf Infofeld ansehen.
  4. Klicken Sie auf Hinzufügen und konfigurieren Sie Folgendes:

    • Neue Hauptkonten: Geben Sie den Nutzer oder die Gruppe an, der Sie Zugriff gewähren möchten.
    • Rolle auswählen: Wählen Sie Cloud IAP > Nutzer IAP-gesicherter Tunnel aus.
  5. Klicken Sie optional auf Bedingung hinzufügen und konfigurieren Sie eine Bedingung:

    • Titel: Geben Sie einen Namen für die Bedingung ein.
    • Ausdruck: Geben Sie eine Bedingung ein, die ein Nutzer erfüllen muss, um die Berechtigungen in der Rolle „Nutzer IAP-gesicherter Tunnel“ zu erhalten.

    Der folgende CEL-Ausdruck gewährt beispielsweise nur Zugriff auf Port 22:

          destination.port == 22

    Sie können den Zugriff auch basierend auf der Zugriffsebene gewähren:

        destination.port == 22 &&
        "FULL_ACCESS_LEVEL_NAME" in request.auth.access_levels

    Dabei ist FULL_ACCESS_LEVEL_NAME eine vorhandene Zugriffsebene und verwendet das Format accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME.

  6. Klicken Sie auf Speichern.

API

Führen Sie zum Bearbeiten der Datei policy.json Ihrer Anwendung die im Folgenden aufgeführten Schritte aus. Weitere Informationen zum Verwenden der IAM API für das Verwalten von Zugriffsrichtlinien finden Sie unter Zugriff auf Ressourcen verwalten, die mit IAP gesichert sind.

  1. Exportieren Sie die folgenden Variablen.

    export IAP_BASE_URL=https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_tunnel
    # Replace POLICY_FILE.JSON with the name of JSON file to use for setIamPolicy
    export JSON_NEW_POLICY=POLICY_FILE.JSON
    

  2. Rufen Sie die IAM-Richtlinie für die Compute Engine-Instanz mit der Methode getIamPolicy ab. Das leere Datenbit am Ende wandelt die curl-Anfrage in POST anstelle von GET um.

    curl -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:getIamPolicy \
         -d ''

  3. Weisen Sie Ihren Hauptkonten die Rolle iap.tunnelResourceAccessor zu, indem Sie die JSON-Datei der IAM-Richtlinie ändern.

  4. Optional können Sie die Rolle nur Hauptkonten zuweisen, die bestimmte Kriterien basierend auf IAM-Bedingungen und Zugriffsebenen erfüllen.

    Das folgende Beispiel zeigt eine bearbeitete Datei policy.json, die einer Gruppe von VM-Instanzadministratoren die Rolle iap.tunnelResourceAccessor zuweist, die ihnen Zugriff auf mit IAP gesicherte Tunnelressourcen gewährt. Es wurde eine IAM-Bedingung hinzugefügt, um die Ressourcen nur für Hauptkonten in der Gruppe der VM-Instanzadministratoren mit der privaten IP-Adresse 10.0.0.1 an Port 22 zugänglich zu machen. Dazu werden die IAM-Bedingungen destination.ip und destination.port verwendet. Sie müssen auch die Anforderungen der Zugriffsebene ACCESS_LEVEL_NAME erfüllen.

    Wenn ein Hauptkonto die Rolle Inhaber hat, ist es berechtigt, IAP für die TCP-Weiterleitung zu verwenden.


    Beispieldatei policy.json

    {
      "policy": {
        "bindings": [
          {
            "role": "roles/iap.tunnelResourceAccessor",
            "members": ["group:instance-admins@example.com"],
            "condition": {
              "expression": "\"accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME\" in request.auth.access_levels && destination.ip == \"10.0.0.1\" && destination.port == 22",
              "title": "CONDITION_NAME"
            }
          }
        ]
      }
    }

    Zur Suche nach einem Richtliniennamen rufen Sie accessPolicies.list auf:

    GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
    
  5. Legen Sie die neue policy.json-Datei mit der Methode setIamPolicy fest.

    curl -i -H "Content-Type:application/json" \
              -H "Authorization: Bearer $(gcloud auth print-access-token)" \
              ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:setIamPolicy \
              -d @${JSON_NEW_POLICY}
    

Berechtigungsdetails

Die erforderlichen Berechtigungen hängen davon ab, wie ein Nutzer die IAP-TCP-Weiterleitung verwendet:

Szenarien Erforderliche Berechtigungen
Alle
  • iap.tunnelInstances.accessViaIAP
gcloud compute [start-iap-tunnel, ssh, scp] verwenden
  • compute.instances.get
  • compute.instances.list
gcloud compute [ssh, scp] verwenden
  • compute.projects.get
VM mit OS Login Weitere Informationen finden Sie in dieser Anleitung.
Ohne Verwendung von OS Login
  • compute.instances.setMetadata
  • compute.projects.setCommonInstanceMetadata
  • compute.globalOperations.get
SSH-Verbindung zur VM über ein Dienstkonto
  • iam.serviceAccounts.actAs
SSH über den Browser Weitere Informationen finden Sie in dieser Anleitung.

Wenn ein Nutzer beispielsweise über gcloud compute ssh eine Verbindung zu einer VM herstellen möchte, die zwar nicht OS Login, aber ein Dienstkonto verwendet, benötigt er folgende Berechtigungen:

  • iap.tunnelInstances.accessViaIAP
  • compute.instances.get
  • compute.instances.list
  • compute.projects.get
  • compute.instances.setMetadata
  • compute.projects.setCommonInstanceMetadata
  • compute.globalOperations.get
  • iam.serviceAccounts.actAs

Tunneling von SSH-Verbindungen

Sie können eine Verbindung zu Linux-Instanzen herstellen, die keine externe IP-Adresse haben. Verwenden Sie dazu Tunneling von SSH-Traffic über IAP:

Wenn Sie das IAP-Tunneling verwenden, stellen die IAP-Proxys eine Verbindung zur primären internen IPv4-Adresse von nic0 auf der VM her.

Console

Verwenden Sie die SSH-Schaltfläche in der Google Cloud Console, um eine Verbindung zu Ihrer Instanz herzustellen. Die Zugriffskonfiguration Ihrer Instanz (definiert mit IAM-Berechtigungen) muss das TCP-Tunneling über IAP zulassen.

gcloud

Zum Herstellen einer Verbindung zu Ihrer Instanz verwenden Sie den Befehl gcloud compute ssh. Die Zugriffskonfiguration Ihrer Instanz (definiert mit IAM-Berechtigungen) muss das TCP-Tunneling über IAP zulassen.

gcloud compute ssh INSTANCE_NAME

Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz, in der eine SSH-Verbindung hergestellt werden soll.

Wenn die Instanz keine externe IP-Adresse hat, verwendet die Verbindung automatisch das IAP-TCP-Tunneling. Hat die Instanz eine externe IP-Adresse, so nutzt die Verbindung anstelle des IAP-TCP-Tunnelings die externe IP-Adresse.

Sie können das Flag --tunnel-through-iap verwenden, damit gcloud compute ssh immer IAP-TCP-Tunneling verwendet.

Verwenden Sie das Flag --internal-ip, damit gcloud compute ssh nie TCP-Tunneling von IAP verwendet und stattdessen direkt eine Verbindung zur internen IP-Adresse der VM herstellt. Dies ist nützlich für Clients, die mit demselben VPC-Netzwerk wie die Ziel-VM verbunden sind.

IAP Desktop

Sie können IAP Desktop verwenden, um mithilfe von SSH und der IAP-TCP-Weiterleitung eine Verbindung zu einer VM-Instanz herzustellen.

  1. Wählen Sie in der Anwendung File > Add Google Cloud project aus.

  2. Geben Sie die ID oder den Namen Ihres Projekts ein und klicken Sie auf OK.

  3. Klicken Sie im Fenster Project Explorer mit der rechten Maustaste auf die VM-Instanz, zu der Sie eine Verbindung herstellen möchten, und wählen Sie Connect aus.

IAP Desktop

Weitere Informationen zu IAP Desktop finden Sie auf der GitHub-Projektseite.

PuTTY-Anwendung

Sie können die PuTTY Windows-Terminalemulator-Anwendung so einrichten, dass sie die IAP-TCP-Weiterleitung verwendet, um eine Verbindung zu einer VM-Instanz herzustellen. Die Zugriffskonfiguration Ihrer Instanz (definiert durch IAM-Berechtigungen) muss TCP-Tunneling über IAP zulassen.

Verwenden Sie vor dem Konfigurieren der PuTTY-Anwendung einmal den Befehl gcloud compute ssh, um sicherzustellen, dass Sie einen privaten SSH-Schlüssel auf Ihrem lokalen Computer haben und dass Ihr öffentlicher SSH-Schlüssel in Compute Engine veröffentlicht wurde:

  1. Öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus, um eine Verbindung zur VM-Instanz herzustellen:

    gcloud compute ssh INSTANCE_NAME `
      --tunnel-through-iap `
      --project PROJECT_ID `
      --zone ZONE
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: Name der Datenbank, zu der eine Verbindung hergestellt werden soll
    • PROJECT_ID: Projekt-ID des Projekts, in dem sich die VM-Instanz befindet
    • ZONE: Zone, in der sich die VM-Instanz befindet

    Bestätigen Sie gegebenenfalls, dass Sie SSH-Schlüssel generieren möchten, indem Sie Y drücken.

  2. Führen Sie den folgenden Befehl auf der VM aus, um Ihren Nutzernamen zu ermitteln:

    whoami
    

    Sie benötigen diesen Nutzernamen später.

Sie können die PuTTY-App jetzt für die Verwendung der IAP-TCP-Weiterleitung konfigurieren:

  1. Öffnen Sie die PuTTY App und wählen Sie die Kategorie Verbindung > Proxy aus.
  2. Konfigurieren Sie die folgenden Proxyeinstellungen:

    • Wählen Sie als Proxytyp die Option Lokal aus.
    • Geben Sie im Feld Telnet-Befehl oder lokaler Proxybefehl Folgendes ein:

      gcloud.cmd compute start-iap-tunnel %host %port --listen-on-stdin --project PROJECT_ID --zone ZONE
      

      Ersetzen Sie Folgendes:

      • PROJECT_ID: Projekt-ID des Projekts, in dem sich die VM-Instanz befindet
      • ZONE: Zone, in der sich die VM-Instanz befindet
    • Wählen Sie für die Option Proxy-Diagnose im Terminalfenster drucken die Option Nur bis zum Start der Sitzung aus.

  3. Wählen Sie die Kategorie Verbindung > SSH > Auth aus.

  4. Klicken Sie auf Durchsuchen, fügen Sie den folgenden Dateinamen ein und klicken Sie auf Öffnen:

    %USERPROFILE%\.ssh\google_compute_engine.ppk
    
  5. Wählen Sie die Kategorie Sitzung aus.

  6. Konfigurieren Sie die folgenden Proxyeinstellungen:

    • Geben Sie im Feld Hostname (oder IP-Adresse) Folgendes ein:

      USERNAME@INSTANCE_NAME
      

      Ersetzen Sie Folgendes:

      • USERNAME: Der zuvor ermittelte Linux-Nutzername
      • INSTANCE_NAME: Der Name der VM-Instanz, zu der Sie eine Verbindung herstellen möchten
    • Gespeicherte Sitzungen: Geben Sie einen Namen für die Sitzung ein.

  7. Klicken Sie auf Speichern.

  8. Klicken Sie auf Öffnen, um die SSH-Sitzung zu starten.

ssh

Sie können den SSH-Befehl direkt mit der Option ProxyCommand verwenden, die gcloud zum Starten des Tunnels verwendet. Verwenden Sie diese Option, um den vollständigen ssh-Befehl zu generieren:

gcloud compute ssh INSTANCE_NAME --dry-run

Tunneling von RDP-Verbindungen

Sie können eine Verbindung zu Windows-Instanzen herstellen, die keine externe IP-Adresse haben. Verwenden Sie dazu Tunneling von RDP-Traffic über IAP:

IAP Desktop

Sie können IAP Desktop verwenden, um mithilfe der IAP-TCP-Weiterleitung eine Verbindung zum Remote-Desktop einer oder mehrerer VM-Instanzen herzustellen.

  1. Wählen Sie in der Anwendung File > Add Google Cloud project aus.

  2. Geben Sie die ID oder den Namen Ihres Projekts ein und klicken Sie auf OK.

  3. Klicken Sie im Fenster Project Explorer mit der rechten Maustaste auf die VM-Instanz, zu der Sie eine Verbindung herstellen möchten, und wählen Sie Connect aus.

IAP Desktop

Weitere Informationen zu IAP Desktop finden Sie auf der GitHub-Projektseite.

gcloud

Erstellen Sie zuerst einen Tunnel, um eine Verbindung zum Remote-Desktop einer VM-Instanz herzustellen.

  1. Erstellen Sie mit dem Befehl gcloud compute start-iap-tunnel einen verschlüsselten Tunnel zum RDP-Port der VM-Instanz.

    gcloud compute start-iap-tunnel INSTANCE_NAME 3389 \
        --local-host-port=localhost:LOCAL_PORT \
        --zone=ZONE
    

    Ersetzen Sie INSTANCE_NAME durch den Namen der VM-Instanz, zu der Sie eine Verbindung herstellen möchten. Ersetzen Sie LOCAL_PORT localhost-Port, an den der Proxy gebunden werden soll, oder verwenden Sie 0, damit automatisch ein unbenutzter Port ausgewählt wird. Ersetzen Sie ZONE durch die Zone, in der sich die VM-Instanz befindet.

  2. gcloud führt einen Konnektivitätstest mit der VM-Instanz durch, öffnet dann einen Tunnel und zeigt eine Portnummer an.

    Listening on port [LOCAL_PORT].
    

    Der gesamte an localhost:LOCAL_PORT gesendete Traffic wird an die VM-Instanz weitergeleitet. Der Port ist nur für Anwendungen zugänglich, die auf Ihrem lokalen Computer ausgeführt werden.

  3. Lassen Sie gcloud ausgeführt und öffnen Sie die Microsoft Windows Anwendung "Remotedesktopverbindung".

  4. Geben Sie den Tunnel-Endpunkt als Computernamen ein:

    localhost:LOCAL_PORT
    

    Ersetzen Sie LOCAL_PORT durch die Portnummer, die beim Öffnen des Tunnels durch gcloud angezeigt wurde.

  5. Klicken Sie auf Verbinden.

Tunneling von anderen TCP-Verbindungen

Sie können die IAP-TCP-Weiterleitung für andere TCP-basierte Protokolle verwenden. Dazu verwenden Sie den Befehl gcloud compute start-iap-tunnel, um einen lokalen Port zuzuweisen. Der lokale Port leitet den Traffic in einem HTTPS-Stream vom lokalen Computer zum Remotecomputer. IAP empfängt dann die Daten, wendet die Zugriffssteuerungen an und leitet die unverpackten Daten an den Remote-Port weiter. Umgekehrt werden alle Daten vom Remoteport gepackt, bevor sie an den lokalen Port gesendet werden, an dem sie dann entpackt werden.

gcloud

Erstellen Sie einen verschlüsselten Tunnel zu einem Port der VM-Instanz:

gcloud compute start-iap-tunnel INSTANCE_NAME INSTANCE_PORT \
    --local-host-port=localhost:LOCAL_PORT \
    --zone=ZONE

Ersetzen Sie INSTANCE_NAME und INSTANCE_PORT durch den Namen und den Port der VM-Instanz, zu der Sie eine Verbindung herstellen möchten. Ersetzen Sie LOCAL_PORT durch den localhost-Port, an den der Proxy gebunden werden soll. Ersetzen Sie ZONE durch die Zone, in der sich die VM-Instanz befindet.

gcloud führt einen Konnektivitätstest mit der VM-Instanz durch, öffnet dann einen Tunnel und zeigt eine Portnummer an.

Listening on port [LOCAL_PORT].

Der gesamte an localhost:LOCAL_PORT gesendete Traffic wird an die VM-Instanz weitergeleitet. Der Port ist nur für Anwendungen zugänglich, die auf Ihrem lokalen Computer ausgeführt werden.

IAP-TCP-Uploadbandbreite erhöhen

Wenn Sie die IAP-TCP-Uploadbandbreite erhöhen möchten, sollten Sie NumPy auf demselben Computer installieren, auf dem die gcloud CLI installiert ist.

Linux

Um NumPy mit pip auf Unix-Plattformen zu installieren, führen Sie den folgenden Befehl in einer neuen Terminalinstanz aus:

$(gcloud info --format="value(basic.python_location)") -m pip install numpy
Weitere Informationen finden Sie unter NumPy.org.

Wenn die Fehlermeldung nach der Installation von NumPy weiterhin angezeigt wird, führen Sie den folgenden Schritt aus: Führen Sie den folgenden Befehl aus, um gcloud den Zugriff auf externe Pakete zu ermöglichen:

export CLOUDSDK_PYTHON_SITEPACKAGES=1

Windows

Um NumPy mithilfe von pip auf Windows-Plattformen zu installieren, führen Sie den folgenden Befehl in einer neuen PowerShell-Instanz aus:

start (gcloud info --format="value(basic.python_location)") "-m pip install numpy"
Weitere Informationen finden Sie unter NumPy.org.

Wenn die Meldung auch nach der Installation von NumPy weiterhin angezeigt wird, ist ein weiterer Schritt erforderlich. Führen Sie den folgenden Befehl aus, damit gcloud auf externe Pakete zugreifen kann:

$env:CLOUDSDK_PYTHON_SITEPACKAGES="1"

Bekannte Einschränkungen

Bandbreite: Das TCP-Weiterleitungs-Feature von Cloud IAP ist nicht für die Massenübertragung von Daten vorgesehen. IAP behält sich das Recht vor, Nutzer einzuschränken, die diesen Dienst missbrauchen.

Verbindungsdauer: IAP trennt Sitzungen automatisch nach einer Stunde Inaktivität. Derzeit versucht gcloud compute start-iap-tunnel, den Tunnel wiederherzustellen, wenn er getrennt wird.

Weitere Informationen