Sécuriser les applications App Engine avec IAP

Cette page explique comment déployer une application d'environnement standard ou flexible App Engine et la sécuriser avec Identity-Aware Proxy (IAP). Ce guide de démarrage rapide inclut un exemple de code pour une application Web d'environnement standard App Engine qui permet de valider le nom d'un utilisateur connecté.

Si vous prévoyez de diffuser des ressources à partir d'un réseau de diffusion de contenu (CDN), consultez le guide des bonnes pratiques pour obtenir des informations importantes.

Pour sécuriser des ressources qui ne sont pas sur Google Cloud, consultez la page Sécuriser les applications et les ressources sur site avec IAP.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

Démarrer Cloud Shell

  1. Cliquez sur Activer Cloud Shell en haut de la fenêtre de la console.

    Une session Cloud Shell s'ouvre dans un nouveau cadre en bas de la console et affiche une invite de ligne de commande. L'initialisation de la session Shell peut prendre quelques secondes.

    Cadre de session Cloud Shell
  2. Saisissez la commande suivante dans Cloud Shell pour afficher les ID de vos projets :
    gcloud projects list
  3. Exécutez la commande suivante pour définir le projet par défaut, où YOUR-PROJECT-ID correspond à l'ID du projet que vous souhaitez utiliser pour ce guide de démarrage rapide :
    gcloud config set project YOUR-PROJECT-ID

Obtenir l'exemple de code

  1. Saisissez la commande suivante dans Cloud Shell pour obtenir l'exemple d'application :

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    
  2. Accédez au répertoire qui contient l'exemple de code :

    cd python-docs-samples/appengine/standard/users/
    

Déployer l'application

  1. Déployez l'application sur App Engine à l'aide de gcloud :
    gcloud app deploy
  2. Le code target url: s'affiche au format https://YOUR_PROJECT_ID.appspot.com. Pour accéder à votre application, ouvrez cette URL dans votre navigateur Web.

Activer IAP

Sélectionner un projet

  1. Accédez à la page Identity-Aware Proxy.
    Accéder à la page "Identity-Aware Proxy"
  2. Si vous n'avez pas encore de projet actif, vous êtes invité à sélectionner le projet que vous souhaitez sécuriser avec IAP. Sélectionnez celui dans lequel vous avez déployé l'exemple d'application.

Configurer l'écran d'autorisation OAuth

Si vous n'avez pas configuré l'écran d'autorisation OAuth de votre projet, vous êtes invité à le faire. Vous devez saisir une adresse e-mail et un nom de produit.

  1. Accédez à l'écran d'autorisation OAuth.
    Configurer l'écran d'autorisation
  2. Sous Adresse e-mail d'assistance, sélectionnez l'adresse e-mail que vous souhaitez afficher en tant que contact public. Celle-ci doit correspondre à votre adresse e-mail ou à un groupe Google dont vous êtes le propriétaire.
  3. Saisissez le nom de l'application que vous souhaitez afficher.
  4. Ajoutez des détails, si nécessaire.
  5. Cliquez sur Save.

Pour modifier ultérieurement les informations affichées sur l'écran d'autorisation OAuth, comme le nom du produit ou l'adresse e-mail, répétez les étapes de configuration précédentes.

Configurer l'accès à IAP

  1. Accédez à la page Identity-Aware Proxy.
    Accéder à la page "Identity-Aware Proxy"
  2. Sélectionnez la ressource que vous souhaitez modifier en cochant la case située à sa gauche. Dans le panneau de droite, cliquez sur Ajouter un membre.
  3. Dans la boîte de dialogue Ajouter des membres, ajoutez les adresses e-mail des personnes ou des groupes auxquels vous souhaitez attribuer le rôle Utilisateur de l'application Web sécurisée par IAP pour le projet.

    Les types de comptes suivants peuvent être ajoutés en tant que membres :

    • Compte Google : user@gmail.com
    • Groupe Google : admins@googlegroups.com
    • Compte de service : server@example.gserviceaccount.com
    • Domaine G Suite : example.com

    Veillez à ajouter un compte Google auquel vous avez accès.

    Pour rendre une ressource accessible au public (alors que les ressources sœurs sont limitées), attribuez le rôle Utilisateur de l'application Web sécurisée par IAP à "allUsers" ou "allAuthenticatedUsers". La différence entre ces deux types est expliquée dans la section Accès public.

  4. Une fois l'ajout des membres terminé, cliquez sur Ajouter.

Activer IAP

  1. Sur la page Identity-Aware Proxy, sous Ressource HTTPS, recherchez l'application App Engine dont vous souhaitez restreindre l'accès. La colonne Publié indique l'URL de l'application. Si vous souhaitez activer IAP pour l'application,
    • Pour activer IAP, vous avez besoin des autorisations appengine.applications.update, clientauthconfig.clients.create et clientauthconfig.clients.getWithSecret. Ces autorisations sont accordées par des rôles (par exemple, Éditeur de projet). Pour en savoir plus, consultez la page Gérer les accès aux ressources sécurisées par IAP.
  2. Pour confirmer que vous souhaitez qu'IAP sécurise l'application, cliquez sur Activer dans la fenêtre Activer IAP qui s'affiche. Une fois activé, IAP requiert des identifiants de connexion pour toutes les connexions à votre application.

Tester l'accès

  1. Accédez à l'URL de l'application à partir d'un compte Google que vous avez ajouté à IAP avec le rôle Utilisateur de l'application Web sécurisée par IAP, comme décrit ci-dessus. Vous devez disposer d'un accès illimité à l'application.

  2. Ouvrez une fenêtre de navigation privée dans Chrome pour accéder à l'application, puis connectez-vous lorsque vous y êtes invité. Si vous tentez d'accéder à l'application au moyen d'un compte non autorisé avec le rôle Utilisateur de l'application Web sécurisée par IAP, un message s'affiche indiquant que vous ne disposeez pas de l'accès.

Étapes suivantes