Protéger Compute Engine à l'aide d'un périmètre VPC Service Controls


Ce tutoriel vous explique comment protéger Compute Engine à l'aide d'un périmètre de service et résoudre un cas de violation d'entrée pour autoriser l'accès à Compute Engine.

VPC Service Controls vous permet de définir un périmètre de service autour des ressources des services gérés par Google afin de contrôler les communications avec et entre ces services. Vous pouvez établir un périmètre de confiance zéro autour de vos ressources sensibles, en limitant l'accès aux adresses IP, utilisateurs et appareils autorisés. Cette fonctionnalité vous permet de définir des règles de sécurité qui empêchent l'accès aux services gérés par Google en dehors d'un périmètre approuvé, de bloquer l'accès aux données depuis des emplacements non approuvés et de limiter les risques d'exfiltration des données.

Ce tutoriel s'adresse aux Google Cloud administrateurs d'organisations qui souhaitent découvrir les concepts de base de VPC Service Controls.

Objectifs

  • Comprendre les principes de base de VPC Service Controls
  • Créer un périmètre de service
  • Protéger un projet à l'aide de VPC Service Controls
  • Résolvez un cas de non-respect des règles d'entrée VPC Service Controls.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

Créer un périmètre de service

Créez un périmètre de service qui protège l'API Compute Engine dans le projet My-Project-2:

  1. Dans Google Cloud Console, accédez à la page VPC Service Controls.

    Accéder à VPC Service Controls

    Assurez-vous d'être dans le champ d'application de l'organisation.

  2. Cliquez sur Gérer les règles.

  3. Créez une règle d'accès limitée au dossier Exercise.

  4. Créez un périmètre avec les informations suivantes:

    • Titre : MyFirstPerimeter

    • Type de périmètre: Standard

    • Mode d'application: Enforced (Application forcée)

    • Ressources à protéger: projet My-Project-2

    • Services soumis à des restrictions: API Compute Engine

Vérifier le périmètre

Dans cette section, vous pouvez envoyer des requêtes d'accès aux ressources des projets pour vérifier si le périmètre protège les ressources prévues.

  1. Accédez au projet My-Project-1 et vérifiez que vous pouvez accéder à Compute Engine en accédant à la page Instances de VM.

    Accéder à la page Instances de VM

    Vous devriez pouvoir y accéder, car My-Project-1 n'est pas protégé par le périmètre que vous avez créé précédemment.

  2. Accédez au projet My-Project-2 et vérifiez que vous pouvez accéder à Compute Engine en accédant à la page Instances de VM.

    Vous devriez voir que VPC Service Controls refuse votre demande d'accès à Compute Engine, car le périmètre MyFirstPerimeter protège My-Project-2 et l'API Compute Engine.

Résoudre un cas de non-respect

Les journaux d'audit VPC Service Controls incluent des détails sur les requêtes sur des ressources protégées et la raison pour laquelle VPC Service Controls a refusé la requête. Vous avez besoin de ces informations pour identifier et résoudre le problème de non-respect dans le projet My-Project-2.

Consulter les journaux d'audit

  1. Recherchez l'ID unique du non-respect de VPC Service Controls dans les journaux d'audit du projet My-Project-2:

    1. Dans la console Google Cloud, accédez à la page Explorateur de journaux.

      Accéder à l'explorateur de journaux

      Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

    2. Sélectionnez le projet My-Project-2.

    3. Pour afficher tous les journaux d'audit, saisissez la requête suivante dans le champ de l'éditeur de requête:

      resource.type="audited_resource"
      protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
      
    4. Cliquez sur Exécuter la requête.

    Cette requête affiche tous les journaux d'audit VPC Service Controls. Pour connaître les détails de l'infraction concernant l'accès à l'API Compute Engine dans le projet My-Project-2, consultez le dernier journal des erreurs.

    Pour en savoir plus, consultez la section Afficher les journaux.

  2. Dans le volet Résultats de la requête, cliquez sur VPC Service Controls à côté du refus que vous souhaitez résoudre, puis sur Dépanner le refus.

    La page Outil de dépannage VPC Service Controls s'ouvre. Cette page indique le motif du non-respect et d'autres informations, par exemple si le non-respect concerne une entrée ou une sortie.

    Dans ce tutoriel, recherchez les informations suivantes:

    "principalEmail": "USER@DOMAIN"
    "callerIp": "PUBLIC_IP_ADDRESS"
    "serviceName": "compute.googleapis.com"
    "servicePerimeterName":
    "accessPolicies/POLICY_NUMBER/servicePerimeters/MyFirstPerimeter
    "ingressViolations": [
            {
    "targetResource": "projects/PROJECT_NUMBER",
    "servicePerimeter": "accessPolicies/POLICY_NUMBER/servicePerimeters/MyFirstPerimeter"
            }
          ],
    "violationReason": "NO_MATCHING_ACCESS_LEVEL",
    "resourceNames": "PROJECT_ID"
    

    Le motif de non-respect est "NO_MATCHING_ACCESS_LEVEL". La violation "NO_MATCHING_ACCESS_LEVEL" se produit lorsque l'adresse IP, le type d'appareil ou l'identité de l'utilisateur ne correspondent à aucune règle d'entrée ni à aucun niveau d'accès associés au périmètre. Si l'adresse IP de l'appelant est manquante ou apparaît en tant qu'adresse IP interne dans le journal, cette violation peut être due à un Google Cloud service qui n'est pas compatible avec VPC Service Controls.

Pour corriger ce refus dans le projet My-Project-2, deux options s'offrent à vous:

  • Créez un niveau d'accès qui autorise l'accès à l'adresse IP de votre système au projet situé à l'intérieur du périmètre.

  • Créez une règle d'entrée qui autorise l'accès d'un client API situé en dehors du périmètre aux ressources de ce périmètre.

La section suivante explique comment résoudre ce refus en créant un niveau d'accès.

Créer un niveau d'accès

  1. Dans la console Google Cloud, accédez à la page Access Context Manager au niveau du champ d'application Exercise.

    Accéder à Access Context Manager

  2. Créez un niveau d'accès avec les informations suivantes:

    • Pour Créer des conditions en, sélectionnez Mode de base.

    • Pour When condition is met, return (Lorsque la condition est remplie, renvoyer), sélectionnez True (Vrai).

    • Sélectionnez l'attribut Sous-réseaux IP, puis spécifiez l'adresse IP publique de votre système.

    • Sélectionnez l'attribut Zones géographiques, puis indiquez votre zone géographique.

    Ce niveau d'accès n'autorise l'accès que lorsque l'adresse IP et la position géographique correspondent.

  3. Accédez à la page VPC Service Controls au niveau de l'organisation.

    Accéder à VPC Service Controls

  4. Sélectionnez la règle d'accès que vous avez créée précédemment dans ce tutoriel.

  5. Ajoutez le niveau d'accès que vous avez créé au niveau du champ d'application du dossier Exercise au périmètre MyFirstPerimeter.

Tester l'accès

Une fois le niveau d'accès ajouté, vérifiez que vous pouvez accéder à Compute Engine dans le projet My-Project-2 et créer une instance de VM.

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Créez une instance de VM.

Au bout d'une minute environ, Compute Engine crée une instance de VM. Cette action vérifie que vous disposez d'un accès complet à Compute Engine protégé dans le périmètre.

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer le projet

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Supprimer des ressources individuelles

Supprimer des instances de VM

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

Supprimer des ressources VPC Service Controls

  1. Supprimez le périmètre de service.

  2. Supprimez le niveau d'accès que vous avez créé au niveau de la portée du dossier Exercise.

Étape suivante