Auf dieser Seite wird beschrieben, 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 Standard-run.app
-URLs und Load Balancern.
Bekannte Einschränkungen
- Das Projekt muss zu einer Organisation gehören.
- Die Identitäten müssen zu derselben Organisation gehören.
- Sie können IAP nicht sowohl für den Load Balancer als auch für den Cloud Run-Dienst konfigurieren.
- Einige Integrationen wie Pub/Sub funktionieren möglicherweise nicht mehr, wenn IAP aktiviert ist.
Hinweise
IAP über Cloud Run aktivieren
Sie können IAP über Cloud Run aktivieren.
Wenn Sie sowohl IAP als auch IAM für denselben Cloud Run-Dienst verwenden, beachten Sie die folgenden Bedingungen:
Sowohl die IAP- als auch die IAM-Prüfungen werden ausgeführt.
Die IAP-Prüfung erfolgt zuerst und Anfragen werden basierend auf der IAP-Konfiguration akzeptiert oder blockiert.
Wenn die Anfrage die IAP-Prüfung besteht, verwendet IAP sein eigenes Dienstkonto, um sich bei der IAM-Prüfung von Cloud Run zu authentifizieren.
Da die IAP-Prüfung zuerst erfolgt, werden einige Dienste wie Pub/Sub möglicherweise nicht korrekt authentifiziert.
Aktivieren Sie IAP in Cloud Run über die Google Cloud Console oder die Google Cloud CLI.
Console
So aktivieren Sie IAP über Cloud Run:
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren, wählen Sie Container bereitstellen > Dienst aus. Wenn Sie einen vorhandenen Dienst konfigurieren und bereitstellen, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen wie gewünscht aus und wählen Sie dann Erweiterte Authentifizierung mit Identity-Aware Proxy (IAP) aus.
Wenn Sie einen vorhandenen Dienst konfigurieren und bereitstellen, klicken Sie auf den Dienst und wählen Sie dann Erweiterte Authentifizierung mit Identity-Aware Proxy (IAP) aus.
Klicken Sie auf Richtlinie bearbeiten, um eine Richtlinie für den kontextsensitiven Zugriff zu erstellen:
Fügen Sie eine oder mehrere Hauptkonten und optional die Zugriffsebene hinzu, die jedes Hauptkonto für den Anwendungszugriff erfüllen muss.
Klicken Sie auf Speichern.
Klicken Sie auf Speichern.
gcloud
Wenn Sie IAP direkt über Cloud Run aktivieren möchten, fügen Sie beim Bereitstellen Ihrer App das Flag --iap
hinzu:
Stellen Sie Ihren Cloud Run-Dienst mit einem der folgenden Befehle bereit:
Für einen neuen Dienst:
gcloud beta run deploy SERVICE_NAME \ --region=REGION \ --image=IMAGE_URL \ --no-allow-unauthenticated \ --iap
Für einen vorhandenen Dienst:
gcloud beta run services update SERVICE_NAME \ --region=REGION \ --iap
Ersetzen Sie:
- SERVICE_NAME durch den Namen Ihres Cloud Run-Dienstes.
- REGION durch den Namen Ihrer Cloud Run-Region.
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihr Dienst mit aktiviertem IAP konfiguriert ist:
gcloud beta run services describe SERVICE_NAME
Die Ausgabe sollte den folgenden String enthalten:
Iap Enabled: true
Sie leiten jetzt den gesamten Traffic, der an den konfigurierten Cloud Run-Dienst gebunden ist, zur Authentifizierung an IAP weiter, bevor er an den Container übergeben wird.
IAP in Cloud Run deaktivieren
Sie können IAP über die Google Cloud Console oder die Google Cloud CLI deaktivieren.
Console
So deaktivieren Sie IAP in Cloud Run:
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Klicken Sie auf den vorhandenen Dienst, den Sie ändern möchten.
Klicken Sie auf Sicherheit und entfernen Sie dann das Häkchen neben Erweiterte Authentifizierung mit Identity-Aware Proxy (IAP).
Klicken Sie auf Speichern.
gcloud
Wenn Sie IAP direkt über Cloud Run deaktivieren möchten, fügen Sie beim Bereitstellen Ihrer App das Flag --no-iap
hinzu:
Stellen Sie Ihren Cloud Run-Dienst mit einem der folgenden Befehle bereit:
Für einen neuen Dienst:
gcloud beta run deploy SERVICE_NAME \ --region=REGION \ --image=IMAGE_URL \ --no-iap
Für einen vorhandenen Dienst:
gcloud beta run services update SERVICE_NAME \ --region=REGION \ --no-iap
Ersetzen Sie:
- SERVICE_NAME durch den Namen Ihres Cloud Run-Dienstes.
- REGION durch den Namen Ihrer Cloud Run-Region.
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
us-docker.pkg.dev/cloudrun/container/hello:latest
. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die FormLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihr Dienst nicht mehr mit aktiviertem IAP konfiguriert ist:
gcloud beta run services describe SERVICE_NAME
Die Ausgabe sollte den folgenden String nicht mehr enthalten:
Iap Enabled: true
Sie leiten nicht mehr den gesamten Traffic, der an den konfigurierten Cloud Run-Dienst gebunden ist, zur Authentifizierung an IAP weiter, bevor er an den Container übergeben wird.
Nutzer- oder Gruppenzugriff verwalten
Standardmäßig verwendet IAP für Cloud Run Identitäten innerhalb der Organisation mit Google-Konten. Sie können den Zugriff auf einen Cloud Run-Dienst über die Google Cloud Console oder die Google Cloud CLI hinzufügen oder entfernen.
Console
So fügst du Zugriffsrechte hinzu oder entfernst sie:
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Klicken Sie auf den vorhandenen Dienst, den Sie ändern möchten, und dann auf Sicherheit.
Klicken Sie unter IAP auf Richtlinie bearbeiten.
Wenn Sie Zugriff gewähren möchten, geben Sie das Hauptkonto und optional die Zugriffsebene(n) ein, die Sie hinzufügen möchten.
Wenn Sie den Zugriff für ein vorhandenes Hauptkonto entfernen möchten, klicken Sie neben Zugriffsebenen auf das Symbol Richtlinie löschen.
Klicken Sie auf Speichern.
gcloud
Wenn Sie einzelnen Nutzern oder Gruppen in Ihrer Organisation Zugriff auf einen Cloud Run-Dienst hinzufügen oder entfernen möchten, führen Sie einen der folgenden Befehle aus:
So fügst du Zugriffsrechte hinzu:
gcloud beta iap web add-iam-policy-binding \ --member=user:USER_EMAIL \ --role=roles/iap.httpsResourceAccessor \ --region=REGION \ --resource-type=cloud-run \ --service=SERVICE_NAME
So entfernen Sie den Zugriff:
gcloud beta iap web remove-iam-policy-binding \ --member=user:USER_EMAIL \ --role=roles/iap.httpsResourceAccessor \ --region=REGION \ --resource-type=cloud-run \ --service=SERVICE_NAME
Ersetzen Sie:
- USER_EMAIL mit der E-Mail-Adresse des Nutzers.
- REGION durch den Namen Ihrer Cloud Run-Region.
- SERVICE_NAME durch den Namen Ihres Cloud Run-Dienstes.
Fehlerbehebung
Fehler beim Dienst-Agent führt zu Fehler bei der IAM-Festlegung
Wenn Sie IAP zum ersten Mal in einem neuen Projekt aktivieren, kann der folgende Fehler auftreten:
Setting IAM permissions failed
Das liegt daran, dass der Cloud Run-Dienst-Agent fehlgeschlagen ist. Um das Problem zu beheben, aktivieren Sie die IAP noch einmal oder legen Sie die IAM-Richtlinie manuell fest.
Nächste Schritte
- Eine Anleitung zum Aktivieren von IAP mit IAP über einen Backend-Dienst oder Load Balancer finden Sie unter IAP für Cloud Run aktivieren.
- Informationen zu Problemen beim Aktivieren von IAP für Cloud Run finden Sie unter Fehlerbehebung.
- Externe Identitäten aktivieren
- OAuth-Konfiguration aktivieren
- Zugriff auf mit IAP gesicherte Ressourcen verwalten
- Mithilfe von Organisationsrichtlinien die Aktivierung von IAPs steuern