Présentation d'Identity-Aware Proxy

Cette page décrit les concepts de base d'Identity-Aware Proxy (IAP), un service global Google Cloud .

IAP vous permet d'établir une couche d'autorisation centrale pour les applications accessibles via HTTPS. Vous pouvez donc adopter un modèle de contrôle des accès au niveau des applications au lieu d'utiliser des pare-feu au niveau du réseau.

Les stratégies IAP concernent l'ensemble de votre organisation. Vous pouvez définir des stratégies d'accès de manière centralisée, et les appliquer à toutes vos applications et ressources. Lorsque vous créez une équipe dédiée à la création et à l'application de stratégies, vous protégez votre projet contre la définition ou la mise en œuvre incorrectes de stratégies dans n'importe quelle application.

Quand utiliser IAP ?

Utilisez IAP lorsque vous souhaitez appliquer des stratégies de contrôle des accès aux applications et aux ressources. IAP sécurise votre application à l'aide d'en-têtes signés ou de l'API Users de l'environnement standard App Engine. IAP vous permet de configurer l'accès aux applications en fonction de groupes : une ressource peut être accessible aux employés et inaccessible aux sous-traitants, ou accessible uniquement à un service spécifique.

Fonctionnement d'IAP

Lorsqu'une application ou une ressource est protégée par IAP, seuls les comptes principaux (également appelés utilisateurs) disposant du rôle IAM (Identity and Access Management) approprié peuvent y accéder via le proxy. Lorsque vous autorisez un utilisateur à accéder à une application ou à une ressource via IAP, il est soumis aux contrôles ultraprécis des accès mis en œuvre par le produit en cours d'utilisation, sans qu'un VPN ne soit requis. Lorsqu'un utilisateur tente d'accéder à une ressource sécurisée par IAP, des vérifications d'authentification et d'autorisation sont effectuées.

App Engine
chemin de requête vers App Engine lors de l'utilisation de Cloud IAP
Cloud Run
chemin de requête vers Cloud Run lors de l'utilisation de Cloud IAP
Compute Engine
Chemin de requête vers Compute Engine et Kubernetes Engine lors de l'utilisation de Cloud IAP
GKE
Chemin de requête vers Compute Engine et Kubernetes Engine lors de l'utilisation de Cloud IAP
Sur site
chemin de requête vers une application sur site lors de l'utilisation de Cloud IAP

Authentification

Les requêtes adressées à vos ressources Google Cloud proviennent de Cloud Run, d'App Engine et de Cloud Load Balancing (équilibrage de charge HTTP(S) externe et interne). Le code de l'infrastructure de diffusion de ces produits vérifie si IAP est activé pour l'application ou le service de backend. Si IAP est activé, les informations concernant la ressource protégée sont envoyées au serveur d'authentification IAP. Cela inclut des informations telles que le numéro de projet Google Cloud , l'URL de la requête et les identifiants IAP figurant dans les cookies ou les en-têtes de requête.

IAP vérifie ensuite si l'utilisateur est connecté. Si l'utilisateur n'est pas connecté, son navigateur est redirigé vers l'une des méthodes de connexion suivantes compatibles avec IAP :

  • Compte Google : vos utilisateurs Google Cloud disposant d'un compte Google sont redirigés vers le flux de connexion au compte Google pour accéder à Google Cloud.
  • Fédération des identités des employés : vos utilisateurs Google Cloud dans un fournisseur d'identité externe sont redirigés via la connexion de leur IdP pour accéder à Google Cloud.
  • Identity Platform : vos clients qui utilisent une adresse e-mail et un mot de passe ou des connexions via les réseaux sociaux, comme Facebook, Apple et Google (Gmail), pour accéder à votre application.

Après l'authentification, le navigateur de l'utilisateur stocke un jeton dans un cookie de navigateur pour les connexions ultérieures.

Si les identifiants de la requête sont valides, le serveur d'authentification s'en sert pour obtenir l'identité de l'utilisateur (adresse e-mail et ID utilisateur). Le serveur d'authentification utilise ensuite l'identité pour vérifier le rôle IAM de l'utilisateur et contrôler si l'utilisateur est autorisé à accéder à la ressource.

Si vous utilisez Compute Engine ou Google Kubernetes Engine, les utilisateurs disposant d'un accès au port de diffusion des applications de la machine virtuelle (VM, Virtual Machine) peuvent contourner l'authentification IAP. Les règles de pare-feu Compute Engine et GKE ne peuvent pas protéger contre l'accès à partir de code exécuté sur la même VM que l'application sécurisée par IAP. Les règles de pare-feu peuvent protéger contre l'accès depuis une autre VM, mais seulement si elles sont correctement configurées. Découvrez vos responsabilités pour assurer la sécurité.

Si vous utilisez Cloud Run, vous pouvez activer IAP de l'une des manières suivantes :

  • Directement sur vos services Cloud Run. Cela permet à IAP de protéger tous les chemins d'entrée vers Cloud Run, y compris l'URL attribuée automatiquement et toute URL d'équilibreur de charge configurée. Cette configuration est utile lorsque vous n'avez qu'un seul service Cloud Run pour lequel activer IAP.
  • Via un équilibreur de charge avec un backend Cloud Run. Cette configuration est utile lorsque vous disposez de plusieurs services Cloud Run dans différentes régions avec un seul équilibreur de charge mondial. Dans cette configuration, l'URL attribuée automatiquement n'est pas protégée par IAP et peut être directement accessible. En savoir plus sur vos responsabilités pour assurer la sécurité.

Si un service Cloud Run s'exécute avec un équilibreur de charge, n'activez pas IAP à la fois sur l'équilibreur de charge et sur le service Cloud Run.

En savoir plus sur la fédération des identités des employés Découvrez comment configurer IAP avec la fédération des identités des employés. Si vous souhaitez synchroniser vos identités externes avec leurs propres comptes Google, vous pouvez utiliser Google Cloud Directory Sync pour effectuer la synchronisation avec votre IdP.

Autorisation

Après l'authentification, IAP applique la stratégie IAM appropriée pour vérifier si l'utilisateur est autorisé à accéder à la ressource demandée. Si l'utilisateur dispose du rôle Utilisateur de l'application Web sécurisée par IAP sur le projet de la consoleGoogle Cloud où se trouve la ressource, il est autorisé à accéder à l'application. Pour gérer la liste des rôles Utilisateur de l'application Web sécurisée par IAP, accédez au panneau "IAP" de la console Google Cloud .

Lorsque vous activez IAP pour une ressource, un secret et un ID client OAuth 2.0 sont automatiquement créés. Si vous supprimez les identifiants OAuth 2.0 générés automatiquement, IAP ne fonctionnera pas correctement. Vous pouvez afficher et gérer les identifiants OAuth 2.0 sur la page API et services de la consoleGoogle Cloud .

Accès contextuel

Lors de l'étape d'autorisation, vous pouvez utiliser l'accès contextuel pour fournir un accès sécurisé aux types de ressources suivants :

Google Cloud Console et API
  • Première couche de défense pour protéger l'accès à l'infrastructure de Google Cloud.
  • Accès contextuel avancé Google Cloud aux utilisateurs.
Machines virtuelles (VM)
  • Active l'accès SSH/RDP administratif aux VM dans Google Cloud et dans d'autres clouds.

  • Vous permet d'implémenter des contrôles contextuels robustes pour limiter l'accès aux seuls administrateurs désignés.

Applications Web
  • Fournit une autorisation et une authentification pour les applications Web hébergées dansGoogle Cloud et d'autres clouds.

  • Fournit une autorisation continue pour empêcher les accès non autorisés et la perte de données.

Vos responsabilités

IAP sécurise l'authentification et l'autorisation de toutes les requêtes adressées à Cloud Run, App Engine, Cloud Load Balancing (HTTPS) et à l'équilibrage de charge HTTP interne.

Pour plus de sécurité, vous devez prendre les précautions suivantes :

  • Si vous activez IAP sur un équilibreur de charge, vérifiez si les ressources de backend sont accessibles directement.

    • Si la ressource de backend est une VM, configurez vos règles de pare-feu pour vous protéger du trafic qui ne passe pas par l'équilibreur de charge. IAP ne protège pas contre les activités au sein d'un projet, comme une autre VM dans le projet.

    • Si la ressource de backend est un service Cloud Run, vous pouvez désactiver l'URL run.app pour vous assurer que tout le trafic entrant passe par l'équilibreur de charge. Si vous choisissez de laisser l'URL run.app activée, vous devez utiliser des contrôles d'entrée pour bloquer le trafic provenant de l'extérieur de votre réseau.

  • Mettez à jour votre application pour utiliser des en-têtes signés ou l'API Users de l'environnement standard App Engine.

Étapes suivantes