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 vongcloud
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