Schritt 3: Zugriff konfigurieren
In diesem Abschnitt finden Sie Informationen zu verschiedenen Möglichkeiten, je nach Bedarf Zugriff auf Ihre MDE-Bereitstellung zu gewähren.
SSH-Tunneling über IAP
Wenn Sie eine Verbindung zu den privaten IP-Adressen der MDE-Dienste herstellen möchten, können Sie einen SSH-Tunnel zu einer Proxy-VM verwenden. So können Sie lokale Tools wie Postman für die Interaktion mit den MDE-APIs verwenden.
Bei der Standardbereitstellung von MDE wird eine Proxy-VM namens mde-proxy erstellt. Diese Maschine kann eingehende Anfragen an das MDE API-Gateway oder die MDE-Weboberfläche weiterleiten. Diese VM hat nur eine private IP-Adresse, aber mit IAP können Sie mithilfe von Identity-Aware Proxy (IAP) for TCP Forwarding einen sicheren SSH-Tunnel zu dieser Maschine erstellen.
Im restlichen Teil dieses Abschnitts wird beschrieben, wie Sie IAP für das Tunneln von Traffic zu mde-proxy konfigurieren und wie Sie einen Tunnel von Ihrer Workstation zu mde-proxy erstellen:
Rufen Sie in der Google Cloud Console IAP auf und klicken Sie auf API aktivieren. Dieser Vorgang kann einige Minuten dauern.
Rufen Sie in der Google Cloud Console IAP auf und klicken Sie auf SSH- UND TCP-RESSOURCEN.
Erteilen Sie Nutzern, die zur Verwendung von IAP autorisiert sind, die Berechtigung, über IAP eine Verbindung zu
mde-proxyherzustellen:Bevor Nutzer IAP verwenden können, um eine Verbindung zu
mde-proxyherzustellen, müssen Sie ihnen dieroles/iap.tunnelResourceAccessor-Rolle zuweisen. Folgen Sie dazu der Anleitung unten:Wählen Sie mde-proxy aus der Liste aus.
Klicken Sie in der rechten Seitenleiste auf Hauptkonto hinzufügen.
Geben Sie die E-Mail-Adresse des Hauptkontos ein, dem Sie Zugriff gewähren möchten.
Wählen Sie die Rolle
IAP-secured Tunnel Useraus.
Erstellen Sie mit dem folgenden Befehl einen Tunnel zur MDE API:
export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy" \ --format="value(zone)") gcloud compute ssh mde-proxy \ --zone "$MDE_PROXY_ZONE" --tunnel-through-iap \ -- -N -L 8080:api.mde.cloud.google.com:80Nachdem Sie den Befehl ausgeführt haben, sind die MDE-APIs unter
http://localhost:8080verfügbar.Erstellen Sie einen Tunnel zur MDE-Webschnittstelle.
Wenn Sie in Schritt 3 einen Tunnel zur MDE API erstellt haben, können Sie ein neues Terminal öffnen, um die Befehle später auszuführen. Die SSH-Tunnel zur MDE API und zur MDE-Weboberfläche können parallel ausgeführt werden.
export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy" \ --format="value(zone)") gcloud compute ssh mde-proxy \ --zone "$MDE_PROXY_ZONE" --tunnel-through-iap \ -- -N -L 8081:ui.mde.cloud.google.com:80Nachdem Sie den Befehl ausgeführt haben, ist die MDE-Weboberfläche unter
http://localhost:8081verfügbar.
Identity-Aware Proxy konfigurieren
Mit Identity-Aware Proxy (IAP) können Sie sicher eine Verbindung zu den internen IP-Adressen der MDE API und der Weboberfläche herstellen. Außerdem können Sie den externen Zugriff auf die MDE-Weboberfläche auf autorisierte Nutzer beschränken, wenn Sie sie mit der Option „Externer Load Balancer“ bereitgestellt haben.
Wenn Sie IAP verwenden möchten, müssen Sie zuerst die IAP-Dienst-API aktivieren (falls noch nicht geschehen) und den OAuth-Bildschirm konfigurieren:
Rufen Sie in der Google Cloud Console IAP auf und klicken Sie auf API aktivieren. Dieser Vorgang kann einige Minuten dauern.
So konfigurieren Sie den OAuth-Zustimmungsbildschirm für IAP:
Rufen Sie in der Google Cloud Console die Seite Google Auth Platform auf und wählen Sie bei Aufforderung das MDE-Bereitstellungsprojekt aus.
- Klicken Sie auf der Übersichtsseite auf OAuth-Client erstellen.
- Wählen Sie als Anwendungstyp Webanwendung aus.
- Geben Sie den Namen der Anwendung ein, der angezeigt werden soll, z. B.
MDE. - Klicken Sie im Pop-up-Fenster auf Erstellen und OK.
- Prüfen Sie auf der Seite Branding, ob App-Name, E‑Mail-Adresse für den Nutzersupport und Kontaktdaten des Entwicklers angezeigt werden.
Wenn Sie später Informationen wie den Produktnamen oder die E‑Mail-Adresse auf dem OAuth-Zustimmungsbildschirm ändern möchten, müssen Sie die vorherigen Schritte zur Konfiguration des Zustimmungsbildschirms wiederholen.
Zugriff auf die Weboberfläche des externen HTTP-Load-Balancers konfigurieren
In diesem Abschnitt konfigurieren Sie den Zugriff auf die MDE-Weboberfläche über den externen HTTP-Load-Balancer mit IAP.
Wenn Sie den externen HTTP-Load-Balancer für die MDE-Weboberfläche aktiviert haben, müssen Sie IAP verwenden, um den Zugriff auf die Anwendung auf autorisierte Nutzer zu beschränken.
Hinweis
Führen Sie die folgenden Schritte aus:
- Sie haben MDE über die MDE-Weboberfläche bereitgestellt.
- Sie haben die MDE-Weboberfläche mit einem externen HTTP-Load-Balancer bereitgestellt.
- Sie haben die Schritte zur allgemeinen IAP-Konfiguration abgeschlossen.
Schritte
Rufen Sie in der Google Cloud Console die Seite IAP auf.
Suchen Sie die Ressource, die dem externen UI-Dienst entspricht (suchen Sie nach
mde-ui-ext-service).Stellen Sie den Schieberegler in der Spalte IAP für diese Ressource auf Aktiviert.
Klicken Sie im Bestätigungsdialogfeld auf Aktivieren.
Aktivieren Sie das Kästchen neben dem Ressourcennamen.
Klicken Sie in der rechten Seitenleiste auf Hauptkonto hinzufügen.
Geben Sie die E‑Mail-Adresse des Nutzers oder der Gruppe ein, dem bzw. der Sie Zugriff gewähren möchten.
Wählen Sie im Drop-down-Menü Rolle die Option Cloud IAP > Nutzer von IAP-gesicherten Web-Apps aus.
Klicken Sie auf Speichern.
Organisationsübergreifender Zugriff (optional)
Standardmäßig verwendet IAP von Google verwaltete OAuth-Clients, die den Zugriff auf Nutzer innerhalb derselben Google Cloud Organisation wie das Projekt beschränken. Wenn für Ihre Bereitstellung Zugriff von externen Nutzern (Partner mit einer anderen Domain) erforderlich ist, müssen Sie einen benutzerdefinierten OAuth-Client mit dem Nutzertyp Extern verwenden.
Weitere Informationen finden Sie in der offiziellen Google Cloud Dokumentation unter Benutzerdefinierte OAuth-Clients mit IAP verwenden und IAP für GKE aktivieren.
Sie können dies mit einer der folgenden Methoden konfigurieren:
Methode A: Direkte Konsolenkonfiguration (keine GKE-Secrets)
Wenn Ihre GKE-BackendConfig die IAP-Einstellungen nicht verwaltet (d. h. keinen iap-Block hat, sodass GKE-Ingress vorhandene Einstellungen übernehmen kann), können Sie den benutzerdefinierten Client direkt in der Konsole konfigurieren:
- Konfigurieren Sie den OAuth-Zustimmungsbildschirm Ihres Projekts als Extern (siehe Abschnitt OAuth-Zustimmungsbildschirm konfigurieren oben). Wenn die App weiterhin den Status „Test“ hat, müssen Sie die externen Nutzer der Liste Testnutzer hinzufügen.
- Rufen Sie die Seite „IAP“ auf.
- Klicken Sie für die Ressource
mde-ui-ext-servicein der Spalte Aktionen auf das Dreipunkt-Menü und wählen Sie Einstellungen aus. - Wählen Sie Benutzerdefiniertes OAuth aus.
- Klicken Sie auf Anmeldedaten automatisch generieren oder geben Sie vorhandene Anmeldedaten an, wenn Sie sie manuell in „APIs & Dienste“ erstellt haben.
- Klicken Sie auf Speichern.
Methode B: Von GKE verwaltete Konfiguration (mit Kubernetes-Secrets)
Wenn Sie die IAP-Konfiguration lieber mit Kubernetes-Manifesten (GitOps) verwalten möchten, müssen Sie die Anmeldedaten in einem Secret speichern und in Ihrem BackendConfig darauf verweisen:
- Konfigurieren Sie den OAuth-Zustimmungsbildschirm als Extern und erstellen Sie OAuth-Clientanmeldedaten manuell unter APIs & Dienste > Anmeldedaten (Webanwendungstyp).
- Erstellen Sie ein Kubernetes-Secret im Cluster:
sh kubectl create secret generic iap-oauth-secret \ --namespace=mde \ --from-literal=client_id=YOUR_CLIENT_ID \ --from-literal=client_secret=YOUR_CLIENT_SECRET - Aktualisieren Sie die
BackendConfigfür Ihren Dienst, damit auf das Secret verwiesen wird:yaml spec: iap: enabled: true oauthclientCredentials: secretName: iap-oauth-secret
DNS für die MDE-Weboberfläche konfigurieren
Wenn Sie den externen HTTP-Load-Balancer für die MDE-Weboberfläche aktiviert haben, müssen Sie den A-Eintrag des Domainnamens, den Sie der Variablen MDE_UI_DOMAIN_NAME in input.tfvars zugewiesen haben, auf die IP-Adresse des externen HTTP-Load-Balancers festlegen, der bereitgestellt wurde, um die Bereitstellung des von Google verwalteten SSL-Zertifikats abzuschließen.
Sie können die IP-Adresse des externen HTTP-Load-Balancers mit dem folgenden Befehl ermitteln:
gcloud compute addresses list --filter="name~'.*mde-ui.*'" --format="value(address)" --global
Wenden Sie sich an Ihren DNS-Host, um Informationen zum Erstellen eines A-Eintrags zu erhalten.