Identity-Aware Proxy (IAP) mit nur einem Klick mit Cloud Run verwenden

Identity-Aware Proxy (IAP) mit nur einem Klick mit Cloud Run verwenden

Informationen zu diesem Codelab

subjectZuletzt aktualisiert: Juni 12, 2025
account_circleVerfasst von einem Google-Mitarbeiter

1. Einführung

In diesem Codelab erfahren Sie, wie Sie Identity-Aware Proxy über Cloud Run aktivieren und den Traffic für einen Cloud Run-Dienst schützen, indem Sie ihn zur Authentifizierung an IAP weiterleiten. Wenn Sie IAP über Cloud Run aktivieren, können Sie Traffic mit nur einem Klick über alle Ingress-Pfade weiterleiten, einschließlich der Standard-run.app-URLs und Load Balancer.

In diesem Codelab stellen Sie den Containerdienst „Hallo“ bereit. Nur Nutzer, die über IAP auf die Zulassungsliste gesetzt wurden, haben Zugriff auf den Dienst.

Weitere bekannte Einschränkungen finden Sie in der Dokumentation zu IAP in Cloud Run.

Lerninhalte

  • IAP mit nur einem Klick für Cloud Run aktivieren
  • Nutzeridentität über IAP Zugriff auf einen Cloud Run-Dienst gewähren

2. Hinweis

APIs aktivieren

Bevor Sie dieses Codelab verwenden können, müssen Sie die folgenden APIs aktivieren. Führen Sie dazu Folgendes aus:

gcloud services enable \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    iap.googleapis.com \
    run.googleapis.com \
    cloudresourcemanager.googleapis.com

3. Umgebungsvariablen erstellen

Umgebungsvariablen festlegen, die in diesem Codelab verwendet werden

export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=<YOUR_REGION>

export SERVICE_NAME=iap-example
export SERVICE_ACCOUNT_NAME=iap-example-sa
export PROJECT_NUMBER=$(gcloud projects describe "${PROJECT_ID}" --format="value(projectNumber)")

4. Dienst mit aktiviertem IAP bereitstellen

Erstellen Sie das Dienstkonto, das als Cloud Run-Dienstidentität verwendet wird, mit dem folgenden Befehl:

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
 
--display-name="IAP codelab CR identity"

Stellen Sie das Container-Image „hello“ mit aktivierter IAP bereit.

gcloud beta run deploy ${SERVICE_NAME} \
    --image=us-docker.pkg.dev/cloudrun/container/hello \
    --region=${REGION} \
    --service-account $SERVICE_ACCOUNT_NAME@${PROJECT_ID}.iam.gserviceaccount.com \
    --no-allow-unauthenticated \
    --iap

Hinweis: Wenn Sie jetzt versuchen, auf die Anwendung zuzugreifen, wird die Fehlerseite You don't have access angezeigt. Im nächsten Schritt gewähren Sie einem Nutzer Zugriff über IAP.

5. IAP-Zugriffssteuerung konfigurieren

Erstellen Sie den IAP-Dienst-Agenten.

gcloud beta services identity create --service=iap.googleapis.com --project=${PROJECT_ID}

Weisen Sie dem IAP-Dienstkonto die Rolle „Cloud Run-Aufrufer“ zu.

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
  --member="serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-iap.iam.gserviceaccount.com" \
  --role="roles/run.invoker"

Nutzern Zugriff gewähren, indem Sie bestimmten Nutzern oder Gruppen über IAP Zugriff gewähren

EMAIL_ADDRESS=<YOUR_EMAIL>

gcloud
beta iap web add-iam-policy-binding \
    --resource-type=cloud-run \
    --service=${SERVICE_NAME} \
    --region=${REGION} \
    --member=user:${EMAIL_ADDRESS} \
    --role=roles/iap.httpsResourceAccessor \
    --condition=None

Hinweis: Sie können auch „group:deine-gruppe@beispiel.de“ im Mitgliedsparameter verwenden.

6. Anwendung testen

Zugriff auf die App prüfen

Rufen Sie die URL für den Beispiel-Cloud Run-Dienst ab.

gcloud run services describe ${SERVICE_NAME} --region ${REGION} --format 'value(status.url)'

Öffnen Sie die URL in Ihrem Browser. Sie sollten dann die Meldung „It's Running! Herzlichen Glückwunsch, Sie haben ein Container-Image in Cloud Run bereitgestellt.“

Entfernen des Zugriffs auf die App bestätigen

Sie können Ihren Zugriff auf die App mit dem folgenden Befehl entfernen.

gcloud beta iap web remove-iam-policy-binding \
    --resource-type=cloud-run \
    --service=${SERVICE_NAME} \
    --region=${REGION} \
    --member=user:${EMAIL_ADDRESS} \
    --role=roles/iap.httpsResourceAccessor

Warten Sie einige Minuten, bis die IAM-Richtlinie übernommen wurde. Wenn Sie jetzt versuchen, die URL in Ihrem Browser zu öffnen, wird die Fehlerseite You don't have access angezeigt.

7. Sie haben das Lab erfolgreich abgeschlossen.

Herzlichen Glückwunsch zum Abschluss des Codelabs.

Weitere Informationen finden Sie in der Dokumentation zu Cloud Run-In-App-Produkten.

Behandelte Themen

  • IAP mit nur einem Klick für Cloud Run aktivieren
  • Nutzeridentität über IAP Zugriff auf einen Cloud Run-Dienst gewähren

8. Bereinigen

Wenn die Cloud Run-Dienste versehentlich mehrmals aufgerufen werden als Ihre monatliche Cloud Run-Aufrufzuweisung im kostenlosen Tarif, können Sie den in Schritt 6 erstellten Cloud Run-Dienst iap-example löschen, um unbeabsichtigte Kosten zu vermeiden.

Wenn Sie den Cloud Run-Dienst löschen möchten, rufen Sie die Cloud Console unter https://console.cloud.google.com/run auf und löschen Sie den Dienst iap-example.

Wenn Sie das gesamte Projekt löschen möchten, rufen Sie Ressourcen verwalten auf, wählen Sie Ihr Projekt aus und klicken Sie auf „Löschen“. Wenn Sie das Projekt löschen, müssen Sie die Projekte in Ihrem Cloud SDK ändern. Sie können eine Liste aller verfügbaren Projekte aufrufen, indem Sie gcloud projects list ausführen.