1. Introduction
VPC Service Controls (VPC-SC) est un contrôle de sécurité au niveau de l'organisation dans Google Cloud qui permet aux clients Enterprise de limiter les risques d'exfiltration de données. VPC Service Controls permet de mettre en place des accès "zéro confiance" aux services mutualisés. Pour ce faire, il permet aux clients de limiter l'accès aux adresses IP autorisées, au contexte du client et aux paramètres de l'appareil tout en se connectant aux services mutualisés depuis Internet ou d'autres services. L'objectif est de réduire les pertes intentionnelles et non intentionnelles. VPC Service Controls vous permet de créer des périmètres qui protègent les ressources et les données des services que vous spécifiez explicitement.
Les objectifs de ce tutoriel sont les suivants :
- Comprendre les principes de base de VPC Service Controls
- Créer un périmètre de service VPC
- Protéger un projet avec VPC Service Controls
- Résoudre un problème de non-respect des règles d'entrée VPC Service Controls
2. Préparation
Pour ce tutoriel, nous avons besoin des prérequis suivants :
- Une organisation GCP.
- Dossier sous l'organisation.
- Deux projets GCP de la même organisation placés dans le dossier.
- Les autorisations requises au niveau de l'organisation.
- Compte de facturation pour les deux projets.

Configurer les ressources
- Dans la console Google Cloud, créez un dossier sous l'organisation et deux nouveaux projets (vous pouvez réutiliser des projets existants).
(Si vous ne possédez pas encore de compte Google Workspace/Cloud Identity, vous devez en acquérir un, car vous aurez besoin d'une organisation pour ce tutoriel.)
- Vérifiez que vous disposez des autorisations appropriées pour ce tutoriel au niveau de l'organisation.
- Rôles IAM pour les dossiers
- Autorisations et rôles pour les projets
- Autorisations et rôles requis pour configurer VPC Service Controls
- Autorisations et rôles requis pour gérer Compute Engine
- Assurez-vous que les deux projets sont disponibles dans le dossier, car nous devons créer une règle limitée au niveau du dossier. Découvrez comment déplacer un projet dans un dossier.

Coût
Vous devez activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.
Seule l'instance de VM générera des coûts. Vous trouverez une estimation des coûts dans le simulateur de coût.
3. Créer un périmètre
Dans cet atelier, nous allons effectuer les étapes suivantes :
- Dans la console Google, sélectionnez votre organisation et accédez à VPC Service Controls. Veuillez vous assurer d'être au niveau de l'organisation.

- Cliquez sur "Gérer les règles" pour créer une règle d'accès dont la portée est limitée au dossier "Codelab".

- Créez un périmètre en mode forcé. Pour ce tutoriel, nous allons l'appeler "SuperProtection".
- Lorsque vous créez le périmètre, sélectionnez le projet à appliquer en tant que ProjectZ.
- Sélectionnez le type de périmètre "Standard".
- Dans la boîte de dialogue Spécifier les services à limiter, sélectionnez le service à limiter en tant que "Compute Engine".
La configuration du périmètre doit se présenter comme suit :

4. Vérifier que le périmètre a été appliqué
- Accédez à ProjectX et vérifiez si vous pouvez accéder à l'API Compute Engine en accédant à la page d'accueil des instances de VM. Vous devriez pouvoir le faire, car projectX n'est pas protégé par le périmètre VPC-SC créé.
- Accédez à ProjectZ et vérifiez que vous pouvez accéder à Compute Engine. Vous pouvez constater que la requête a été interdite par VPC Service Controls, car le périmètre de service SuperProtection protège ProjectZ et l'API Compute Engine.

5. Résoudre les problèmes de refus
Pour résoudre le problème, nous devons d'abord identifier sa nature exacte.
- Les journaux de VPC Service Controls incluent des détails au sujet des requêtes sur des ressources protégées et la raison pour laquelle VPC Service Controls a refusé la requête. Recherchons l'ID unique VPC Service Controls dans les journaux d'audit ProjectZ à l'aide de la requête suivante dans l'explorateur de journaux :
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
Tous les journaux d'audit VPC Service Controls s'affichent. Nous allons rechercher le dernier journal d'erreur.
- Cliquez sur l'en-tête VPC Service Controls, puis sélectionnez "Dépanner le refus". L'outil de dépannage de VPC Service Controls s'ouvre.
Cette API nous indiquera dans une interface utilisateur conviviale la raison de la non-conformité, et si elle concerne l'entrée ou la sortie, entre autres informations utiles.
Pour cet exercice, nous allons rechercher les éléments suivants :
"principalEmail": "user@domain"
"callerIp": "PUBLIC_IP_ADDRESS"
"serviceName": "compute.googleapis.com"
"servicePerimeterName":
"accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection
"ingressViolations": [
{
"targetResource": "projects/[PROJECT_NUMBER]",
"servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection"
}
],
"violationReason": "NO_MATCHING_ACCESS_LEVEL",
"resourceNames": "[PROJECT_ID]"
Deux options s'offrent à vous pour corriger ce refus dans ProjectZ.
- Créer un niveau d'accès pour autoriser l'accès au projet situé dans le périmètre en accordant l'accès à l'adresse IP de mon système.
- Créez une règle d'entrée pour autoriser l'accès d'un client API situé en dehors du périmètre de service aux ressources d'un périmètre de service.
Dans ce tutoriel, nous allons résoudre les problèmes en créant un niveau d'accès.
- Accédez à Access Context Manager au niveau du dossier (atelier de programmation), puis créez un niveau d'accès.
- Utilisez le "mode de base". Nous autoriserons l'accès lorsque le sous-réseau IP et l'emplacement géographique correspondront.

- Accédez à VPC Service Controls au niveau de l'organisation. Sélectionnez votre règle d'accès pour cet atelier de programmation et modifiez le périmètre que nous avons créé précédemment.
- Ajoutez le niveau d'accès créé au niveau du dossier, puis enregistrez.

6. Résultats des tests.
Vérifiez que nous avons accès à Compute Engine et que nous pouvons créer une instance de VM. Maintenant que nous avons créé le niveau d'accès, essayons d'accéder à Compute Engine dans ProjectZ et de créer une instance de VM.
- Accédez à Compute Engine, puis cliquez sur Créer une instance.

- Conservez toutes les valeurs par défaut et essayez de créer une instance de VM à faible coût.
Au bout d'une minute environ, l'instance de VM devrait être créée. Vous pouvez alors vérifier que vous disposez d'un accès complet à Compute Engine protégé à l'intérieur du périmètre.

7. Nettoyage
Bien que l'utilisation de VPC Service Controls ne fasse pas l'objet d'une facturation distincte lorsque le service n'est pas utilisé, il est recommandé de nettoyer la configuration utilisée dans cet atelier. Vous pouvez également supprimer votre instance de VM et/ou vos projets Cloud pour éviter des frais. La suppression de votre projet Cloud arrête la facturation de toutes les ressources utilisées dans ce projet.
- Pour supprimer votre instance de VM, cochez la case à gauche de son nom, puis cliquez sur Supprimer.

- Pour supprimer le périmètre, procédez comme suit :
- Dans la console Google Cloud, cliquez sur Sécurité, puis sur VPC Service Controls au niveau de l'organisation.
- Sur la page "VPC Service Controls", dans la ligne du tableau correspondant au périmètre que vous souhaitez supprimer, cliquez sur l'icône de suppression.
- Pour supprimer le niveau d'accès, procédez comme suit :
- Dans la console Google Cloud, ouvrez la page Access Context Manager au niveau du dossier.
- Dans la grille, sur la ligne du niveau d'accès que vous souhaitez supprimer, cliquez sur l'icône Supprimer, puis sur Supprimer.
- Pour arrêter vos projets, procédez comme suit :
- Dans la console Google Cloud, accédez à la page Paramètres IAM et administration du projet que vous souhaitez supprimer.
- Sur la page "IAM et paramètres d'administration", cliquez sur Arrêter.
- Saisissez l'ID du projet, puis cliquez sur Arrêter quand même.
8. Félicitations !
Dans cet atelier de programmation, vous avez créé un périmètre VPC Service Controls, l'avez appliqué et avez résolu les problèmes associés.
En savoir plus
- Consultez la documentation de VPC Service Controls.
- Consultez la documentation Access Context Manager.
- Consultez la documentation de l'outil de dépannage de VPC-SC.
Licence
Ce document est publié sous une licence Creative Commons Attribution 2.0 Generic.