IAP für Cloud Run aktivieren

Auf dieser Seite wird erläutert, wie Sie einen Cloud Run-Dienst mit Identity-Aware Proxy (IAP) sichern.

Bekannte Beschränkung

Eine bekannte Einschränkung ist, dass IAM so konfiguriert werden muss, dass allUsers die Rolle „Aufrufer“ für den Cloud Run-Dienst gewährt. Sie können den Zugriff weiterhin auf Netzwerkebene sperren, sodass alle externen Anfragen über IAP autorisiert werden müssen. Weitere Informationen finden Sie unter Cloud Run zur Beschränkung des Zugriffs konfigurieren. Diese Einschränkung wird behoben, sodass Sie projektspezifischen IAP-Zugriff auf den Cloud Run-Dienst explizit gewähren können.

Hinweis

Zum Aktivieren von IAP für Cloud Run benötigen Sie Folgendes:

  • Ein Cloud Console-Projekt mit aktivierter Abrechnung.
  • Eine Gruppe von einem oder mehreren Cloud Run-Diensten, die von einem Load-Balancer bereitgestellt werden.
  • Anwendungscode, der überprüft, ob alle Anfragen eine Identität haben.

IAP aktivieren

Console

Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Projekts konfiguriert haben, müssen Sie das tun. Für den OAuth-Zustimmungsbildschirm sind eine E-Mail-Adresse und ein Produktname erforderlich.

  1. Rufen Sie den OAuth-Zustimmungsbildschirm auf.
  2. Wählen Sie unter Support-E-Mail-Adresse die E-Mail-Adresse aus, die als öffentlicher Kontakt angezeigt werden soll. Dies muss Ihre E-Mail-Adresse oder die einer Google-Gruppe sein, deren Inhaber Sie sind.
  3. Geben Sie unter Name der Anwendung den Namen der Anwendung ein, der angezeigt werden soll.
  4. Geben Sie optionale Details ein.
  5. Klicken Sie auf Speichern.

Wenn Sie später Informationen wie den Produktnamen oder die E-Mail-Adresse auf dem OAuth-Zustimmungsbildschirm ändern möchten, wiederholen Sie die vorherigen Schritte, um den Zustimmungsbildschirm zu konfigurieren.

IAP-Zugriff einrichten

  1. Rufen Sie die Seite Identity-Aware Proxy auf.
  2. Wählen Sie das Projekt aus, das Sie mit IAP sichern möchten.
  3. Klicken Sie unter HTTPS-RESOURCES auf das Kästchen neben dem Back-End-Dienst des Load-Balancers, dem Sie Mitglieder hinzufügen möchten.
  4. Klicken Sie auf der rechten Seite auf Mitglied hinzufügen.
  5. Geben Sie im Dialogfeld Mitglieder hinzufügen die Konten von Gruppen oder Einzelpersonen ein, denen Sie die Rolle Nutzer von IAP-gesicherten Web-Apps für das Projekt zuweisen möchten. Folgende Kontoarten sind als Mitglieder zulässig:

    • Google-Konto: nutzer@gmail.com – Das kann auch ein Google Workspace-Konto wie nutzer@google.com oder eine andere Workspace-Domain sein.
    • Google Group: admins@googlegroups.com
    • Dienstkonto: server@example.gserviceaccount.com
    • Google Workspace-Domain: beispiel.de
  6. Wählen Sie in der Drop-down-Liste Rollen die Option Cloud IAP-Nutzer mit IAP-gesicherter Web-App aus.

  7. Klicken Sie auf Speichern.

IAP aktivieren

  1. Suchen Sie auf der Seite Identity-Aware Proxy unter HTTPS-RESSOURCEN nach dem Back-End-Dienst des Load-Balancers, auf den Sie den Zugriff beschränken möchten. Wenn Sie IAP für eine Ressource aktivieren möchten, stellen Sie den Schieberegler in der Spalte „IAP“ auf „Ein“ oder „Aus“. So aktivieren Sie IAP:
    • Mindestens ein Protokoll in der Load-Balancer-Front-End-Konfiguration muss HTTPS sein. Weitere Informationen dazu finden Sie unter Lastenausgleichsmodul einrichten.
    • Du benötigst die Berechtigungen „compute.backendServices.update“, „clientauthconfig.clients.create“ und „clientauthconfig.clients.getWithSecret“. Diese Berechtigungen erhalten Sie über Rollen wie etwa "Projektbearbeiter". Weitere Informationen finden Sie unter Zugriff auf IAP-gesicherte Ressourcen verwalten.
  2. Klicken Sie im angezeigten Fenster IAP aktivieren auf Aktivieren, um zu bestätigen, dass IAP Ihre Ressource schützen soll. Nachdem Sie IAP aktiviert haben, sind für alle Verbindungen zu Ihrem Load-Balancer Anmeldedaten erforderlich. Nur Konten mit der Rolle Nutzer von IAP-gesicherten Web-Apps für das Projekt erhalten Zugriff.

gcloud

  1. Folgen Sie der Anleitung unter OAuth-Clients für IAP programmatisch erstellen, um den OAuth-Zustimmungsbildschirm zu konfigurieren und den OAuth-Client zu erstellen.
  2. Speichern Sie die OAuth-Client-ID und das Secret.
  3. Aktivieren Sie IAP, indem Sie entweder den Befehl auf globaler oder regionaler Ebene ausführen, je nachdem, ob der Back-End-Dienst des Load-Balancers global oder regional ist. Verwenden Sie die OAuth-Client-ID und das Secret aus dem vorherigen Schritt.

    Globaler Bereich:

    gcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    

    Regionaler Umfang:

    gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    
    Ersetzen Sie Folgendes:

    • BACKEND_SERVICE_NAME: der Name des Back-End-Dienstes.
    • CLIENT_ID: Die OAuth-Client-ID aus dem vorherigen Schritt.
    • CLIENT_SECRET: Der OAuth-Clientschlüssel aus dem vorherigen Schritt.
    • REGION_NAME: Die Region, in der Sie IAP aktivieren möchten.

Nachdem Sie IAP aktiviert haben, können Sie mit der Google Cloud-Befehlszeile eine IAP-Zugriffsrichtlinie mit der Rolle „Identitäts- und Zugriffsverwaltung“ roles/iap.httpsResourceAccessor bearbeiten. Weitere Informationen findest du unter Rollen und Berechtigungen verwalten.

Cloud Run konfigurieren, um den Zugriff zu beschränken

Führen Sie die folgenden Schritte aus, um den Zugriff auf Ihren Cloud Run-Dienst zu konfigurieren.

  1. Konfigurieren Sie den Cloud Run-Dienst und legen Sie eingehenden Traffic auf Internes und Cloud Load Balancing fest. Weitere Informationen finden Sie unter Eingehen von eingehendem Traffic für Cloud Run einschränken.

    Dieser Schritt stellt sicher, dass nur interne Clients und der externe Load-Balancer den Cloud Run-Dienst aufrufen können und direkte Anfragen aus dem öffentlichen Internet blockiert werden.

  2. Gewähren Sie allUsers für den Cloud Run-Dienst die Rolle „Aufrufer“. Weitere Informationen finden Sie unter Öffentlichen (nicht authentifizierten) Zugriff zulassen.

    Dieser Schritt ist wichtig, damit die IAP-Konfiguration richtig funktioniert, da er Cloud Run so konfiguriert, dass Anfragen nicht automatisch authentifiziert und autorisiert werden. Stattdessen wird von IAP die Authentifizierung und Autorisierung abgeschlossen.

Beachten Sie, dass diese Konfiguration allen Clients Zugriff gewährt, die als intern betrachtet werden (gemäß der Definition unter Eingehenden Traffic für Cloud Run einschränken), ohne dass sie sich authentifizieren müssen. Alle anderen Clients, die über den externen Load-Balancer eingehen, authentifizieren sich über IAP. Dies ist eine bekannte Einschränkung, die in Zukunft behoben wird.