Richten Sie die IAP-TCP-Weiterleitung mit einer IP-Adresse oder einem Hostnamen in einer Google Cloud- oder Nicht-Google Cloud-Umgebung ein

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Auf dieser Seite wird beschrieben, wie Sie die TCP-Weiterleitung von Identity-Aware Proxy (IAP) mit einer IP-Adresse oder Funktion für den Hostnamen einrichten und verwenden.

Wenn Sie die IAP-TCP-Weiterleitung mit einer IP-Adresse oder einem Hostnamen verwenden möchten, benötigen Sie eine BeyondCorp Enterprise-Lizenz.

Übersicht

Sie können die Google Cloud CLI verwenden, um mithilfe der privaten IP-Adresse oder des Hostnamens der Ressource Tunnel zu Ressourcen zu erstellen. Wenn Sie externe Ressourcen in Nicht-Google Cloud haben, die über Cloud Interconnect oder ein VPN mit Google Cloud verbunden sind, können Sie für diese Ressourcen die TCP-Weiterleitung von IAP verwenden.

Hinweis

Für das Tunneling auf Ressourcen außerhalb von Google Cloud muss eine Hybridkonnektivität konfiguriert sein. Zum Verbinden Ihrer externen Ressourcen, die nicht zu Google Cloud gehören, ist eine Hybridverbindung erforderlich. Weitere Informationen finden Sie in der Dokumentation zu Cloud Interconnect oder Cloud VPN.

Ihr Cloud Router muss den IAP-TCP-IP-Bereich 35.235.240.0/20 anbieten, damit die Ziele Antworttraffic zurück über Cloud VPN oder Cloud Interconnect und nicht über das Internet senden. Wenn Sie diese Konfiguration nicht haben, können Sie keine Tunnel zu Ressourcen außerhalb Ihres Google Cloud-Projekts erstellen.

Folgen Sie der Anleitung unter Benutzerdefinierte IP-Bereiche bewerben, um Ihren Cloud Router so zu konfigurieren, dass er den IAP-TCP-IP-Bereich 35.235.240.0/20 anbietet.

Die folgenden Verfahren enthalten gcloud-Beispiele zum Ausführen der Aufgaben. Informationen zur Interaktion mit Zielgruppen über die APIs finden Sie unter REST-Ressource: projects.iap_tunnel.locations.destGroups

Tunnelzielgruppe erstellen

Wenn Sie einen Tunnel konfigurieren, geben Sie eine Zielgruppe für Berechtigungsprüfungen an. Tunnelzielgruppen sind Ressourcen mit denselben Zugriffsbeschränkungen für Tunnel. Sie können eine beliebige Anzahl von Zielgruppen mit einer beliebigen Anzahl von übereinstimmenden IP-Bereichen oder FQDNs erstellen. Zielgruppen können sich überschneiden und sind dadurch flexibler.

Beim Erstellen einer Zielgruppe müssen Sie eine Region angeben. Die besten Ergebnisse erzielen Sie, wenn die von Ihnen angegebene Region mit dem Standort der Zielressourcen übereinstimmt. Wenn die Ressourcen beispielsweise über ein VPN verbunden sind, sollten Sie die Region des VPN-Gateways verwenden. Der Name der Zielgruppe darf nur Kleinbuchstaben (a–z) und Bindestriche (-) enthalten

Zum Erstellen einer Zielgruppe benötigen Sie die Berechtigung iap.tunnelDestGroups.create, die Sie über die Rolle iap.tunnelDestGroupEditor zuweisen können. Informationen zum Zuweisen einer einzelnen Rolle finden Sie in der IAM-Dokumentation unter Einzelne Rolle zuweisen.

Führen Sie den folgenden Beispielbefehl aus, um eine Zielgruppe zu erstellen:

gcloud iap tcp dest-groups create YOUR_GROUP_NAME \
    --region=REGION \
    --ip-range-list=IP_RANGE_LIST \
    --fqdn-list=FQDN_LIST
    

Ersetzen Sie Folgendes:

  • YOUR_GROUP_NAME: Ihr Gruppenname. Ein Gruppenname darf nur Kleinbuchstaben (a–z) und Bindestriche (-) enthalten.
  • REGION: Die Region, in der die Zielgruppe erstellt werden soll, z. B. us-central1.
  • IP_RANGE_LIST: optional. Die Liste der IP-Bereiche, die aus durch Kommas getrennten Bereichen in CIDR-Notation bestehen, z. B. 10.1.2.0/24,172.0.0.0/8.
  • FQDN_LIST: optional. Die FQDN-Liste ist eine durch Kommas getrennte Liste von Hostnamen, z. B. *.internal.company.com. Wenn ein FQDN-Eintrag ein Platzhalterpräfix hat, entspricht er jedem Hostnamen mit der angegebenen Endung. Andernfalls ist eine genaue Übereinstimmung erforderlich. Wenn eine Anfrage mit einem IP-Bereich oder FQDN übereinstimmt, wird dies als Übereinstimmung angesehen.

Wenn Sie nicht sicher sind, welche Gruppen bereits vorhanden sind, führen Sie den folgenden Befehl aus, um die Gruppen aufzulisten:

gcloud iap tcp dest-groups list \
    --region=REGION
    

Eine Übersicht über die Verwaltung von Zielgruppen finden Sie unter gcloud-Befehle.

Tunnelberechtigungen konfigurieren

Zum Erstellen eines Tunnels benötigen Sie die Berechtigung iap.tunnelDestGroups.accessViaIAP für die relevante Zielgruppe. Sie können die Berechtigung über die Rolle iap.tunnelResourceAccessor erteilen.

Zum Konfigurieren von Berechtigungen für Zielgruppen benötigen Sie die Berechtigung iap.tunnelDestGroups.setIamPolicy, die Sie über die Rolle iap.admin zuweisen können.

Führen Sie den folgenden Beispielbefehl aus, um Berechtigungen zu erteilen:

gcloud iap tcp dest-groups add-iam-policy-binding \
    --member=MEMBER \
    --role=ROLE \
    --dest-group=GROUP_NAME \
    --region=REGION
  

Ersetzen Sie Folgendes:

  • MEMBER: Die E-Mail-Adresse des Nutzers, z. B. user:exampleuser@company.com.
  • ROLE: Die erforderliche IAP-Rolle, roles/iap.tunnelResourceAccessor.
  • GROUP_NAME: Der Name der Zielgruppe.
  • REGION: Der Name der Region, z. B. us-central1.

Tunnelnutzung

Es gibt drei gcloud CLI-Befehle, die Sie bei der Arbeit mit IAP-TCP verwenden können: start-iap-tunnel, ssh und scp.

Die IAP-TCP-Befehle wurden aktualisiert, um IP- und FQDN-basiertes Tunneling zu unterstützen. So wechseln Sie zur IP-Adresse oder zum FQDN:

  • Geben Sie eine IP-Adresse oder einen FQDN anstelle des Instanznamens an.
  • Verwenden Sie --region anstelle von --zone.
  • Mit --dest-group geben Sie die zu verwendende Zielgruppe an.
  • Verwenden Sie --network, um den Namen des zu verwendenden VPC-Netzwerks anzugeben.

Die angegebene IP-Adresse muss die private IP-Adresse des Ziels sein. Sie können IAP-TCP nicht mit öffentlichen IP-Adressen verwenden. Wenn Sie FQDN verwenden, muss er in die private IP-Adresse des Ziels aufgelöst werden. Die Namensauflösung erfolgt über das von Ihnen angegebene VPC-Netzwerk und nicht über das Netzwerk des Clients. Wenn Sie beispielsweise versuchen, einen Tunnel zu vm.corp.company.com zu erstellen, erfolgt der Schritt zum Umwandeln von vm.corp.company.com in eine IP-Adresse im Kontext des VPC-Netzwerks und nicht in Ihrem lokalen Netzwerk.

Die angegebene Region muss mit der Region der Zielgruppe übereinstimmen.

Das angegebene Netzwerk muss mit dem Namen des VPC-Netzwerks übereinstimmen, das Zugriff auf das Ziel hat. Ein typischer Netzwerkname ist default. Sie können die Liste der Netzwerknamen in der Google Cloud Console auf der Seite mit den VPC-Netzwerken aufrufen oder die Liste der Netzwerknamen mit dem folgenden Befehl abrufen:

gcloud compute networks list --format='value(name)'

Beispiele

In den folgenden Beispielen wird die Beispiel-IP-Adresse 172.16.1.2 verwendet. Für jeden Befehl kann auch ein FQDN (z. B. example.internal.company.com) anstelle der IP-Adresse verwendet werden.

Beispiel für SSH

Führen Sie den folgenden Befehl aus, um eine SSH-Sitzung für 172.16.1.2 zu starten:

gcloud compute ssh 172.16.1.2 \
    --region=us-central1 \
    --dest-group=DESTINATION_GROUP_NAME \
    --network=default \
    --tunnel-through-iap

Ersetzen Sie DESTINATION_GROUP_NAME durch den Namen der Zielgruppe.

Beachten Sie, dass --plain impliziert ist. Daher wird nicht versucht, SSH-Schlüssel automatisch zu verwalten und zu übertragen, wenn eine IP-Adresse verwendet wird.

Wenn Sie die Fehlermeldung Permission denied (publickey) erhalten, hat der Befehl die Datei mit den SSH-Schlüsseln nicht gefunden. Um dieses Problem zu beheben, fügen Sie den Pfad zur Datei mit den privaten SSH-Schlüsseln als Parameter für den SSH-Befehl hinzu, wie im folgenden Beispiel gezeigt:

gcloud compute ssh 172.16.1.2 \
    --region=us-central1 \
    --dest-group=DESTINATION_GROUP_NAME \
    --network=default \
    --tunnel-through-iap \
    -- -i ~/.ssh/google_compute_engine

Ersetzen Sie DESTINATION_GROUP_NAME durch den Namen der Zielgruppe.

Wenn Sie sich als bestimmter Nutzer anmelden möchten, verwenden Sie das folgende USER-Zeichen (IP), anstatt nur die IP-Adresse anzugeben:

gcloud compute ssh user@172.16.1.2 \
    --region=us-central1 \
    --dest-group=DESTINATION_GROUP_NAME \
    --network=default \
    --tunnel-through-iap

Wenn das Konto passwortgeschützt ist, müssen Sie ein Passwort eingeben. Wenn das Konto durch ein privates oder öffentliches SSH-Schlüsselpaar geschützt ist, müssen Sie es mit dem oben angegebenen Flag -- -i angeben.

Beispiel für einen Tunnel

Verwenden Sie den Befehl start-iap-tunnel, um einen Tunnel zu einem anderen TCP-Port einzurichten. Führen Sie den folgenden Befehl aus, um einen Tunnel von localhost:8022 zu Port 172.16.1.2:8085 zu erstellen:

gcloud compute start-iap-tunnel 172.16.1.2 8085 \
    --local-host-port=localhost:8022 \
    --region=us-central1 \
    --dest-group=destination-group-name \
    --network=default

Der Zielcomputer muss in diesem Beispiel Port 8085 überwachen.

Nachdem Sie einen Tunnel eingerichtet haben, können Sie ein beliebiges Tool wie PuTTy verwenden, um eine Verbindung herzustellen.

Beispiel für SCP

Führen Sie den folgenden Befehl aus, um eine Datei an 172.16.1.2 zu übertragen:

gcloud compute scp file.txt 172.16.1.2:~/ \
    --region=us-central1 \
    --dest-group=destination-group-name \
    --network=default \
    --tunnel-through-iap

Beachten Sie, dass --plain impliziert ist. Daher wird nicht versucht, SSH-Schlüssel automatisch zu verwalten und zu übertragen, wenn eine IP-Adresse verwendet wird.

Beispiel für SSH ProxyCommand

Wenn Sie den Befehl als ProxyCommand verwenden möchten, der immer zu 172.16.1.2 führt, fügen Sie der ~/.ssh/config-Konfiguration einen oder einen entsprechenden Eintrag hinzu, wie im folgenden Beispiel gezeigt:

Host example
ProxyCommand gcloud compute start-iap-tunnel 172.16.1.2 %p \
    --listen-on-stdin \
    --region=us-central1 \
    --dest-group=destination-group-name \
    --network=default \
    --verbosity=warning
  

ProxyCommand wird wirksam, wenn Sie den folgenden Befehl ausführen: ssh example

Sie können ProxyProxy auch für die Verarbeitung vieler Hostnamen einrichten, wie im folgenden Beispiel gezeigt:

Host *.internal.company.com
ProxyCommand gcloud compute start-iap-tunnel %h %p 
--listen-on-stdin
--region=us-central1
--dest-group=destination-group-name
--network=default --verbosity=warning

ProxyCommand wird wirksam, wenn Sie den folgenden Befehl ausführen: ssh example.internal.company.com