À propos de cet atelier de programmation
1. Introduction
Présentation
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'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'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
.