Révoquer l'accès à Google Cloud Platform

Ce document aborde les bonnes pratiques à appliquer pour révoquer l'accès d'une personne à un projet Google Cloud Platform. Il se divise en deux parties. La première traite de la configuration d’un projet de manière à faciliter la révocation de l'accès. La seconde présente les procédures détaillées à suivre pour révoquer l'accès d'une personne à différents types de ressources.

Contexte

Le retrait de l'accès d'une personne à vos ressources Google Cloud Platform est un moment critique. Lorsqu'un employé quitte votre entreprise, que votre contrat avec un sous-traitant prend fin ou qu'un collaborateur passe à d'autres projets, vous devez prendre certaines mesures pour révoquer complètement les accès inutiles à vos ressources.

Certaines de ces procédures sont facultatives. C'est à vous de déterminer quelles étapes sont nécessaires, en fonction de vos besoins en matière de sécurité, des produits utilisés et de la confiance accordée à la personne dont l'accès est révoqué. Ce document a pour objectif de vous aider à élaborer des règles et des procédures qui vous conviennent et qui sont adaptées à votre utilisation de GCP.

Configurer votre projet

Vous pouvez améliorer la capacité de votre projet à révoquer efficacement et en toute sécurité l'accès des utilisateurs en faisant des choix judicieux au moment de la configuration.

Limiter l'accès aux VM

Les machines virtuelles, telles que celles utilisées par Google Compute Engine, Google Kubernetes Engine et l'environnement flexible App Engine, constituent d'importants vecteurs d'attaques potentielles. Si une personne a déjà eu accès à une VM, en particulier un accès root ou administrateur, il est extrêmement difficile de savoir si elle n'a pas modifié la VM et laissé une porte dérobée pour pouvoir y accéder plus tard. Limitez l'accès des VM aux personnes qui en ont clairement et spécifiquement besoin. Sachez que par défaut, les éditeurs et les propriétaires de projet disposent d'un accès administrateur à toutes les VM du projet.

Avant d’accorder à une personne un droit de connexion, réfléchissez bien à ce pour quoi elle en a besoin et envisagez d'autres moyens éventuels de répondre à ces besoins. Au lieu d'accorder à chaque développeur un droit de connexion pour déployer du code, étudiez la possibilité d'utiliser des outils tels que Chef, Puppet et Salt pour gérer vos déploiements.

Préparer la rotation des identifiants

Vous devez concevoir vos projets et vos ressources de manière à permettre une rotation facile et sans interruption des identifiants au niveau du projet. Il s'agit de codes secrets liés au projet lui-même, tels que des clés de compte de service, des codes secrets du client OAuth, ainsi que de codes secrets spécifiques à une application, tels que des mots de passe racines de base de données. Planifiez cette préparation dès maintenant pour faciliter le déploiement de nouveaux identifiants dans les applications qui en ont besoin.

Restreindre les clés API

Lors de la création et de la gestion de clés API, limitez le nombre de sites Web, d'adresses IP et d'applications pouvant les utiliser. Les clés API étant visibles par tous les membres du projet, vous devez alterner ou supprimer les clés sans restriction, afin de révoquer l'accès à la facturation. Consultez les bonnes pratiques concernant l'utilisation sécurisée des clés API pour planifier votre utilisation en conséquence.

Révoquer l'accès

Si vous avez fait de bons choix dans la configuration du projet, les procédures suivantes constitueront un moyen sûr et efficace pour révoquer l'accès d'une personne.

Supprimer le compte de l'abonnement au projet

  1. Dans la console Google Cloud Platform, accédez à la page des autorisations IAM.

    Autorisations IAM

  2. Sélectionnez le projet duquel vous souhaitez supprimer un compte.

  3. Cochez la case à côté de la ligne contenant le compte que vous souhaitez supprimer de la liste des membres, puis cliquez sur Supprimer. Vous pouvez également cliquer sur l'icône de la corbeille située à côté du compte que vous souhaitez supprimer.

Alterner les identifiants du projet

Clés de compte de service

Un compte de service est un type particulier de compte Google destiné à représenter un utilisateur non humain qui doit s'authentifier et obtenir les autorisations permettant d'accéder aux données des API Google.

Seuls les propriétaires de projet peuvent créer des comptes de service ou des clés pour les comptes de service existants. Si la personne dont l'accès est révoqué était propriétaire du projet, vous devez alterner toutes les clés de compte de service existantes. Si la personne n'était pas propriétaire du projet, vous pouvez ignorer cette étape. Déterminez néanmoins si la personne peut avoir eu accès aux clés de compte de service en dehors des outils sécurisés de Google Cloud Platform, tels que votre référentiel de code source ou vos configurations d'application.

  1. Dans la console Google Cloud Platform, accédez à la page des identifiants de l'API.

    Identifiants de l'API

  2. Cliquez sur Créer des identifiants, puis sélectionnez Clé de compte de service.

  3. Sélectionnez le compte cible dans le menu Compte de service.

  4. Choisissez le type de clé que vous souhaitez créer. Dans la plupart des cas, JSON est recommandé, mais P12 est également disponible, pour assurer la rétrocompatibilité avec le code qui en dépend.

  5. Cliquez sur Créer. Un fichier contenant la nouvelle clé sera automatiquement téléchargé via votre navigateur. Déployez cette clé sur toutes les applications qui en ont besoin.

  6. Après avoir vérifié que la nouvelle clé fonctionne comme prévu, retournez à la page des identifiants et supprimez l'ancienne clé associée à ce compte de service.

Codes secrets d'ID client OAuth

Les codes secrets d'ID client OAuth ne fournissent aucun accès direct à votre projet. Toutefois, si un pirate pouvait voler les jetons d'actualisation OAuth fournis par Google pour le compte des utilisateurs de votre application, l'obtention du code secret d'ID client permettrait au pirate d'accéder aux comptes Google de vos utilisateurs, en bénéficiant d'un champ d'application identique à celui demandé à l'origine par votre application.

Les codes secrets d'ID client OAuth sont visibles par tous les propriétaires et éditeurs de projet, mais pas par les lecteurs. Si la personne dont l'accès est révoqué n'était ni propriétaire ni éditeur, vous pouvez ignorer cette étape. Déterminez néanmoins si la personne peut avoir eu accès aux codes secrets d'ID client en dehors des outils sécurisés de Google Cloud Platform, tels que votre référentiel de code source ou vos configurations d'application.

  1. Dans la console Google Cloud Platform, accédez à la page des identifiants de l'API.

    Identifiants de l'API

  2. Cliquez sur le nom de l'ID client OAuth 2.0 que vous souhaitez modifier. Une page d'ID client s'affiche avec les détails de l'ID sélectionné.

  3. Sur la page d'ID client, cliquez sur Réinitialiser le code secret.

  4. Cliquez sur Réinitialiser dans la boîte de dialogue de confirmation pour révoquer immédiatement l'ancien code secret et en définir un nouveau. Sachez que tout utilisateur actif devra s'authentifier de nouveau lors de sa prochaine requête.

  5. Déployez le nouveau code secret dans toutes les applications qui en ont besoin.

Clés API

Les clés API ne permettent pas d'accéder à votre projet ni aux données de vos utilisateurs, mais elles permettent de savoir qui Google doit facturer pour les requêtes API. Tous les membres du projet peuvent voir les clés API de votre projet. Si vous disposez de clés sans restriction, vous devez les supprimer ou les regénérer lorsque vous révoquez l'accès d'une personne à votre projet.

  1. Dans la console Google Cloud Platform, accédez à la page des identifiants de l'API.

    Identifiants de l'API

  2. Cliquez sur Créer des identifiants, puis sélectionnez Clé API.

  3. Une boîte de dialogue affiche la clé qui vient d'être créée. Déployez cette clé sur toutes les applications qui utilisent la clé que vous souhaitez remplacer.

  4. Après avoir vérifié que vos applications fonctionnent comme prévu avec la nouvelle clé, revenez à la page des identifiants et supprimez l'ancienne clé sans restriction.

Révoquer l'accès aux VM

Si la personne dont vous révoquez l'accès ne dispose d'aucun droit de connexion à l'une des VM de votre projet, vous pouvez ignorer cette étape.

  1. Supprimez toutes les clés SSH au niveau du projet auxquelles la personne avait accès.

  2. Sur chaque VM dans laquelle la personne disposait d'un accès SSH, supprimez toutes les clés au niveau de l'instance.

  3. Supprimez le compte de la personne de toutes les VM dans lesquelles elle disposait d'un droit de connexion.

  4. Recherchez les applications suspectes que la personne peut avoir installées pour disposer d'un accès détourné à la VM. Si vous n'êtes pas sûr de la sécurité d'un code exécuté sur la VM, recréez-le et redéployez les applications dont vous avez besoin à partir de la source.

  5. Vérifiez que les paramètres de pare-feu de la VM n'ont pas été modifiés par rapport à la configuration que vous avez planifiée ou prévue.

  6. Si vous créez des VM à partir d'images de base personnalisées, vérifiez que ces images n'ont pas été modifiées de manière à compromettre la sécurité des nouvelles VM.

Révoquer l'accès aux bases de données Cloud SQL

Si votre projet ne fait appel à aucune ressource Cloud SQL, vous pouvez ignorer cette étape.

  1. Dans la console Google Cloud Platform, accédez à la page Instances SQL.

    Instances SQL

  2. Cliquez sur l'ID de l'instance de la base de données à laquelle vous souhaitez révoquer l'accès.

  3. Cliquez sur Contrôle des accès. Dans cet onglet, vérifiez que la liste des adresses IP sous Réseaux autorisés et la liste des applications sous Autorisation App Engine correspondent à ce que vous souhaitez. Si la personne dont vous révoquez l'accès a accès aux réseaux ou aux applications répertoriées ici, elle peut accéder à cette base de données.

  4. Cliquez sur Utilisateurs. Dans cet onglet, supprimez ou modifiez le mot de passe de tous les comptes utilisateur auxquels la personne a eu accès. Veillez à mettre à jour les applications qui dépendent de ces comptes utilisateur.

Redéployer App Engine

Les applications App Engine ont par défaut accès à un compte de service qui est éditeur du projet associé. Les gestionnaires de requêtes App Engine peuvent effectuer des opérations comme la création de VM, ou encore la lecture ou la modification des données dans Cloud Storage. Une personne ayant la capacité de déployer du code dans App Engine pourrait utiliser ce compte de service pour ouvrir une porte dérobée dans votre projet. Si l'intégrité du code de vos applications déployées vous préoccupe, vous pouvez les redéployer (avec tous les modules) à l'aide d'une bonne extraction connue depuis votre système de contrôle des versions.

Vérifier les autorisations sur les autres ressources

Examinez les autres ressources de votre projet auxquelles la personne peut avoir eu accès, et vérifiez que les autorisations concernant ces objets sont sécurisées. Les ressources à vérifier sont les suivantes :

Étapes suivantes

Consultez la présentation de Google Cloud Security.