Auf dieser Seite wird beschrieben, wie Sie IAP direkt für einen Cloud Run-Dienst aktivieren und Traffic, der für einen Cloud Run-Dienst bestimmt ist, durch Weiterleitung an IAP zur Authentifizierung schützen. Wenn Sie IAP direkt in Cloud Run aktivieren, können Sie den Traffic von allen eingehenden Pfaden, einschließlich der Standard-run.app-URLs und Load Balancer, mit einem einzigen Klick sichern.
Wenn Sie IAP in Cloud Run einbinden, können Sie den Zugriff von Nutzern oder Gruppen auf folgende Weise verwalten:
- Innerhalb der Organisation: Konfigurieren Sie den Zugriff für Nutzer, die sich in derselben Organisation wie Ihr Cloud Run-Dienst befinden.
- Außerhalb der Organisation: Konfigurieren Sie den Zugriff für Nutzer, die anderen Organisationen als Ihr Cloud Run-Dienst angehören.
- Keine Organisation: Konfigurieren Sie den Zugriff in Projekten, die nicht zu einer Google-Organisation gehören.
Bekannte Einschränkungen
- Sie können IAP nicht sowohl für den Load Balancer als auch für den Cloud Run-Dienst konfigurieren.
- Cloud Run erzwingt IAP-Richtlinien, bevor IAM-Prüfungen für das IAP-Dienstkonto durchgeführt werden. Da IAP Anfragen abfängt und die Identität des ursprünglichen Aufrufers ersetzt, können Dienste wie Pub/Sub, die auf ihrer eigenen Authentifizierung basieren, fehlschlagen.
Hinweis
Aktivieren Sie die IAP API:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aktivieren von IAP benötigen:
- Cloud Run-Administrator (
roles/run.admin) für das Projekt -
Zugriff auf den IAP-fähigen Dienst gewähren: IAP-Richtlinienadministrator (
roles/iap.admin) für das Projekt -
Erstellen Sie einen IAP-fähigen Dienst oder aktualisieren Sie einen vorhandenen Dienst, um IAP zu aktivieren:
- Artifact Registry-Leser (
roles/artifactregistry.reader) für die bereitgestellten Container-Images - Dienstkontonutzer (
roles/iam.serviceAccountUser) für die Dienstidentität
- Artifact Registry-Leser (
-
Nutzern, die nicht zu einer Google-Organisation gehören, Zugriff gewähren:
IAP Settings Admin (
roles/iap.settingsAdmin) für das Projekt -
Gewähren Sie Nutzern außerhalb einer Organisation oder Nutzern, die nicht zu einer Organisation gehören, Zugriff:
OAuth Config Editor (
roles/oauthconfig.editor) für das Projekt -
Zugriffsebenen für den kontextsensitiven Zugriff hinzufügen oder verwalten:
- Access Context Manager Reader (
roles/accesscontextmanager.policyReader) für die Organisation und Organisationsbetrachter - Organization Viewer (
roles/resourcemanager.organizationViewer) für die Organisation
- Access Context Manager Reader (
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
IAP über Cloud Run aktivieren
Wir empfehlen, IAP direkt in Cloud Run zu aktivieren.
Aktivieren Sie IAP über Cloud Run mithilfe der Google Cloud Console, der Google Cloud CLI oder Terraform.
Console
Wenn Sie IAP für Cloud Run aktivieren, benötigt IAP Berechtigungen zum Aufrufen Ihres Cloud Run-Dienstes. Wenn Sie IAP über die Google Cloud Console aktivieren, wird diese Berechtigung automatisch erteilt, indem dem IAP-Dienst-Agent die Cloud Run-Invoker-Rolle (roles/run.invoker) zugewiesen wird.
So aktivieren Sie IAP über Cloud Run:
Rufen Sie in der Google Cloud Console Cloud Run auf:
Wählen Sie im Cloud Run-Navigationsmenü die Option Dienste aus:
Wenn Sie einen neuen Dienst konfigurieren, klicken Sie auf Container bereitstellen und füllen Sie die Seite mit den anfänglichen Diensteinstellungen aus.
Wenn Sie einen vorhandenen Dienst konfigurieren, klicken Sie auf den Dienst und dann auf den Tab Sicherheit.
Wählen Sie Authentifizierung erforderlich und dann Identity-Aware Proxy (IAP) aus.
Optional: Wenn Sie Nutzern Zugriff gewähren möchten, folgen Sie der Anleitung unter Nutzer- oder Gruppenzugriff für IAP verwalten. Wenn bei der Konfiguration des Zugriffs für Nutzer außerhalb Ihrer Organisation Probleme auftreten, lesen Sie den Abschnitt Fehlerbehebung. Klicken Sie auf Speichern, um die Konfiguration zu speichern.
Klicken Sie auf Erstellen, um einen neuen Dienst zu erstellen. Klicken Sie auf Unterschied ansehen und erneut bereitstellen und dann auf Änderungen bereitstellen, um einen vorhandenen Dienst zu aktualisieren.
gcloud
Wenn Sie IAP direkt über Cloud Run aktivieren möchten, fügen Sie beim Bereitstellen Ihrer Anwendung das Flag --iap hinzu und gewähren Sie dem IAP-Dienst-Agenten die Aufruferberechtigung:
Stellen Sie Ihren Cloud Run-Dienst mit einem der folgenden Befehle bereit:
Für einen neuen Dienst:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-allow-unauthenticated \ --iapWenn Sie IAP zum ersten Mal in einem Projekt ohne Organisation aktivieren, wird möglicherweise die folgende Warnung angezeigt:
Deploying services with IAP enabled in a project without an organization may require initial setup via the Cloud Console. Please use the Cloud Run UI to enable IAP for the first time in the project.Diese Warnung wird angezeigt, weil Sie OAuth-Clients nicht programmatisch erstellen können. Wir empfehlen, IAP in Cloud Run zuerst direkt über die Google Cloud Console zu aktivieren oder einen benutzerdefinierten OAuth-Client zu konfigurieren und dann Nutzer über die gcloud CLI hinzuzufügen.
Für einen vorhandenen Dienst:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --iapErsetzen Sie Folgendes:
SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.REGION: Der Name Ihrer Cloud Run-Region. Beispiel:europe-west1.IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.PROJECT_NUMBER: Ihre Google Cloud -Projektnummer.
Gewähren Sie dem IAP-Dienst-Agent die Aufruferberechtigung:
gcloud run services add-iam-policy-binding
SERVICE_NAME\ --region=REGION\ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com \ --role=roles/run.invokerErsetzen Sie Folgendes:
SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.REGION: Der Name Ihrer Cloud Run-Region. Beispiel:europe-west1.PROJECT_NUMBER: Ihre Google Cloud -Projektnummer.
Optional. Informationen zum Gewähren des Nutzerzugriffs finden Sie unter Nutzer- oder Gruppenzugriff für IAP verwalten.
Führen Sie den folgenden Befehl aus, um zu prüfen, ob Ihr Dienst mit aktiviertem IAP konfiguriert ist:
gcloud run services describe
SERVICE_NAMEDie Ausgabe sollte den folgenden String enthalten:
Iap Enabled: true
IAP leitet jetzt den gesamten Traffic, der für den konfigurierten Cloud Run-Dienst bestimmt ist, zur Authentifizierung an IAP weiter, bevor er an den Container übergeben wird.
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Wenn Sie IAP mit Terraform aktivieren möchten, müssen Sie Ihre Dienstdefinition aktualisieren und eine IAM-Richtlinienbindung hinzufügen, um IAP die Aufruferberechtigung zu gewähren.
Fügen Sie
iap_enabled = truezu einergoogle_cloud_run_v2_service-Ressource in Ihrer Terraform-Konfiguration hinzu, um IAP für den Dienst zu aktivieren:resource "google_cloud_run_v2_service" "default" { name = "cloudrun-iap-service" location = "europe-west1" ingress = "INGRESS_TRAFFIC_ALL" iap_enabled = true template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } }Fügen Sie Folgendes hinzu, um dem IAP-Dienst-Agent die Rolle
roles/run.invokerzuzuweisen.resource "google_cloud_run_v2_service_iam_member" "iap_invoker" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com" }Ersetzen Sie
PROJECT_NUMBERdurch die Projekt-ID.Optional. Fügen Sie der Ressource
google_cloud_run_v2_service_iam_policyin Ihrer Terraform-Konfiguration Folgendes hinzu, um die aktuellen IAM-Richtliniendaten abzurufen.data "google_cloud_run_v2_service_iam_policy" "policy" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name }
Nutzer- oder Gruppenzugriff verwalten
Standardmäßig verwendet IAP für Cloud Run einen von Google verwalteten OAuth-Client, mit dem Sie organisationsinterne Identitäten mit einer mit einem Nutzer verknüpften E-Mail-Adresse hinzufügen können. Sie können Hauptkonten auch von außerhalb Ihrer Organisation oder ohne Organisation verwalten. Verwenden Sie dazu die Google Cloud Console in IAP, indem Sie einen benutzerdefinierten OAuth-Client erstellen, wie in den folgenden Schritten beschrieben.
Sie können den IAP-Zugriff auf einen Cloud Run-Dienst über die Google Cloud Console, die gcloud CLI oder Terraform hinzufügen oder entfernen.
In der Organisation
Console
So fügen Sie Zugriff hinzu oder entfernen ihn:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
Klicken Sie auf den vorhandenen Dienst, den Sie ändern möchten, und dann auf Sicherheit.
Klicken Sie unter Identity-Aware Proxy (IAP) auf Richtlinie bearbeiten.
Wenn Sie Zugriff hinzufügen möchten, geben Sie das Hauptkonto und optional die Zugriffsebene ein, die Sie hinzufügen möchten, oder lassen Sie die Zugriffsebene leer. Wenn Sie Zugriffsebenen aufrufen und hinzufügen möchten, benötigen Sie die erforderlichen Rollen für Access Context Manager.
Wenn Sie den Zugriff entfernen möchten und die Richtlinie nur ein Hauptkonto enthält, klicken Sie neben Zugriffsebenen auf das Symbol Richtlinie löschen.
Wenn Sie einzelne Hauptkonten aus einer Richtlinie entfernen möchten, klicken Sie auf das Symbol X neben dem Namen des Hauptkontos, das Sie entfernen möchten.
Klicken Sie auf Speichern, um die Nutzerkonfiguration zu speichern.
gcloud
Führen Sie einen der folgenden Befehle aus, um einzelnen Nutzern oder Gruppen Zugriff auf einen Cloud Run-Dienst zu gewähren oder zu entziehen:
So fügst du Zugriffsrechte hinzu:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMESo entfernen Sie den Zugriff:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMESo rufen Sie die Zugriffsrechte auf:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Ersetzen Sie Folgendes:
USER_EMAIL: Die E-Mail-Adresse des Nutzers.REGION: Der Name Ihrer Cloud Run-Region.SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
So gewähren Sie einer Liste von Hauptkonten autoritativen Zugriff:
Verwenden Sie die Ressource
google_iap_web_cloud_run_service_iam_binding, um einer autoritativen Liste von Hauptkonten eine Rolle zuzuweisen. Diese Ressource sorgt dafür, dass nur Mitgliedern in der Liste die Rolle zugewiesen wird. Alle anderen Hauptkonten, denen die Rolle zugewiesen wurde, werden entfernt.Fügen Sie der Ressource
google_iap_web_cloud_run_service_iam_bindingin Ihrer Terraform-Konfiguration Folgendes hinzu.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Ersetzen Sie Folgendes:
PROJECT_ID: der Name des Projekts.REGION: die Google Cloud -Region, z. B.europe-west1.SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.PRINCIPAL: Eine Kennung für die Hauptkonten bzw. Mitglieder, die normalerweise die folgende Form hat:PRINCIPAL_TYPE:ID. Beispiel:user:my-user@example.com. Eine vollständige Liste der fürPRINCIPALzulässigen Werte finden Sie in der Referenz zur Richtlinienbindung.
So gewähren Sie einem einzelnen Hauptkonto Zugriff:
Verwenden Sie die Ressource
google_iap_web_cloud_run_service_iam_member, um einem einzelnen Hauptkonto eine Rolle zuzuweisen, ohne dass sich dies auf andere Hauptkonten auswirkt, die möglicherweise dieselbe Rolle haben.Fügen Sie der Ressource
google_iap_web_cloud_run_service_iam_memberin Ihrer Terraform-Konfiguration Folgendes hinzu.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "/span>PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }<Ersetzen Sie Folgendes:
PROJECT_ID: der Name des Projekts.REGION: die Google Cloud -Region, z. B.europe-west1.SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.PRINCIPAL: Eine Kennung für die Hauptkonten bzw. Mitglieder, die normalerweise die folgende Form hat:PRINCIPAL_TYPE:ID. Beispiel:user:my-user@example.com. Eine vollständige Liste der fürPRINCIPALzulässigen Werte finden Sie in der Referenz zur Richtlinienbindung.
Außerhalb der Organisation
Console
So fügen Sie Nutzer außerhalb Ihrer Organisation über IAP hinzu:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
Klicken Sie auf den vorhandenen Dienst, den Sie ändern möchten, und dann auf Sicherheit.
Klicken Sie auf der Seite mit den Sicherheitsdetails Ihres Cloud Run-Dienstes unter IAP auf Richtlinie bearbeiten.
Klicken Sie auf In IAP konfigurieren. Dadurch wird die Seite mit den Ressourceneinstellungen in IAP geöffnet.
Klicken Sie auf Zustimmungsbildschirm konfigurieren, um den OAuth-Zustimmungsbildschirm zu konfigurieren. Wählen Sie als Zielgruppentyp Extern aus.
Klicken Sie für eine Schnelleinrichtung auf Anmeldedaten automatisch generieren.
Alternativ können Sie der Anleitung unter OAuth-Client-ID erstellen folgen. Wählen Sie Benutzerdefiniertes OAuth aus und geben Sie Ihre benutzerdefinierte Client-ID und Ihren Clientschlüssel ein.
Klicken Sie auf Speichern, um die Konfiguration zu speichern.
Sie können jetzt zu Ihrem Cloud Run-Dienst in Cloud Run zurückkehren, um Hauptkonten außerhalb der Organisation hinzuzufügen.
So fügen Sie Nutzerzugriff hinzu oder entfernen ihn:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
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 hinzufügen möchten, geben Sie das Hauptkonto und optional die Zugriffsebene ein, die Sie hinzufügen möchten, oder lassen Sie die Zugriffsebene leer. Wenn Sie Zugriffsebenen aufrufen und hinzufügen möchten, benötigen Sie die erforderlichen Rollen für Access Context Manager.
Wenn Sie den Zugriff entfernen möchten und die Richtlinie nur ein Hauptkonto enthält, klicken Sie neben Zugriffsebenen auf das Symbol Richtlinie löschen.
Wenn Sie einzelne Hauptkonten aus einer Richtlinie entfernen möchten, klicken Sie auf das Symbol X neben dem Namen des Hauptkontos, das Sie entfernen möchten.
Klicken Sie auf Speichern, um die Nutzerkonfiguration zu speichern.
gcloud
Hinweis
- Wenn Sie Nutzerhauptkonten von außerhalb einer Organisation hinzufügen möchten, müssen Sie zuerst den OAuth-Client konfigurieren.
Führen Sie einen der folgenden Befehle aus, um einzelnen Nutzern oder Gruppen Zugriff auf einen Cloud Run-Dienst zu gewähren oder zu entziehen:
So fügst du Zugriffsrechte hinzu:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMESo entfernen Sie den Zugriff:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMESo rufen Sie die Zugriffsrechte auf:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Ersetzen Sie Folgendes:
USER_EMAIL: Die E-Mail-Adresse des Nutzers.REGION: Der Name Ihrer Cloud Run-Region.SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.
Terraform
Hinweis
- Wenn Sie Nutzerhauptkonten außerhalb einer Organisation hinzufügen möchten, müssen Sie zuerst den OAuth-Client konfigurieren.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
So gewähren Sie einer Liste von Hauptkonten autoritativen Zugriff:
Verwenden Sie die Ressource
google_iap_web_cloud_run_service_iam_binding, um einer autoritativen Liste von Hauptkonten eine Rolle zuzuweisen. Diese Ressource sorgt dafür, dass nur Mitgliedern in der Liste die Rolle zugewiesen wird. Alle anderen Hauptkonten, denen die Rolle zugewiesen wurde, werden entfernt.Fügen Sie der Ressource
google_iap_web_cloud_run_service_iam_bindingin Ihrer Terraform-Konfiguration Folgendes hinzu.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Ersetzen Sie Folgendes:
PROJECT_ID: der Name des Projekts.REGION: die Google Cloud -Region, z. B.europe-west1.SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.PRINCIPAL: Eine Kennung für die Hauptkonten bzw. Mitglieder, die normalerweise die folgende Form hat:PRINCIPAL_TYPE:ID. Beispiel:user:my-user@example.com. Eine vollständige Liste der fürPRINCIPALzulässigen Werte finden Sie in der Referenz zur Richtlinienbindung.
So gewähren Sie einem einzelnen Hauptkonto Zugriff:
Verwenden Sie die Ressource
google_iap_web_cloud_run_service_iam_member, um einem einzelnen Hauptkonto eine Rolle zuzuweisen, ohne dass sich dies auf andere Hauptkonten auswirkt, die möglicherweise dieselbe Rolle haben.Fügen Sie der Ressource
google_iap_web_cloud_run_service_iam_memberin Ihrer Terraform-Konfiguration Folgendes hinzu.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "/span>PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }<Ersetzen Sie Folgendes:
PROJECT_ID: der Name des Projekts.- REGION: die Google Cloud -Region, z. B.
europe-west1. - SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.
- PRINCIPAL: Eine Kennung für die Hauptkonten bzw. Mitglieder, die normalerweise die folgende Form hat: PRINCIPAL_TYPE:ID. Beispiel:
user:my-user@example.com. Eine vollständige Liste der für PRINCIPAL zulässigen Werte finden Sie in der Referenz zur Richtlinienbindung.
Keine Organisation
Console
So fügen Sie Zugriff hinzu oder entfernen ihn:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
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 hinzufügen möchten, geben Sie das Hauptkonto und optional die Zugriffsebene ein, die Sie hinzufügen möchten, oder lassen Sie die Zugriffsebene leer. Wenn Sie Zugriffsebenen aufrufen und hinzufügen möchten, benötigen Sie die erforderlichen Rollen für Access Context Manager.
Wenn Sie den Zugriff entfernen möchten und die Richtlinie nur ein Hauptkonto enthält, klicken Sie neben Zugriffsebenen auf das Symbol Richtlinie löschen.
Wenn Sie einzelne Hauptkonten aus einer Richtlinie entfernen möchten, klicken Sie auf das Symbol X neben dem Namen des Hauptkontos, das Sie entfernen möchten.
Klicken Sie auf Speichern, um die Nutzerkonfiguration zu speichern.
gcloud
Hinweis
- Wenn Sie Nutzer zu einem Projekt ohne Organisation hinzufügen möchten, müssen Sie zuerst die einmalige Einrichtung zum Konfigurieren eines benutzerdefinierten OAuth-Clients ausführen.
Führen Sie einen der folgenden Befehle aus, um einzelnen Nutzern oder Gruppen Zugriff auf einen Cloud Run-Dienst zu gewähren oder zu entziehen:
So fügst du Zugriffsrechte hinzu:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMESo entfernen Sie den Zugriff:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMESo rufen Sie die Zugriffsrechte auf:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Ersetzen Sie Folgendes:
USER_EMAIL: Die E-Mail-Adresse des Nutzers.REGION: Der Name Ihrer Cloud Run-Region.SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.
Terraform
Hinweis
- Wenn Sie Nutzerhauptkonten außerhalb einer Organisation hinzufügen möchten, müssen Sie zuerst den OAuth-Client konfigurieren.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
So gewähren Sie einer Liste von Hauptkonten autoritativen Zugriff:
Verwenden Sie die Ressource
google_iap_web_cloud_run_service_iam_binding, um einer autoritativen Liste von Hauptkonten eine Rolle zuzuweisen. Diese Ressource sorgt dafür, dass nur Mitgliedern in der Liste die Rolle zugewiesen wird. Alle anderen Hauptkonten, denen die Rolle zugewiesen wurde, werden entfernt.Fügen Sie der Ressource
google_iap_web_cloud_run_service_iam_bindingin Ihrer Terraform-Konfiguration Folgendes hinzu.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Ersetzen Sie Folgendes:
PROJECT_ID: der Name des Projekts.REGION: die Google Cloud -Region, z. B.europe-west1.SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.PRINCIPAL: Eine Kennung für die Hauptkonten bzw. Mitglieder, die normalerweise die folgende Form hat:PRINCIPAL_TYPE:ID. Beispiel:user:my-user@example.com. Eine vollständige Liste der fürPRINCIPALzulässigen Werte finden Sie in der Referenz zur Richtlinienbindung.
So gewähren Sie einem einzelnen Hauptkonto Zugriff:
Verwenden Sie die Ressource
google_iap_web_cloud_run_service_iam_member, um einem einzelnen Hauptkonto eine Rolle zuzuweisen, ohne dass sich dies auf andere Hauptkonten auswirkt, die möglicherweise dieselbe Rolle haben.Fügen Sie der Ressource
google_iap_web_cloud_run_service_iam_memberin Ihrer Terraform-Konfiguration Folgendes hinzu.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "/span>PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }<Ersetzen Sie Folgendes:
PROJECT_ID: der Name des Projekts.REGION: die Google Cloud -Region, z. B.europe-west1.SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.PRINCIPAL: Eine Kennung für die Hauptkonten bzw. Mitglieder, die normalerweise die folgende Form hat:PRINCIPAL_TYPE:ID. Beispiel:user:my-user@example.com. Eine vollständige Liste der fürPRINCIPALzulässigen Werte finden Sie in der Referenz zur Richtlinienbindung.
IAP über Cloud Run deaktivieren
Sie können IAP über die Google Cloud Console oder die gcloud CLI deaktivieren.
Console
So deaktivieren Sie IAP für Cloud Run:
Rufen Sie in der Google Cloud Console die Seite „Cloud Run“ auf:
Wählen Sie den Dienst aus, den Sie ändern möchten.
Klicken Sie auf den Tab Sicherheit.
Heben Sie die Auswahl von Identity-Aware Proxy (IAP) auf. Ihr Dienst ist durch Ihre IAM-Richtlinie geschützt. Wenn Sie IAM jedoch nicht verwenden, machen Sie Ihren Dienst öffentlich zugänglich, indem Sie Öffentlichen Zugriff zulassen auswählen.
Klicken Sie auf Unterschied ansehen und erneut bereitstellen und dann auf Änderungen bereitstellen.
gcloud
Wenn Sie IAP direkt in Cloud Run deaktivieren möchten, fügen Sie beim Bereitstellen Ihrer Anwendung das Flag --no-iap hinzu:
Stellen Sie Ihren Cloud Run-Dienst mit einem der folgenden Befehle bereit:
Für einen neuen Dienst:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-iapFür einen vorhandenen Dienst:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --no-iapErsetzen Sie Folgendes:
SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.REGION: Der Name Ihrer Cloud Run-Region.IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-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 run services describe
SERVICE_NAMEDie Ausgabe sollte den folgenden String nicht mehr enthalten:
Iap Enabled: true
IAP leitet nicht mehr den gesamten Traffic, der für den konfigurierten Cloud Run-Dienst bestimmt ist, zur Authentifizierung an IAP weiter, bevor er an den Container übergeben wird.
Benutzerdefinierten OAuth-Client konfigurieren
Wir empfehlen, die Google Cloud Console zu verwenden, wenn Sie IAP zum ersten Mal aktivieren. So können Sie Anmeldedaten automatisch generieren lassen und müssen keinen benutzerdefinierten OAuth-Client manuell erstellen. Wenn Sie IAP in Cloud Run direkt über die Google Cloud Console aktivieren, richtet IAP den benutzerdefinierten OAuth-Client automatisch auf Projektebene für Sie ein.
Wenn Sie die gcloud CLI verwenden, um den Zugriff für Nutzer ohne Organisation zu verwalten, aktivieren Sie IAP in Cloud Run direkt über die Google Cloud Console oder folgen Sie der Anleitung in diesem Abschnitt, um manuell einen benutzerdefinierten OAuth-Client zu erstellen.
Für erweiterte Szenarien, z. B. das Anpassen des Zustimmungsbildschirms oder das Verwalten von OAuth-Clients auf Organisationsebene, führen Sie die folgenden Schritte aus.
Marke konfigurieren
Rufen Sie in der Google Cloud Console die Seite OAuth-Branding auf:
Klicken Sie auf Jetzt starten.
Füllen Sie das Formular App-Informationen aus und klicken Sie auf Weiter.
Wählen Sie unter Zielgruppe die Option Extern aus.
Füllen Sie den Rest des Formulars aus und klicken Sie auf Erstellen.
Benutzerdefinierten OAuth-Client manuell erstellen
Wenn Sie die Google Auth Platform zum ersten Mal einrichten:
Rufen Sie in der Google Cloud Console die Seite Clients auf:
Klicken Sie auf der Übersichtsseite der Google Auth Platform auf Jetzt starten, wenn Sie dazu aufgefordert werden.
- Geben Sie die App-Informationen ein und klicken Sie auf Weiter.
- Wählen Sie als Zielgruppentyp Extern aus.
- Geben Sie die Kontaktdaten ein, akzeptieren Sie die Nutzungsbedingungen und klicken Sie dann auf Erstellen.
- Klicken Sie auf Client erstellen.
- Wählen Sie unter Anwendungstyp die Option Webanwendung aus und geben Sie den Namen Ihres OAuth-Clients ein.
- Klicken Sie auf Erstellen.
- Notieren Sie sich die Client-ID und den Clientschlüssel und klicken Sie auf OK.
- Klicken Sie auf den Namen des neu erstellten OAuth-Clients, um ihn zu bearbeiten.
- Fügen Sie im Feld Autorisierte Weiterleitungs-URIs den folgenden URI hinzu:
Ersetzen Siehttps://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
CLIENT_IDdurch die OAuth-Client-ID, die Sie gerade generiert haben. - Klicken Sie auf Speichern.
Wenn Sie die Google Auth Platform bereits eingerichtet haben:
Rufen Sie in der Google Cloud Console die Seite Clients auf:
Klicken Sie auf Client erstellen.
Wählen Sie unter Anwendungstyp die Option Webanwendung aus und geben Sie den Namen Ihres OAuth-Clients ein.
Geben Sie die App-Informationen ein.
Klicken Sie auf Erstellen.
Notieren Sie sich die Client-ID und den Clientschlüssel und klicken Sie auf OK.
Klicken Sie auf den Namen des neu erstellten OAuth-Clients, um ihn zu bearbeiten.
Fügen Sie im Feld Autorisierte Weiterleitungs-URIs den folgenden URI hinzu:
Ersetzen Siehttps://iap.googleapis.com/v1/oauth/clientIds/
CLIENT_ID:handleRedirectCLIENT_IDdurch die OAuth-Client-ID, die Sie gerade generiert haben.Klicken Sie auf Speichern.
OAuth-Client auf IAP anwenden
Sie können den OAuth-Client auf Projekt- oder Organisationsebene anwenden.
Führen Sie auf Projektebene die folgenden Schritte aus:
Erstellen Sie eine Datei mit dem Namen
iap_settings.yamlund fügen Sie ihr Folgendes hinzu:access_settings: oauth_settings: client_id:
CLIENT_IDclient_secret:CLIENT_SECRETFühren Sie den Befehl
gcloud iap settings setaus, um den OAuth-Client auf Projektebene anzuwenden:gcloud iap settings set iap_settings.yaml --project=
PROJECT_ID
Ersetzen Sie Folgendes:
CLIENT_ID: die OAuth-Client-ID, die Sie im vorherigen Schritt gespeichert haben.CLIENT_SECRET: Das Secret, das Sie im vorherigen Schritt gespeichert haben.PROJECT_ID: die Projekt-ID.
Führen Sie auf Organisationsebene die folgenden Schritte aus:
Führen Sie den Befehl
gcloud iap settings setaus, um den OAuth-Client auf Organisationsebene anzuwenden:gcloud iap settings set iap_settings.yaml --organization=
ORGANIZATION_NUMBERErsetzen Sie Folgendes:
CLIENT_ID: die OAuth-Client-ID, die Sie im vorherigen Schritt gespeichert haben.CLIENT_SECRET: das Secret, das Sie im vorherigen Schritt gespeichert haben.ORGANIZATION_NUMBER: die Nummer Ihrer Organisation.
Fehlerbehebung
Im folgenden Abschnitt wird beschrieben, wie Sie Fehler bei IAP mit Cloud Run beheben.
Fehler beim Zugriff außerhalb der Organisation
Im Folgenden finden Sie Fehler, die beim Konfigurieren des Zugriffs für Nutzer außerhalb Ihrer Organisation auftreten können.
Nutzerzugriff außerhalb der Organisation: Deaktiviert
Wenn Sie den Zugriff außerhalb der Organisation deaktivieren möchten, empfehlen wir, ihn auf Projektebene zu deaktivieren. Einstellungen auf anderen Ebenen (Dienst, Ordner oder Organisation) werden möglicherweise als deaktiviert angezeigt, auch wenn der Zugriff möglich ist.
Die Marke ist derzeit auf „Intern“ festgelegt.
Der Zugriff von außerhalb der Organisation wird nicht unterstützt, wenn die Marke Ihres benutzerdefinierten OAuth-Clients auf „Intern“ festgelegt ist.
Führen Sie die folgenden Schritte aus, um die Markeneinstellung in „Extern“ zu ändern und den Zugriff für Hauptkonten außerhalb der Organisation mit IAP zu aktivieren:
Rufen Sie in der Google Cloud Console die Seite Zielgruppe der Google Auth Platform auf:
Klicken Sie unter Nutzertyp auf Extern machen.
Fehler des Dienst-Agents verursacht IAM-Fehler beim Festlegen
Wenn Sie IAP zum ersten Mal in einem neuen Projekt aktivieren, kann der folgende Fehler auftreten:
Setting IAM permissions failedDas liegt daran, dass der Cloud Run-Dienst-Agent fehlgeschlagen ist. Um das Problem zu beheben, aktivieren Sie IAP wieder oder legen Sie die IAM-Richtlinie manuell fest.
Nächste Schritte
- Eine Anleitung zum Aktivieren von 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.
- Zugriff auf IAP-gesicherte Ressourcen verwalten
- Organisationsrichtlinien zur Steuerung der IAP-Aktivierung verwenden