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.
Ü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 Sie externe Ressourcen haben, die nicht über Cloud Interconnect oder ein VPN mitGoogle Cloud verbunden sind Google Cloud , können Sie für diese Ressourcen IAP-TCP-Weiterleitung verwenden.
Hinweis
Wenn Sie einen Tunnel zu Ressourcen außerhalb von Google Cloudbenötigen, müssen Sie eine Hybridkonnektivität konfigurieren. Eine Hybridkonnektivität ist erforderlich, um Ihre externen Ressourcen, die nicht zuGoogle Cloud gehören, mitGoogle Cloudzu verbinden. 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
ankündigen, damit die Ziele Antworttraffic über Cloud VPN oder Cloud Interconnect und nicht über das Internet zurücksenden. Wenn Sie diese Konfiguration nicht haben, können Sie keine Tunnel zu Ressourcen außerhalb Ihres Google Cloud -Projekts erstellen.
Wenn Sie Ihren Cloud Router so konfigurieren möchten, dass er den IAP-TCP-IP-Bereich 35.235.240.0/20
anbietet, folgen Sie der Anleitung unter Benutzerdefinierte IP-Bereiche bewerben.
In den folgenden Anleitungen finden Sie gcloud-Beispiele für die Ausführung 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 können sich überschneiden, um mehr Flexibilität zu ermöglichen.
Wenn Sie eine Zielgruppe erstellen, 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.
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 Zuweisen einer einzelnen Rolle finden Sie in der IAM-Dokumentation unter Einzelne Rolle zuweisen.
Console
Rufen Sie die IAP-Seite auf und wählen Sie ein Projekt aus, falls noch keins ausgewählt ist.
Klicken Sie auf dem Tab SSH- und TCP-Ressourcen auf Zielgruppe erstellen.
Geben Sie einen Namen für die Gruppe ein. Der Gruppenname darf nur Kleinbuchstaben (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, z. B.
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 in 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: Der Name Ihrer Gruppe. 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 besteht, 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 Wildcard-Präfix hat, wird er mit jedem Hostnamen mit der angegebenen Endung abgeglichen. Andernfalls ist eine genaue Übereinstimmung erforderlich. Wenn eine Anfrage mit einem IP-Bereich oder FQDN übereinstimmt, gilt sie als Übereinstimmung.
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 sich die Details einer Zielgruppe ansehen, sie ändern und entfernen.
Console
Rufen Sie die IAP-Seite auf und klicken Sie auf den Tab SSH- und TCP-Ressourcen.
Klicken Sie auf den Namen der Zielgruppe, um die Details aufzurufen.
Wenn Sie eine Zielgruppe ändern möchten, wählen Sie sie aus und klicken Sie dann 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 sie aus und klicken Sie dann auf das Papierkorbsymbol.
gcloud-CLI
Weitere Informationen zum Verwalten von Zielgruppen mit der gcloud CLI finden Sie unter gcloud-Befehle für Zielgruppen.
Tunnelberechtigungen konfigurieren
Zum Erstellen eines Tunnels benötigen Sie die Berechtigung iap.tunnelDestGroups.accessViaIAP
für die entsprechende Zielgruppe. Sie können die Berechtigung über die Rolle iap.tunnelResourceAccessor
gewähren.
Wenn Sie Berechtigungen für Zielgruppen konfigurieren möchten, benötigen Sie die Berechtigung iap.tunnelDestGroups.setIamPolicy
, die Sie über die Rolle iap.admin
gewähren können.
Console
Rufen Sie die IAP-Seite auf.
Wählen Sie auf dem Tab SSH- und TCP-Ressourcen die Zielgruppe aus, für die Sie Berechtigungen konfigurieren möchten.
Klicken Sie im sich öffnenden Bereich auf Hauptkonto hinzufügen und geben Sie eine E-Mail-Adresse für den Nutzer ein.
Wählen Sie im Abschnitt Rollen zuweisen eine Rolle aus, die Sie dem Hauptkonto zuweisen möchten.
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
.
Tunnelnutzung
Es gibt drei gcloud-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. Wenn Sie zu einer IP-Adresse oder einem FQDN wechseln möchten, gehen Sie so vor:
- Geben Sie anstelle des Instanznamens eine IP-Adresse oder einen FQDN an.
- Verwenden Sie
--region
anstelle von--zone
. - Verwenden Sie
--dest-group
, um die 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 einen FQDN verwenden, muss er 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 beispielsweise versuchen, einen Tunnel zu vm.corp.company.com
zu erstellen, erfolgt die Umwandlung von vm.corp.company.com
in eine IP-Adresse im Kontext des VPC-Netzwerks.
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 auf der Seite „VPC-Netzwerke“ in der Google Cloud Console aufrufen oder sie durch Ausführen des folgenden Befehls abrufen:
gcloud compute networks list --format='value(name)'
Beispiele
In den folgenden Beispielen wird die Beispiel-IP-Adresse 172.16.1.2
verwendet. Anstelle der IP-Adresse kann auch ein FQDN (z. B. example.internal.company.com
) verwendet werden.
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.
Hinweis: --plain
ist impliziert. Bei Verwendung einer IP-Adresse werden SSH-Schlüssel also nicht automatisch verwaltet und gesendet.
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 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 Format USER@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 wie oben angegeben 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 herzustellen.
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
Beachten Sie, dass der Zielcomputer in diesem Beispiel Port 8085
überwachen muss.
Nachdem Sie einen Tunnel eingerichtet haben, können Sie mit einem beliebigen Tool wie PuTTY eine Verbindung herstellen.
SCP-Beispiel
Führen Sie den folgenden Befehl aus, um eine Datei per SCP 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
Hinweis: --plain
ist impliziert. Bei Verwendung einer IP-Adresse werden SSH-Schlüssel also nicht automatisch verwaltet und gesendet.
Beispiel für SSH ProxyCommand
Wenn Sie den Befehl als ProxyCommand verwenden möchten, der immer einen Tunnel zu 172.16.1.2
herstellt, fügen Sie Ihrer ~/.ssh/config
-Konfiguration oder einer entsprechenden Konfiguration einen 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
Der ProxyCommand wird wirksam, wenn Sie den folgenden Befehl ausführen: ssh example
Sie können den ProxyCommand auch so einrichten, dass er viele Hostnamen verarbeitet, 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
Der ProxyCommand wird wirksam, wenn Sie den folgenden Befehl ausführen: ssh example.internal.company.com