Auf dieser Seite wird beschrieben, wie Sie Identity-Aware Proxy (IAP) einrichten und verwenden. TCP-Weiterleitung mit einer IP-Adresse oder einem Hostnamen-Feature.
IAP-TCP-Weiterleitung mit einer IP-Adresse oder einem Hostnamen verwenden benötigen Sie eine Chrome Enterprise Premium-Lizenz.
Übersicht
Mit der Google Cloud CLI können Sie Tunnel zu Ressourcen erstellen, indem Sie die private IP-Adresse oder den Hostnamen der Ressource verwenden. Wenn externe Ressourcen außerhalb von Google Cloud über Cloud Interconnect oder ein VPN verwenden, können Sie IAP TCP verwenden, mit diesen Ressourcen weiterleiten können.
Hinweise
Wenn Sie einen Tunnel zu Ressourcen außerhalb von Google Cloud benötigen, müssen Sie eine Hybridkonnektivität konfigurieren. Hybridkonnektivität ist erforderlich zum Verbinden Ihrer externen Nicht-Google Cloud-Ressourcen mit Google Cloud Weitere Informationen finden Sie unter Cloud Interconnect oder Cloud VPN. Dokumentation.
Ihr Cloud Router muss den IAP-TCP-IP-Bereich anbieten
35.235.240.0/20
, damit die Ziele den Antworttraffic zurück über
Cloud VPN oder Cloud Interconnect und nicht über das Internet. Wenn Sie
nicht über diese Konfiguration verfügen, können Sie keine Tunnel zu Ressourcen außerhalb von
Ihr Google Cloud-Projekt.
Folgen Sie der Anleitung unter Benutzerdefinierte IP-Bereiche bewerben, um Ihren Cloud Router für das Bewerben des IAP-TCP-IP-Bereichs 35.235.240.0/20
zu konfigurieren.
Die folgenden Verfahren enthalten gcloud-Beispiele zum Ausführen der Aufgaben. Informationen dazu, wie Sie mithilfe der APIs mit Zielgruppen interagieren, finden Sie unter REST-Ressource: projects.iap_tunnel.locations.destGroups.
Tunnelzielgruppe erstellen
Wenn Sie einen Tunnel konfigurieren, geben Sie eine Zielgruppe an, die für Berechtigungsprüfungen verwendet werden soll. Tunnelzielgruppen repräsentieren Ressourcen mit denselben Tunnelzugriffsbeschränkungen. Sie können eine beliebige Anzahl von Zielgruppen mit jeweils einer beliebigen Anzahl übereinstimmender IP-Bereiche oder FQDNs erstellen. Zielgruppen überlappen können, um die Flexibilität zu erhöhen.
Beim Erstellen einer Zielgruppe müssen Sie eine Region angeben. Für die besten Ergebnisse erzielen, sollte die von Ihnen angegebene Region mit dem Standort des Zielressourcen. Wenn die Ressourcen beispielsweise über ein VPN verbunden sind, sollten Sie die Region des VPN-Gateways verwenden.
Zum Erstellen einer Zielgruppe benötigen Sie die Berechtigung iap.tunnelDestGroups.create
. Sie können sie über die Rolle iap.tunnelDestGroupEditor
erteilen. Um eine einzelne
Rolle, siehe Einzelne Rolle zuweisen
in der IAM-Dokumentation.
Console
Rufen Sie die Seite "IAP" auf. und wählen Sie ein Projekt aus, falls noch keines ausgewählt ist.
Klicken Sie auf dem Tab SSH- und TCP-Ressourcen auf Zielgruppe erstellen.
Geben Sie einen Namen für den Gruppennamen ein. Der Gruppenname darf nur Kleinbuchstaben enthalten Buchstaben (a-z) und Bindestriche (-) enthalten.
Wählen Sie in der Drop-down-Liste die Region aus, in der Sie die Zielgruppe erstellen möchten.
Klicken Sie im Bereich IP-Adresse auf Zeile hinzufügen und geben Sie die IP-Adressen oder FQDNs (Fully Qualified Domain Names) der Ressourcen ein.
Ein IP-Bereich besteht aus durch Kommas getrennten Bereichen in CIDR-Notation wie
10.1.2.0/24,172.0.0.0/8
Eine FQDN-Liste ist eine durch Kommas getrennte Liste von Hostnamen, z. B.
*.internal.company.com
Sie können Platzhalter mit Ihrem FQDN-Eintrag verwenden.Klicken Sie auf Zielgruppe erstellen.
gcloud-CLI
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 das Ziel erstellt werden soll.
Gruppe, z. B.
us-central1
. - IP_RANGE_LIST: Optional. Die IP-Bereichsliste, die aus folgenden Elementen besteht:
kommagetrennte Bereiche in CIDR-Notation wie
10.1.2.0/24,172.0.0.0/8
. - FQDN_LIST: Optional. Die FQDN-Liste ist eine durch Kommas
getrennte Liste von
Hostnamen, wie z. B.
*.internal.company.com
. Wenn ein FQDN-Eintrag ein Wildcard-Präfix hat, wird er mit jedem Hostnamen mit der angegebenen Endung abgeglichen. Andernfalls werden sie erfordert eine genaue Übereinstimmung. Stimmt eine Anfrage mit einem IP-Bereich oder FQDN überein, 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
Tunnelzielgruppen verwalten
Sie können die Details einer Zielgruppe ansehen, die Zielgruppe ändern und entfernen.
Console
Rufen Sie die IAP-Seite auf und klicken Sie auf den Tab SSH- und TCP-Ressourcen.
Wenn Sie die Details einer Zielgruppe aufrufen möchten, klicken Sie auf den Namen der Zielgruppe.
Wenn Sie eine Zielgruppe ändern möchten, wählen Sie die Zielgruppe aus und klicken Sie dann auf auf das Stiftsymbol, um den Bereich Zielgruppe bearbeiten zu öffnen. Sie können die Zielgruppe auch über diesen Bereich löschen.
Wenn Sie eine Zielgruppe entfernen möchten, wählen Sie die Zielgruppe aus und klicken Sie dann auf auf das Papierkorbsymbol.
gcloud-CLI
Weitere Informationen zum Verwalten von Zielgruppen mit der gcloud CLI finden Sie unter gcloud-Befehle der Zielgruppe.
Tunnelberechtigungen konfigurieren
Zum Erstellen eines Tunnels benötigen Sie die Berechtigung iap.tunnelDestGroups.accessViaIAP
in der relevanten Zielgruppe. Sie können die Berechtigung über die
Rolle iap.tunnelResourceAccessor
.
Zum Konfigurieren von Berechtigungen für Zielgruppen benötigen Sie die Berechtigung
Die Berechtigung iap.tunnelDestGroups.setIamPolicy
, die Sie über den
Rolle iap.admin
.
Console
Rufen Sie die Seite "IAP" auf.
Wählen Sie auf dem Tab SSH- und TCP-Ressourcen die Zielgruppe für für die Sie Berechtigungen konfigurieren möchten.
Klicken Sie im angezeigten Steuerfeld auf Hauptkonto hinzufügen und geben Sie eine E-Mail-Adresse ein für die Nutzenden.
Wählen Sie im Bereich Rollen zuweisen eine Rolle aus, die dem Hauptkonto zugewiesen werden soll.
Klicken Sie auf Speichern.
gcloud-CLI
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
.
Informationen zur Tunnelnutzung
Es gibt drei gcloud CLI-Befehle, die Sie bei der Arbeit mit IAP-TCP: start-iap-tunnel, ssh und scp.
IAP-TCP-Befehle wurden aktualisiert um IP- und FQDN-basiertes Tunneling zu unterstützen. Führen Sie die folgenden Schritte aus, um zu IP-Adresse oder FQDN zu wechseln: bei Verwendung der Befehle:
- Geben Sie anstelle des Instanznamens eine IP-Adresse oder einen FQDN an.
- Verwenden Sie
--region
anstelle von--zone
. - Verwenden Sie
--dest-group
, um die zu verwendende Zielgruppe anzugeben. - 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 muss in die private IP-Adresse des Ziels aufgelöst werden. Die Namensauflösung erfolgt innerhalb des von Ihnen angegebenen VPC-Netzwerks, nicht im Netzwerk des Clients. Wenn Sie zum Beispiel einen Tunnel erstellen,
vm.corp.company.com
, der Schritt, mit dem vm.corp.company.com
in eine IP-Adresse umgewandelt wird
erfolgt im Kontext des VPC-Netzwerk.
Die von Ihnen angegebene Region muss mit der Region der Zielgruppe übereinstimmen.
Das angegebene Netzwerk muss mit dem Namen des VPC-Netzwerk übereinstimmen, auf das Zugriff hat
das Ziel. Ein typischer Netzwerkname ist default
. Sie können die Liste der Netzwerke aufrufen,
in der Google Cloud Console auf der Seite „VPC-Netzwerke“. Alternativ können Sie
um die Liste der Netzwerknamen aufzurufen. Führen Sie dazu den folgenden Befehl aus:
gcloud compute networks list --format='value(name)'
Beispiele
In den folgenden Beispielen wird die IP-Adresse 172.16.1.2
als Beispiel verwendet. Jeder Befehl
kann auch einen FQDN (z. B. example.internal.company.com
) in
der IP-Adresse ein.
SSH-Beispiel
Führen Sie den folgenden Befehl aus, um eine SSH-Sitzung zu 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. Es wird also nicht versucht, automatisch
SSH-Schlüssel verwalten und übertragen, wenn sie eine IP-Adresse verwenden.
Wenn Sie den Fehler Permission denied (publickey)
erhalten, wurde die Datei mit den SSH-Schlüsseln vom Befehl nicht gefunden. Um dieses Problem zu beheben, fügen Sie den Pfad zu der 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 ein bestimmter Nutzer anmelden möchten, verwenden Sie das Format USER@IP, anstatt nur die IP anzugeben:
gcloud compute ssh user@172.16.1.2 \ --region=us-central1 \ --dest-group=DESTINATION_GROUP_NAME \ --network=default \ --tunnel-through-iap
Ist das Konto passwortgeschützt, müssen Sie ein Passwort eingeben. Wenn das Konto durch ein privates oder öffentliches SSH-Schlüsselpaar geschützt ist, musst du es wie oben beschrieben mit dem 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:
folgenden Befehl:
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
Beachten Sie, dass der Zielcomputer in diesem Beispiel Port 8085
überwachen muss.
Nachdem Sie einen Tunnel erstellt haben, können Sie mit einem beliebigen Tool wie PuTTy eine Verbindung herstellen.
SCP-Beispiel
Führen Sie den folgenden Befehl aus, um SCP für eine Datei auf 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. Es wird also nicht versucht, automatisch
SSH-Schlüssel verwalten und übertragen, wenn sie eine IP-Adresse verwenden.
Beispiel für SSH ProxyCommand
Fügen Sie einen Eintrag hinzu, um den Befehl als ProxyCommand zu verwenden, der immer einen Tunnel zu 172.16.1.2
herstellt
in Ihre ~/.ssh/config
-Konfiguration oder eine entsprechende Konfiguration, 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 ProxyCommand auch so einrichten, dass er viele Hostnamen verarbeitet, wie in den folgendes Beispiel:
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