Utiliser Identity-Aware Proxy (IAP) en un clic avec Cloud Run

Utiliser Identity-Aware Proxy (IAP) en un clic avec Cloud Run

À propos de cet atelier de programmation

subjectDernière mise à jour : juin 12, 2025
account_circleRédigé par une Googleuse ou un Googleur

1. Introduction

Cet atelier de programmation vous 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 l'API Access Point depuis Cloud Run, vous pouvez acheminer le trafic en un seul clic à partir de tous les chemins d'entrée, y compris les URL run.app et les équilibreurs de charge par défaut.

Dans cet atelier de programmation, vous allez déployer le service de conteneur hello. Seuls les utilisateurs figurant sur la liste d'autorisation à l'aide de l'IAP ont accès au service.

Pour connaître d'autres limites connues, consultez la documentation sur les applications intégrées sur Cloud Run.

Points abordés

  • Activer les achats intégrés en un clic pour Cloud Run
  • Accorder l'accès d'une identité utilisateur à un service Cloud Run via IAP

2. Avant de commencer

Activer les API

Avant de pouvoir utiliser cet atelier de programmation, activez les API suivantes en exécutant la commande suivante:

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

3. Créer des variables d'environnement

Définissez les variables d'environnement qui seront utilisées tout au long de cet atelier de programmation.

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. Déployer un service avec l&#39;IAP activé

Créez le compte de service (utilisé comme identité du service Cloud Run) en exécutant la commande suivante:

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

Déployez l'image de conteneur hello avec l'API IAP activée.

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

Remarque: Si vous essayez d'accéder à l'application maintenant, vous verrez la page d'erreur You don't have access. À l'étape suivante, vous allez accorder à un utilisateur l'accès via IAP.

5. Configurer le contrôle des accès IAP

Créez l'agent de service IAP.

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

Attribuer le rôle Demandeur Cloud Run au compte de service IAP

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

Accorder l'accès à un utilisateur en autorisant des utilisateurs ou des groupes spécifiques via l'IAP

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

Remarque: Vous pouvez également utiliser group:votre-groupe@example.com dans le paramètre "member" si vous préférez.

6. Tester l&#39;application

Vérifier l'accès à l'application

Obtenez l'URL de l'exemple de service Cloud Run.

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

Ouvrez l'URL dans votre navigateur. Le message "It's Running! "Félicitations, vous avez bien déployé une image de conteneur dans Cloud Run."

Vérifier la suppression de l'accès à l'application

Vous pouvez supprimer votre accès à l'application en exécutant la commande suivante.

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

Attendez quelques minutes que la règle IAM se propage. Essayez maintenant d'ouvrir l'URL dans votre navigateur. La page d'erreur You don't have access s'affiche.

7. Félicitations !

Félicitations ! Vous avez terminé cet atelier de programmation.

Nous vous recommandons de consulter la documentation sur l'IAP Cloud Run.

Points abordés

  • Activer l'IAP en un clic pour Cloud Run
  • Accorder l'accès d'une identité utilisateur à un service Cloud Run via IAP

8. Effectuer un nettoyage

Pour éviter les frais involontaires, par exemple, si les services Cloud Run sont appelés par inadvertance plus de fois que votre quota mensuel d'appels Cloud Run dans le niveau sans frais, vous pouvez supprimer le service Cloud Run iap-example que vous avez créé à l'étape 6.

Pour supprimer le service Cloud Run, accédez à la console Cloud Run à l'adresse https://console.cloud.google.com/run et supprimez le service iap-example.

Pour supprimer l'intégralité du projet, accédez à Gérer les ressources, sélectionnez votre projet, puis cliquez sur "Supprimer". Si vous supprimez le projet, vous devrez modifier les projets dans votre SDK Cloud. Vous pouvez afficher la liste de tous les projets disponibles en exécutant gcloud projects list.