Cette page explique comment activer IAP directement sur un service Cloud Run et sécuriser le trafic destiné à un service Cloud Run en le redirigeant vers IAP pour l'authentification. En activant IAP directement sur Cloud Run, vous pouvez sécuriser le trafic en un seul clic depuis tous les chemins d'entrée, y compris les URL run.app par défaut et les équilibreurs de charge.
Lorsque vous intégrez IAP à Cloud Run, vous pouvez gérer l'accès des utilisateurs ou des groupes de différentes manières :
- Dans l'organisation : configurez l'accès aux utilisateurs qui appartiennent à la même organisation que votre service Cloud Run.
- En dehors de l'organisation : configurez l'accès pour les utilisateurs qui appartiennent à des organisations différentes de votre service Cloud Run.
- Aucune organisation : configurez l'accès dans les projets qui ne font partie d'aucune organisation Google.
Limitations connues
- Vous ne pouvez pas configurer IAP à la fois sur l'équilibreur de charge et sur le service Cloud Run.
- Cloud Run applique les règles IAP avant d'effectuer des vérifications IAM sur le compte de service IAP. Étant donné qu'IAP intercepte les requêtes et remplace l'identité de l'appelant d'origine, il est possible que les services comme Pub/Sub qui s'appuient sur leur propre authentification échouent.
Avant de commencer
Activez l'API IAP :
Rôles requis
Pour obtenir les autorisations nécessaires pour activer IAP, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Administrateur Cloud Run (
roles/run.admin) sur le projet -
Accorder l'accès au service compatible avec IAP :
Administrateur de stratégies IAP (
roles/iap.admin) sur le projet -
Créez un service compatible avec IAP ou mettez à jour un service existant pour activer IAP :
-
Lecteur Artifact Registry (
roles/artifactregistry.reader) sur les images de conteneurs déployées -
Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur l'identité du service
-
Lecteur Artifact Registry (
-
Accorder l'accès aux utilisateurs ne faisant pas partie d'une organisation Google :
Administrateur de paramètres IAP (
roles/iap.settingsAdmin) sur le projet -
Accorder l'accès aux utilisateurs externes à une organisation ou qui n'en font pas partie :
Éditeur de configuration OAuth (
roles/oauthconfig.editor) sur le projet
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Activer IAP à partir de Cloud Run
Nous vous recommandons d'activer IAP directement sur Cloud Run.
Activez IAP à partir de Cloud Run à l'aide de la console Google Cloud , de la Google Cloud CLI ou de Terraform.
Console
Lorsque vous activez IAP pour Cloud Run, IAP a besoin d'autorisations pour appeler votre service Cloud Run. Si vous activez IAP à l'aide de la console Google Cloud , cette autorisation est accordée automatiquement en attribuant le rôle d'invocateur Cloud Run (roles/run.invoker) à l'agent de service IAP.
Pour activer IAP à partir de Cloud Run :
Dans la console Google Cloud , accédez à la page Services de Cloud Run :
Si vous configurez un nouveau service, cliquez sur Déployer un conteneur, remplissez la page initiale des paramètres du service selon vos besoins, puis sélectionnez Exiger l'authentification. Sélectionnez Identity-Aware Proxy (IAP).
Si vous modifiez un service existant, cliquez sur celui-ci, sur l'onglet Sécurité, puis sélectionnez Exiger l'authentification. Sélectionnez IAP.
Facultatif. Pour accorder l'accès aux utilisateurs, suivez les instructions pour gérer l'accès des utilisateurs ou des groupes pour IAP. Si vous rencontrez des problèmes lors de la configuration de l'accès pour les utilisateurs externes à votre organisation, consultez la section Dépannage.
Pour enregistrer la configuration, cliquez sur Enregistrer.
Pour créer ou déployer le service, cliquez sur Créer ou Déployer.
gcloud
Pour activer IAP directement depuis Cloud Run, ajoutez l'indicateur --iap lorsque vous déployez votre application et accordez l'autorisation d'appel à l'agent de service IAP :
Déployez votre service Cloud Run à l'aide de l'une des commandes suivantes :
Pour un nouveau service :
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-allow-unauthenticated \ --iapSi vous activez IAP pour la première fois dans un projet sans organisation, l'avertissement suivant peut s'afficher :
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.Cet avertissement s'affiche, car vous ne pouvez pas créer de clients OAuth de manière programmatique. Nous vous recommandons d'activer d'abord IAP sur Cloud Run directement depuis la console Google Cloud ou de configurer un client OAuth personnalisé, puis d'ajouter des utilisateurs à l'aide de gcloud CLI.
Pour un service existant :
gcloud run services update
SERVICE_NAME\ --region=REGION\ --iapRemplacez les éléments suivants :
SERVICE_NAME: nom de votre service Cloud Run.REGION: nom de votre région Cloud Run. Exemple :europe-west1- IMAGE_URL : référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL est au formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. PROJECT_NUMBER: numéro de votre projet Google Cloud .
Accordez l'autorisation d'appel à l'agent de service IAP :
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.invokerRemplacez les éléments suivants :
SERVICE_NAME: nom de votre service Cloud Run.REGION: nom de votre région Cloud Run. Exemple :europe-west1PROJECT_NUMBER: numéro de votre projet Google Cloud .
Facultatif. Pour accorder l'accès aux utilisateurs, consultez Gérer l'accès des utilisateurs ou des groupes pour IAP.
Pour vérifier que votre service est configuré avec IAP activé, exécutez la commande suivante :
gcloud run services describe
SERVICE_NAMELa sortie doit contenir la chaîne suivante :
Iap Enabled: true
IAP route désormais tout le trafic destiné au service Cloud Run configuré vers IAP pour l'authentification avant de le transmettre au conteneur.
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Pour activer IAP à l'aide de Terraform, vous devez mettre à jour la définition de votre service et ajouter une liaison de stratégie IAM pour accorder l'autorisation d'appelant à IAP.
Ajoutez
iap_enabled = trueà une ressourcegoogle_cloud_run_v2_servicedans votre configuration Terraform pour activer IAP sur le service :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" } } }Ajoutez les éléments suivants pour attribuer le rôle
roles/run.invokerà l'agent de service IAP.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" }Remplacez
PROJECT_NUMBERpar votre numéro de projet.Facultatif. Pour récupérer les données de la stratégie IAM actuelle, ajoutez les éléments suivants à une ressource
google_cloud_run_v2_service_iam_policydans votre configuration Terraform.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 }
Gérer l'accès des utilisateurs ou des groupes
Par défaut, IAP pour Cloud Run utilise un client OAuth géré par Google qui vous permet d'ajouter des identités dans l'organisation avec une adresse e-mail associée à un utilisateur. Vous pouvez également gérer les principaux externes à votre organisation ou sans organisation à l'aide de la console Google Cloud dans IAP en créant un client OAuth personnalisé, comme décrit dans les étapes suivantes.
Ajoutez ou supprimez l'accès IAP à un service Cloud Run à l'aide de la console Google Cloud , de gcloud CLI ou de Terraform.
Dans l'organisation
Console
Pour ajouter ou supprimer un accès :
Dans la console Google Cloud , accédez à la page Cloud Run :
Cliquez sur le service existant que vous souhaitez modifier, puis sur Sécurité.
Sous IAP, cliquez sur Modifier la règle.
Pour ajouter un accès, saisissez le compte principal et, éventuellement, le niveau d'accès que vous souhaitez ajouter, ou laissez le niveau d'accès vide.
Pour supprimer l'accès lorsqu'il n'y a qu'un seul compte principal dans la règle, cliquez sur l'icône Supprimer la règle à côté de Niveaux d'accès.
Pour supprimer des comptes principaux individuels d'une règle, cliquez sur l'icône X à côté du nom du compte principal que vous souhaitez supprimer.
Pour enregistrer la configuration de l'utilisateur, cliquez sur Enregistrer.
gcloud
Pour ajouter ou supprimer l'accès à un service Cloud Run pour des utilisateurs ou des groupes individuels, exécutez l'une des commandes suivantes :
Pour ajouter un accès :
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPour supprimer l'accès :
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPour afficher les accès :
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Remplacez les éléments suivants :
USER_EMAIL: Adresse e-mail de l'utilisateur.REGION: nom de votre région Cloud Run.SERVICE_NAME: nom de votre service Cloud Run.
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Pour accorder un accès faisant autorité à une liste de comptes principaux :
Utilisez la ressource
google_iap_web_cloud_run_service_iam_bindingpour attribuer un rôle à une liste de comptes principaux faisant autorité. Cette ressource garantit que seuls les membres de la liste se voient attribuer le rôle. Tous les autres comptes principaux auxquels le rôle a été attribué sont supprimés.Ajoutez les éléments suivants à une ressource
google_iap_web_cloud_run_service_iam_bindingdans votre configuration Terraform.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" ] }Remplacez les éléments suivants :
PROJECT_ID: nom du projet.REGION: région Google Cloud , par exempleeurope-west1.SERVICE_NAME: nom de votre service Cloud Run.PRINCIPAL: l'identifiant des comptes principaux ou des membres, qui se présente généralement sous la forme suivante :PRINCIPAL_TYPE:ID. Exemple :user:my-user@example.com. Pour obtenir la liste complète des valeurs possibles pourPRINCIPAL, consultez la documentation de référence sur les liaisons de stratégie.
Pour accorder l'accès à un seul compte principal :
Utilisez la ressource
google_iap_web_cloud_run_service_iam_memberpour attribuer un rôle à un seul compte principal sans affecter les autres comptes principaux qui pourraient avoir le même rôle.Ajoutez les éléments suivants à une ressource
google_iap_web_cloud_run_service_iam_memberdans votre configuration Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Remplacez les éléments suivants :
PROJECT_ID: nom du projet.REGION: région Google Cloud , par exempleeurope-west1.SERVICE_NAME: nom de votre service Cloud Run.PRINCIPAL: l'identifiant des comptes principaux ou des membres, qui se présente généralement sous la forme suivante :PRINCIPAL_TYPE:ID. Exemple :user:my-user@example.com. Pour obtenir la liste complète des valeurs possibles pourPRINCIPAL, consultez la documentation de référence sur les liaisons de stratégie.
Externe à l'organisation
Console
Pour ajouter des utilisateurs externes à votre organisation à l'aide d'IAP, suivez la procédure de configuration unique ci-dessous :
Dans la console Google Cloud , accédez à la page Cloud Run :
Cliquez sur le service existant que vous souhaitez modifier, puis sur Sécurité.
Sur la page des informations sur la sécurité de votre service Cloud Run, sous IAP, cliquez sur Modifier la règle.
Cliquez sur Configurer dans IAP. La page des paramètres de ressources s'ouvre dans IAP.
Cliquez sur Configurer l'écran de consentement pour configurer votre écran de consentement OAuth. Sélectionnez le type d'audience Externe.
Pour une configuration plus rapide, cliquez sur Générer automatiquement les identifiants.
Vous pouvez également suivre les instructions pour créer un ID client OAuth. Sélectionnez OAuth personnalisé, puis saisissez votre ID client et votre code secret personnalisés.
Pour enregistrer la configuration, cliquez sur Enregistrer.
Vous pouvez maintenant revenir à votre service Cloud Run dans Cloud Run pour ajouter des principaux externes à l'organisation.
Pour ajouter ou supprimer l'accès d'un utilisateur, procédez comme suit :
Dans la console Google Cloud , accédez à la page Cloud Run :
Cliquez sur le service existant que vous souhaitez modifier, puis sur Sécurité.
Sous IAP, cliquez sur Modifier la règle.
Pour ajouter un accès, saisissez le compte principal et, éventuellement, le niveau d'accès que vous souhaitez ajouter, ou laissez le niveau d'accès vide.
Pour supprimer l'accès lorsqu'il n'y a qu'un seul compte principal dans la règle, cliquez sur l'icône Supprimer la règle à côté de Niveaux d'accès.
Pour supprimer des comptes principaux individuels d'une règle, cliquez sur l'icône X à côté du nom du compte principal que vous souhaitez supprimer.
Pour enregistrer la configuration de l'utilisateur, cliquez sur Enregistrer.
gcloud
Avant de commencer
- Pour ajouter des comptes principaux utilisateur externes à une organisation, vous devez d'abord configurer le client OAuth}.
Pour ajouter ou supprimer l'accès à un service Cloud Run pour des utilisateurs ou des groupes individuels, exécutez l'une des commandes suivantes :
Pour ajouter un accès :
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPour supprimer l'accès :
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPour afficher les accès :
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Remplacez les éléments suivants :
USER_EMAIL: Adresse e-mail de l'utilisateur.REGION: nom de votre région Cloud Run.SERVICE_NAME: nom de votre service Cloud Run.
Terraform
Avant de commencer
- Pour ajouter des comptes principaux utilisateur externes à une organisation, vous devez d'abord configurer le client OAuth.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Pour accorder un accès faisant autorité à une liste de comptes principaux :
Utilisez la ressource
google_iap_web_cloud_run_service_iam_bindingpour accorder un rôle à une liste faisant autorité de comptes principaux. Cette ressource garantit que seuls les membres de la liste se voient attribuer le rôle. Tous les autres comptes principaux auxquels le rôle a été attribué sont supprimés.Ajoutez les éléments suivants à une ressource
google_iap_web_cloud_run_service_iam_bindingdans votre configuration Terraform.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" ] }Remplacez les éléments suivants :
PROJECT_ID: nom du projet.REGION: région Google Cloud , par exempleeurope-west1.SERVICE_NAME: nom de votre service Cloud Run.PRINCIPAL: l'identifiant des comptes principaux ou des membres, qui se présente généralement sous la forme suivante :PRINCIPAL_TYPE:ID. Exemple :user:my-user@example.com. Pour obtenir la liste complète des valeurs possibles pourPRINCIPAL, consultez la documentation de référence sur les liaisons de stratégie.
Pour accorder l'accès à un seul compte principal :
Utilisez la ressource
google_iap_web_cloud_run_service_iam_memberpour attribuer un rôle à un seul compte principal sans affecter les autres comptes principaux qui pourraient avoir le même rôle.Ajoutez les éléments suivants à une ressource
google_iap_web_cloud_run_service_iam_memberdans votre configuration Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Remplacez les éléments suivants :
PROJECT_ID: nom du projet.- REGION : région Google Cloud , par exemple
europe-west1. - SERVICE_NAME : nom de votre service Cloud Run.
- PRINCIPAL : l'identifiant des comptes principaux ou des membres, qui se présente généralement sous la forme suivante : PRINCIPAL_TYPE:ID. Exemple :
user:my-user@example.com. Pour obtenir la liste complète des valeurs possibles pour PRINCIPAL, consultez la documentation de référence sur les liaisons de stratégie.
Aucune organisation
Console
Pour ajouter ou supprimer un accès :
Dans la console Google Cloud , accédez à la page Cloud Run :
Cliquez sur le service existant que vous souhaitez modifier, puis sur Sécurité.
Sous IAP, cliquez sur Modifier la règle.
Pour ajouter un accès, saisissez le compte principal et, éventuellement, le niveau d'accès que vous souhaitez ajouter, ou laissez le niveau d'accès vide.
Pour supprimer l'accès lorsqu'il n'y a qu'un seul compte principal dans la règle, cliquez sur l'icône Supprimer la règle à côté de Niveaux d'accès.
Pour supprimer des comptes principaux individuels d'une règle, cliquez sur l'icône X à côté du nom du compte principal que vous souhaitez supprimer.
Pour enregistrer la configuration de l'utilisateur, cliquez sur Enregistrer.
gcloud
Avant de commencer
- Pour ajouter des utilisateurs à un projet sans organisation, vous devez d'abord suivre la configuration unique pour configurer un client OAuth personnalisé.
Pour ajouter ou supprimer l'accès à un service Cloud Run pour des utilisateurs ou des groupes individuels, exécutez l'une des commandes suivantes :
Pour ajouter un accès :
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPour supprimer l'accès :
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEPour afficher les accès :
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Remplacez les éléments suivants :
USER_EMAIL: Adresse e-mail de l'utilisateur.REGION: nom de votre région Cloud Run.SERVICE_NAME: nom de votre service Cloud Run.
Terraform
Avant de commencer
- Pour ajouter des comptes principaux utilisateur externes à une organisation, vous devez d'abord configurer le client OAuth.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Pour accorder un accès faisant autorité à une liste de comptes principaux :
Utilisez la ressource
google_iap_web_cloud_run_service_iam_bindingpour accorder un rôle à une liste faisant autorité de comptes principaux. Cette ressource garantit que seuls les membres de la liste se voient attribuer le rôle. Tous les autres comptes principaux auxquels le rôle a été attribué sont supprimés.Ajoutez les éléments suivants à une ressource
google_iap_web_cloud_run_service_iam_bindingdans votre configuration Terraform.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" ] }Remplacez les éléments suivants :
PROJECT_ID: nom du projet.REGION: région Google Cloud , par exempleeurope-west1.SERVICE_NAME: nom de votre service Cloud Run.PRINCIPAL: l'identifiant des comptes principaux ou des membres, qui se présente généralement sous la forme suivante :PRINCIPAL_TYPE:ID. Exemple :user:my-user@example.com. Pour obtenir la liste complète des valeurs possibles pourPRINCIPAL, consultez la documentation de référence sur les liaisons de stratégie.
Pour accorder l'accès à un seul compte principal :
Utilisez la ressource
google_iap_web_cloud_run_service_iam_memberpour attribuer un rôle à un seul compte principal sans affecter les autres comptes principaux qui pourraient avoir le même rôle.Ajoutez les éléments suivants à une ressource
google_iap_web_cloud_run_service_iam_memberdans votre configuration Terraform.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }Remplacez les éléments suivants :
PROJECT_ID: nom du projet.REGION: région Google Cloud , par exempleeurope-west1.SERVICE_NAME: nom de votre service Cloud Run.PRINCIPAL: identifiant des comptes principaux ou des membres, se présentant généralement sous la forme suivante :PRINCIPAL_TYPE:ID. Exemple :user:my-user@example.com. Pour obtenir la liste complète des valeurs possibles pourPRINCIPAL, consultez la documentation de référence sur les liaisons de stratégie.
Désactiver IAP à partir de Cloud Run
Vous pouvez désactiver IAP à l'aide de la console Google Cloud ou de la gcloud CLI.
Console
Pour désactiver IAP depuis Cloud Run :
Dans la console Google Cloud , accédez à la page Cloud Run :
Cliquez sur le service existant que vous souhaitez modifier.
Cliquez sur Sécurité, puis désélectionnez IAP. Votre service est protégé par votre stratégie IAM. Toutefois, si vous n'utilisez pas IAM, rendez votre service accessible au public en sélectionnant Autoriser l'accès public.
Pour enregistrer la configuration, cliquez sur Enregistrer.
gcloud
Pour désactiver IAP directement depuis Cloud Run, ajoutez le flag --no-iap lorsque vous déployez votre application, comme suit :
Déployez votre service Cloud Run à l'aide de l'une des commandes suivantes :
Pour un nouveau service :
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-iapPour un service existant :
gcloud run services update
SERVICE_NAME\ --region=REGION\ --no-iapRemplacez les éléments suivants :
SERVICE_NAME: nom de votre service Cloud Run.REGION: nom de votre région Cloud Run.- IMAGE_URL : référence à l'image de conteneur, par exemple
us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL est au formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Pour vérifier que votre service n'est plus configuré avec IAP activé, exécutez la commande suivante :
gcloud run services describe
SERVICE_NAMELa sortie ne doit plus contenir la chaîne suivante :
Iap Enabled: true
IAP ne route plus tout le trafic destiné au service Cloud Run configuré vers IAP pour l'authentification avant de le transmettre au conteneur.
Configurer un client OAuth personnalisé
Nous vous recommandons d'utiliser la console Google Cloud lorsque vous activez les achats via l'application pour la première fois. Cela vous permet de générer automatiquement des identifiants pour éviter de créer manuellement un client OAuth personnalisé. Lorsque vous activez IAP sur Cloud Run directement depuis la console Google Cloud , IAP configure automatiquement le client OAuth personnalisé pour vous au niveau du projet.
Si vous utilisez la gcloud CLI pour gérer l'accès des utilisateurs sans organisation, activez IAP sur Cloud Run directement depuis la console Google Cloud ou suivez les étapes de cette section pour créer manuellement un client OAuth personnalisé.
Pour les scénarios avancés, comme la personnalisation de l'écran de consentement ou la gestion des clients OAuth au niveau de l'organisation, suivez les étapes ci-dessous.
Configurer la marque
Dans la console Google Cloud , accédez à la page Branding d'OAuth :
Cliquez sur Commencer.
Remplissez le formulaire Informations sur l'application, puis cliquez sur Suivant.
Sous Audience, sélectionnez Externe.
Remplissez le reste du formulaire, puis cliquez sur Créer.
Créer manuellement un client OAuth personnalisé
Si vous configurez Google Auth Platform pour la première fois :
Dans la console Google Cloud , accédez à la page Clients :
Si vous y êtes invité, cliquez sur Premiers pas sur la page de présentation de Google Auth Platform.
- Remplissez les informations sur l'application, puis cliquez sur Suivant.
- Sélectionnez Externe comme type d'audience.
- Renseignez les coordonnées, acceptez les conditions d'utilisation, puis cliquez sur Créer.
- Cliquez sur Créer un client.
- Dans Type d'application, sélectionnez Application Web et saisissez le nom de votre client OAuth.
- Dans le champ URI de redirection autorisés, ajoutez l'URI suivant :
Remplacezhttps://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
CLIENT_IDpar l'ID client OAuth. - Cliquez sur Créer.
- Notez l'ID client et le code secret, puis cliquez sur OK.
Si vous avez déjà configuré Google Auth Platform :
Dans la console Google Cloud , accédez à la page Clients :
Cliquez sur Créer un client.
Dans Type d'application, sélectionnez Application Web et saisissez le nom de votre client OAuth.
Renseignez les informations sur l'application.
Dans le champ URI de redirection autorisés, ajoutez l'URI suivant :
Remplacezhttps://iap.googleapis.com/v1/oauth/clientIds/
CLIENT_ID:handleRedirectCLIENT_IDpar l'ID client OAuth.Cliquez sur Créer.
Notez l'ID client et le code secret, puis cliquez sur OK.
Appliquer le client OAuth à IAP
Vous pouvez appliquer le client OAuth au niveau du projet ou de l'organisation.
Au niveau du projet, procédez comme suit :
Créez un fichier nommé
iap_settings.yamlet ajoutez-y le contenu suivant :access_settings: oauth_settings: client_id:
CLIENT_IDclient_secret:CLIENT_SECRETExécutez la commande
gcloud iap settings setpour appliquer le client OAuth au niveau du projet :gcloud iap settings set iap_settings.yaml --project=
PROJECT_ID
Remplacez les éléments suivants :
CLIENT_ID: ID client OAuth que vous avez enregistré à l'étape précédente.CLIENT_SECRET: code secret que vous avez enregistré à l'étape précédente.PROJECT_ID: par l'ID du projet.
Au niveau de l'organisation, procédez comme suit :
Pour appliquer le client OAuth au niveau de l'organisation, exécutez la commande
gcloud iap settings set:gcloud iap settings set iap_settings.yaml --organization=
ORGANIZATION_NUMBERRemplacez les éléments suivants :
CLIENT_ID: ID client OAuth que vous avez enregistré à l'étape précédente.CLIENT_SECRET: code secret que vous avez enregistré à l'étape précédente.ORGANIZATION_NUMBER: numéro de votre organisation.
Dépannage
La section suivante explique comment résoudre les problèmes liés à IAP avec Cloud Run.
Erreurs d'accès de comptes externes à l'organisation
Vous trouverez ci-dessous les erreurs que vous pouvez rencontrer lorsque vous configurez l'accès pour les utilisateurs externes à votre organisation.
Accès des utilisateurs externes à l'organisation : désactivé
Pour vous assurer que l'accès externe à l'organisation est désactivé, nous vous recommandons de le désactiver au niveau du projet. Les contrôles à d'autres niveaux (service, dossier ou organisation) peuvent apparaître comme désactivés, même si l'accès est disponible.
La marque est actuellement définie sur "Interne".
L'accès externe à l'organisation n'est pas pris en charge lorsque la marque de votre client OAuth personnalisé est définie sur "Interne".
Pour définir la marque sur "Externe" afin d'activer l'accès pour les comptes principaux externes à l'organisation avec IAP, procédez comme suit :
Dans la console Google Cloud , accédez à la page Audience de la plate-forme d'authentification Google :
Sous Type d'utilisateur, cliquez sur Rendre externe.
L'échec de l'agent de service entraîne une erreur IAM
L'activation d'IAP sur un nouveau projet pour la première fois peut entraîner l'erreur suivante :
Setting IAM permissions failedCela est dû à un échec de l'agent de service Cloud Run. Pour résoudre le problème, réactivez IAP ou définissez manuellement la stratégie IAM.
Étapes suivantes
- Pour savoir comment activer IAP à partir d'un service de backend ou d'un équilibreur de charge, consultez Activer IAP pour Cloud Run.
- Pour les problèmes liés à l'activation d'IAP pour Cloud Run, consultez Résoudre les erreurs.
- Gérer les accès aux ressources sécurisées par IAP
- Utiliser des règles d'administration pour contrôler l'activation d'IAP