Cette page explique comment activer Identity-Aware Proxy à partir de Cloud Run et sécuriser le trafic destiné à un service Cloud Run en l'acheminant vers IAP pour l'authentification. En activant IAP à partir de Cloud Run, vous pouvez acheminer 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.
Limitations connues
- Le projet doit appartenir à une organisation.
- Les identités doivent appartenir à la même organisation.
- Vous ne pouvez pas configurer IAP à la fois sur l'équilibreur de charge et sur le service Cloud Run.
- Il est possible que certaines intégrations, comme Pub/Sub, cessent de fonctionner si IAP sont activés.
Avant de commencer
Activer IAP à partir de Cloud Run
Vous pouvez activer IAP à partir de Cloud Run.
Si vous utilisez à la fois IAP et IAM sur le même service Cloud Run, tenez compte des conditions suivantes :
Les vérifications IAP et IAM sont effectuées.
La vérification IAP a lieu en premier et accepte ou bloque les requêtes en fonction de la configuration IAP.
Si la requête réussit le contrôle IAP, IAP utilise son propre compte de service pour s'authentifier auprès du contrôle IAM de Cloud Run.
Étant donné que la vérification IAP a lieu en premier, il est possible que certains services, comme Pub/Sub, ne s'authentifient pas correctement.
Activez IAP depuis Cloud Run à l'aide de la console Google Cloud , de Google Cloud CLI ou de Terraform.
Console
Pour activer IAP à partir de Cloud Run :
Dans la console Google Cloud , accédez à la page Cloud Run :
Si vous configurez un nouveau service sur lequel effectuer un déploiement, sélectionnez Déployer un conteneur > Service. Si vous configurez et déployez un service existant, cliquez sur ce service, puis sur Modifier et déployer la nouvelle révision.
Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service selon vos besoins, puis sélectionnez Authentification avancée avec Identity-Aware Proxy (IAP).
Si vous configurez et déployez un service existant, cliquez sur le service, puis sélectionnez Authentification avancée avec Identity-Aware Proxy (IAP).
Cliquez sur Modifier la règle pour créer une règle d'accès contextuel :
Ajoutez un ou plusieurs comptes principaux et, éventuellement, le niveau d'accès que chaque compte principal doit respecter pour accéder à l'application.
Cliquez sur Enregistrer.
Cliquez sur Save.
gcloud
Pour activer IAP directement depuis Cloud Run, ajoutez l'indicateur --iap
lorsque vous déployez votre application :
Déployez votre service Cloud Run à l'aide de l'une des commandes suivantes :
Pour un nouveau service :
gcloud beta run deploy SERVICE_NAME \ --region=REGION \ --image=IMAGE_URL \ --no-allow-unauthenticated \ --iap
Pour un service existant :
gcloud beta run services update SERVICE_NAME \ --region=REGION \ --iap
Remplacez :
- SERVICE_NAME par le nom de votre service Cloud Run.
- REGION par le nom de votre région Cloud Run.
Exemple :
europe-west1
- IMAGE_URL par une 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 se présente sous la forme suivante :LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Pour vérifier que votre service est configuré avec IAP activé, exécutez la commande suivante :
gcloud beta run services describe SERVICE_NAME
La sortie doit contenir la chaîne suivante :
Iap Enabled: true
Vous routez 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 la page Commandes Terraform de base.
Ajoutez la stratégie IAM pour accorder le rôle Demandeur Cloud Run (roles/run.invoker
) à l'agent de service IAP. Pour en savoir plus, consultez Gérer l'accès aux ressources sécurisées par IAP.
Ajoutez les éléments suivants à une ressource
google_cloud_run_v2_service_iam_policy
dans 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 }
Ajoutez les éléments suivants à une ressource
google_cloud_run_v2_service
dans votre configuration Terraform.resource "google_cloud_run_v2_service" "default" { provider = google-beta name = "cloudrun-iap-service" location = "europe-west1" ingress = "INGRESS_TRAFFIC_ALL" launch_stage = "BETA" iap_enabled = true template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } }
Désactiver IAP à partir de Cloud Run
Vous pouvez désactiver IAP à l'aide de la console Google Cloud ou de Google Cloud CLI.
Console
Pour désactiver IAP à partir de 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écochez Authentification avancée avec Identity-Aware Proxy (IAP).
Cliquez sur Enregistrer.
gcloud
Pour désactiver IAP directement depuis Cloud Run, ajoutez l'indicateur --no-iap
lorsque vous déployez votre application :
Déployez votre service Cloud Run à l'aide de l'une des commandes suivantes :
Pour un nouveau service :
gcloud beta run deploy SERVICE_NAME \ --region=REGION \ --image=IMAGE_URL \ --no-iap
Pour un service existant :
gcloud beta run services update SERVICE_NAME \ --region=REGION \ --no-iap
Remplacez :
- SERVICE_NAME par le nom de votre service Cloud Run.
- REGION par le nom de votre région Cloud Run.
- IMAGE_URL par une 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 se présente sous la forme suivante :LOCATION-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 beta run services describe SERVICE_NAME
La sortie ne doit plus contenir la chaîne suivante :
Iap Enabled: true
Vous n'acheminez plus tout le trafic destiné au service Cloud Run configuré vers IAP pour l'authentification avant de le transmettre au conteneur.
Gérer l'accès des utilisateurs ou des groupes
Par défaut, IAP pour Cloud Run utilise des identités dans l'organisation avec des comptes Google. Vous pouvez ajouter ou supprimer l'accès à un service Cloud Run à l'aide de la console Google Cloud ou de Google Cloud CLI.
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 ou les niveaux d'accès que vous souhaitez ajouter.
Pour supprimer l'accès d'un compte principal existant, cliquez sur l'icône Supprimer la règle à côté de Niveaux d'accès.
Cliquez sur Enregistrer.
gcloud
Pour ajouter ou supprimer l'accès à un service Cloud Run pour des utilisateurs ou des groupes individuels de votre organisation, exécutez l'une des commandes suivantes :
Pour ajouter un accès :
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
Pour supprimer l'accès :
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
Pour afficher les accès :
gcloud beta iap web get-iam-policy \ --region=REGION \ --resource-type=cloud-run \ --service=SERVICE_NAME
Remplacez :
- USER_EMAIL par l'adresse e-mail de l'utilisateur.
- REGION par le nom de votre région Cloud Run.
- SERVICE_NAME par le nom de votre service Cloud Run.
Dépannage
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 failed
Cela 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 avec 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 la page Résoudre les erreurs.
- Activer les identités externes
- Activer la configuration OAuth
- 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