IAP für die TCP-Weiterleitung verwenden

Auf dieser Seite wird erläutert, wie Sie die TCP-Weiterleitung für Identity-Aware Proxy (IAP) nutzen können, um den Administratorzugriff auf VM-Instanzen zuzulassen, die keine externen IP-Adressen haben oder keinen direkten Zugriff über das Internet erlauben.

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

Hinweis

So bereiten Sie Ihre Umgebung für die Verwendung von IAP für die TCP-Weiterleitung vor:

  1. Wählen Sie ein Google Cloud -Projekt aus oder erstellen Sie eines und sorgen Sie dafür, dass die Abrechnung aktiviert ist.

  2. Wenn Sie die Befehlszeile verwenden möchten, installieren und initialisieren Sie die Google Cloud CLI.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle IAP Policy Admin (roles/iap.policyAdmin) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie für die Verwendung von IAP-TCP-Weiterleitung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Achten Sie darauf, dass Sie eine Compute Engine-VM-Instanz in Ihrem Projekt haben. Wenn Sie keine VM-Instanz haben, erstellen und starten Sie eine Compute Engine-Instanz. Für die IAP-TCP-Weiterleitung ist keine externe IP-Adresse für Ihre VM-Instanz erforderlich.

Projekt für die IAP-TCP-Weiterleitung vorbereiten

In diesem Abschnitt werden die erforderlichen Schritte zum Aktivieren der IAP-TCP-Weiterleitung in Ihrem Google Cloud -Projekt beschrieben.

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.

    Verwenden Sie für IPv6-VMs den folgenden IP-Bereich: 2600:2d00:1:7::/64.

  • 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 in der Google Cloud Console angezeigt.

  2. Wählen Sie ein Projekt in Google Cloud aus.
  3. Klicken Sie auf der Seite „Firewallregeln“ auf Firewallregel erstellen.
  4. Legen Sie folgende 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 3389,22 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 TCP-Weiterleitung von IAP gewähren

Wenn Sie steuern möchten, welche Nutzer und Gruppen die IAP-TCP-Weiterleitung verwenden dürfen und mit welchen VM-Instanzen sie sich verbinden dürfen, weisen Sie dem Projekt die entsprechenden IAM-Rollen (Identity and Access Management) zu.

Wenn Sie OS Login verwenden (empfohlen), lesen Sie den Abschnitt OS Login-Rollen für Nutzerkonten konfigurieren.

In der folgenden Tabelle sind die vordefinierten Rollen aufgeführt, die Sie vertrauenswürdigen Administratoren für die TCP-Weiterleitung und zugehörige Aufgaben gewähren 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 Instance Admin (Version 1) (roles/compute.instanceAdmin.v1)
Dienstkonto verwenden Dienstkontonutzer (roles/iam.serviceAccountUser) Weitere Informationen finden Sie unter Rolle „serviceAccountUser“.

Wenn Sie benutzerdefinierte Rollen mit nur den für diese Aufgabe erforderlichen Berechtigungen erstellen möchten, lesen Sie den Abschnitt 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 zuweisen.

Tags werden nicht unterstützt

Das Erteilen von Berechtigungen für die TCP-Weiterleitung für IAP mithilfe von Tags wird derzeit nicht unterstützt.

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 & Verwaltung.

    Seite „IAM & Verwaltung“ öffnen

    Die verbleibenden Schritte werden 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
  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

Dabei gilt:

  • 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 dieser 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 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 im folgenden 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 erfüllen, die auf IAM-Bedingungen und Zugriffsebenen basieren.

    Das folgende Beispiel zeigt eine bearbeitete policy.json-Datei, in der einer Gruppe von VM-Instanzadministratoren die Rolle iap.tunnelResourceAccessor zugewiesen wird, wodurch sie Zugriff auf IAP-gesicherte Tunnelressourcen erhalten. Es wurde eine IAM-Bedingung hinzugefügt, damit die Ressourcen nur für Principals in der Gruppe „VM-Instanzadministratoren“ mit einer privaten IP-Adresse von 10.0.0.1 auf Port 22 über die IAM-Bedingungen destination.ip und destination.port zugänglich sind. Sie müssen auch die Anforderungen der Zugriffsebene ACCESS_LEVEL_NAME erfüllen.

    Wenn ein Hauptkonto die Rolle Inhaber hat, hat es die Berechtigung, 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
    
    1. Legen Sie die neue Datei policy.json 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 IAP-Tunneling verwenden, stellen die IAP-Proxys eine Verbindung zur primären internen IPv4-Adresse von nic0 auf der VM her.

Console

Für das Herstellen einer Verbindung zu Ihrer Instanz verwenden Sie den SSH-Button in derGoogle Cloud Console. Die Zugriffskonfiguration Ihrer Instanz (definiert durch IAM-Berechtigungen) muss 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 eine Verbindung zu einer VM-Instanz über SSH und IAP-TCP-Weiterleitung 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 Verbinden aus.

IAP Desktop

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

PuTTY-Anwendung

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

Bevor Sie die PuTTY App konfigurieren, führen Sie den Befehl gcloud compute ssh einmal aus, um sicherzustellen, dass Sie einen privaten SSH-Schlüssel auf Ihrem lokalen Computer haben und Ihr öffentlicher SSH-Schlüssel in Compute Engine veröffentlicht wird:

  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

    Dabei gilt:

    • 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 so konfigurieren, dass die IAP-TCP-Weiterleitung verwendet wird:

  1. Öffnen Sie die PuTTY-App und wählen Sie die Kategorie Connection > 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

      Dabei gilt:

      • 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

      Dabei gilt:

      • 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 nutzt. Verwenden Sie diesen, 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 über die 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 Verbinden 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.

TCP-Uploadbandbreite für IAP erhöhen

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

Linux

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

$(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 Befehl aus, um gcloud den Zugriff auf externe Pakete zu ermöglichen:

export CLOUDSDK_PYTHON_SITEPACKAGES=1

Windows

Führen Sie den folgenden Befehl in einer neuen PowerShell-Instanz aus, um NumPy mit pip unter Windows zu installieren:

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

Wenn die Meldung nach der Installation von NumPy weiterhin angezeigt wird, ist ein weiterer Schritt erforderlich. Führen Sie den folgenden Befehl aus, um gcloud den Zugriff auf externe Pakete zu erlauben:

$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 die Verbindung getrennt wird.

Nächste Schritte