Cette page explique comment sécuriser une instance App Engine avec Identity-Aware Proxy (IAP).
Avant de commencer
Pour activer IAP pour App Engine, vous avez besoin des éléments suivants:
- Un projet de la console Google Cloud avec la facturation activée
Si votre instance App Engine n'est pas encore configurée, consultez la page Déployer App Engine pour obtenir une présentation complète.
IAP authentifie les utilisateurs à l'aide d'un client OAuth géré par Google. Seuls les utilisateurs de l'organisation peuvent accéder à l'application compatible avec IAP. Si vous souhaitez autoriser l'accès à des utilisateurs externes à votre organisation, consultez Activer IAP pour les applications externes.
Activer IAP
Console
Le client OAuth géré par Google n'est pas disponible lorsque vous activez IAP à l'aide de la console Google Cloud.
Si vous n'avez pas configuré l'écran de consentement OAuth de votre projet, vous y êtes invité. Pour configurer votre écran de consentement OAuth, consultez Configurer votre écran de consentement OAuth
Configurer l'accès à IAP
-
Accédez à la page Identity-Aware Proxy.
Accéder à la page "Identity-Aware Proxy" - Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
- Cochez la case située à côté de la ressource à laquelle vous souhaitez accorder l'accès.
- Dans le panneau de droite, cliquez sur Ajouter un compte principal.
-
Dans la boîte de dialogue Ajouter des comptes principaux qui s'affiche, ajoutez les adresses e-mail des groupes ou des personnes auxquels vous souhaitez accorder le rôle Utilisateur de l'application Web sécurisée par IAP dans le cadre du projet.
Les types de comptes principaux suivants peuvent disposer de ce rôle :
- Compte Google : user@gmail.com
- Groupe Google : admins@googlegroups.com
- Compte de service: server@example.gserviceaccount.com
- Domaine Google Workspace : example.com
Veillez à ajouter un compte Google auquel vous avez accès.
- Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste déroulante Rôles.
- Cliquez sur Enregistrer.
Activer IAP
-
Sur la page Identity-Aware Proxy, sous APPLICATIONS,
recherchez l'application pour laquelle vous souhaitez restreindre
y accéder. Pour activer IAP pour une ressource,
- Dans la fenêtre Activer IAP qui s'affiche, cliquez sur Activer pour confirmer que vous souhaitez qu'IAP sécurise votre ressource. Une fois IAP activé, des identifiants de connexion sont requis pour toutes les connexions à votre équilibreur de charge. Seuls les comptes disposant du rôle Utilisateur de l'application Web sécurisée par IAP sur le projet y ont accès.
gcloud
Avant de configurer votre projet et votre IAP, vous devez disposer d'une version à jour de la gcloud CLI. Pour savoir comment installer la CLI gcloud, consultez Installer la CLI gcloud.
-
Pour vous authentifier, utilisez la Google Cloud CLI et exécutez la commande suivante.
gcloud auth login
- Cliquez sur l'URL qui s'affiche, puis connectez-vous.
- Une fois la connexion effectuée, copiez le code de validation qui s'affiche et collez-le dans la ligne de commande.
-
Exécutez la commande suivante pour spécifier le projet contenant les applications que vous souhaitez protéger avec IAP.
gcloud config set project PROJECT_ID
-
Pour activer IAP, exécutez la commande suivante.
gcloud iap web enable --resource-type=app-engine --versions=version
-
Ajoutez les comptes principaux qui doivent disposer du rôle "Utilisateur de l'application Web sécurisée par IAP" au projet.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL_IDENTIFIER \ --role=roles/iap.httpsResourceAccessor
- Remplacez PROJECT_ID par l'ID du projet.
- Remplacez PRINCIPAL_IDENTIFIER par les principaux nécessaires. Il peut s'agir d'un type de domaine, de groupe, de serviceAccount ou d'utilisateur. Par exemple :
user:myemail@example.com
Une fois que vous avez activé IAP, vous pouvez modifier la stratégie d'accès IAP à l'aide du rôle IAM roles/iap.httpsResourceAccessor
via la gcloud CLI. Découvrez comment gérer les rôles et les autorisations.
API
Exécutez la commande suivante pour préparer un fichier
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
Exécutez la commande suivante pour activer les achats intégrés.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
Une fois que vous avez activé IAP, vous pouvez modifier la stratégie d'accès IAP à l'aide du rôle IAM roles/iap.httpsResourceAccessor
via la Google Cloud CLI. Découvrez comment gérer les rôles et les autorisations.
Tester l'authentification des utilisateurs
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.
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.