IAP-TCP-Weiterleitung mit einer IP-Adresse oder einem Hostnamen verwenden

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

Um die IAP-TCP-Weiterleitung mit einer IP-Adresse oder einem Hostnamen-Feature verwenden zu können, benötigen Sie eine BeyondCorp Enterprise-Lizenz.

Übersicht

Sie können die Google Cloud-Befehlszeile verwenden, um Tunnel zu Endpunkten mithilfe der privaten Endpunkt-IP-Adresse oder des Hostnamens zu erstellen. Wenn Sie externe Ressourcen (lokal oder in anderen Clouds) über Cloud Interconnect oder VPN mit Google Cloud verbunden haben, können Sie die IAP-TCP-Weiterleitung mit diesen Ressourcen verwenden.

Hinweis

Für Tunnel zu Ressourcen außerhalb von Google Cloud muss die Hybridkonnektivität konfiguriert sein. Zum Verbinden Ihrer externen Ressourcen (lokal oder in der anderen Cloud) mit Google Cloud 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) bewerben, damit die Ziele Traffic über Cloud VPN oder Cloud Interconnect zurücksenden und nicht über das Internet. 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 für die Werbung des IAP-TCP-IP-Bereichs zu konfigurieren.

Tunnel-Zielgruppe erstellen

Wenn Sie einen Tunnel konfigurieren, geben Sie eine Zielgruppe an, die für Berechtigungsprüfungen verwendet werden soll. Tunnel-Zielgruppen sind Ressourcen, die dieselben Tunnelzugriffsbeschränkungen haben. Sie können eine beliebige Anzahl von Zielgruppen mit einer beliebigen Anzahl von übereinstimmenden IP-Bereichen oder einem FQDN erstellen. Zielgruppen können sich überschneiden und daher flexibler sein.

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 gewähren können. Informationen zum Gewähren einer einzelnen Rolle finden Sie unter Einzelne Rolle zuweisen in der IAM-Dokumentation.

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

gcloud alpha iap tcp dest-groups create your-group-name \
    --region=REGION \
    --ip-range-list=IP_RANGE_LIST \
    --fqdn-list=FQDN_LIST
    

Ersetzen Sie Folgendes:

  • REGION: Die Region, in der die Zielgruppe erstellt werden soll, z. B. us-central1.
  • IP_RANGE_LIST: Die Liste der IP-Bereiche, die aus durch Kommas getrennten Bereichen in CIDR-Notation besteht, z. B. 10.1.2.0/24,172.0.0.0/8.
  • FQDN_LIST: Die FQDN-Liste ist eine durch Kommas getrennte Liste von Hostnamen, z. B. *.internal.company.com. Wenn ein FQDN-Eintrag ein Platzhalterpräfix hat, wird er mit einem beliebigen Hostnamen mit der angegebenen Endung abgeglichen. Andernfalls ist eine genaue Übereinstimmung erforderlich. Wenn eine Anfrage mit einem IP-Bereich oder FQDN übereinstimmt, wird sie 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 alpha iap tcp dest-groups list \
    --region=REGION
    

Unter gcloud-Ziele für Gruppen erhalten Sie eine Übersicht über die Verwaltung von Zielgruppen.

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 gewähren.

Zum Konfigurieren von Berechtigungen für Zielgruppen benötigst du die Berechtigung iap.tunnelDestGroups.setIamPolicy, die du über die Rolle iap.admin gewähren kannst.

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

gcloud alpha iap tcp dest-groups add-iam-policy-binding \
    --member=MEMBER \
    --role=ROLE \
    --group-name=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 Ihrer Gruppe.
  • REGION: Der Name der Region, z. B. us-central1.

Informationen zur Tunnelnutzung

Bei der Arbeit mit IAP-TCP gibt es drei gcloud-Befehlszeilenbefehle: start-iap-tunnel, ssh und scp.

Die Alphaversionen der IAP-TCP-Befehle wurden aktualisiert, um IP- und FQDN-basiertes Tunneling zu unterstützen. So wechseln Sie in die IP-Adresse oder den FQDN:

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

Die von Ihnen angegebene IP-Adresse muss die private IP-Adresse des Ziels sein. IAP-TCP kann nicht mit öffentlichen IP-Adressen verwendet werden. Wenn Sie FQDN verwenden, muss er in die private IP-Adresse des Ziels aufgelöst werden. Beachten Sie, dass die Namensauflösung vom VPC-Netzwerk, das Sie angeben, und nicht vom Clientnetzwerk ausgeführt wird. Wenn Sie beispielsweise versuchen, einen Tunnel zu vm.corp.company.com zu erstellen, wird der Schritt, in dem vm.corp.company.com in eine IP-Adresse umgewandelt wird, im Kontext des VPC-Netzwerks ausgeführt, nicht in Ihrem lokalen Netzwerk.

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

Das von Ihnen 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 abrufen. Alternativ können Sie die Liste der Netzwerknamen mit dem folgenden Befehl abrufen:

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

Beispiele

In den folgenden Beispielen wird die IP-Adresse 172.1.2.3 verwendet. Jeder Befehl kann auch einen FQDN (z. B. example.internal.company.com) anstelle der IP-Adresse verwenden.

Beispiel für eine SSH-Verbindung

Führen Sie den folgenden Befehl aus, um eine SSH-Sitzung auf 172.1.2.3 zu starten:

gcloud alpha compute ssh 172.1.2.3 \
    --region=us-central1 \
    --dest-group=your-group-name \
    --network=default \
    --tunnel-through-iap
    

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

Wenn Sie die Fehlermeldung Permission denied (publickey) erhalten, konnte der Befehl die Datei mit den SSH-Schlüsseln nicht finden. Fügen Sie -- -i ~/.ssh/google_compute_engine als Parameter für den SSH-Befehl hinzu, um dieses Problem zu beheben:

gcloud alpha compute ssh 172.1.2.3 \
    --region=us-central1 \
    --dest-group=your-group-name \
    --network=default \
    --tunnel-through-iap \
    -- -i ~/.ssh/google_compute_engine
    

Tunnel-Beispiel

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.1.2.3:8085 zu erstellen:

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

Beachten Sie, dass der Zielcomputer in diesem Beispiel den Port 8085 überwachen muss.

Beispiel für SCP

Führen Sie den folgenden Befehl aus, um eine SCP-Datei auf 172.1.2.3 zu übertragen:

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

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

Beispiel für SSHProxyProxy

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

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

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

ProxyProxy kann auch für die Verarbeitung vieler Hostnamen eingerichtet werden, wie im folgenden Beispiel gezeigt:

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

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