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 entreprises clientes 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 en permettant 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. Cela permet 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.
- Un dossier dans l'organisation.
- Deux projets GCP dans la même organisation placés sous le dossier.
- Les autorisations requises au niveau de l'organisation.
- Un compte de facturation pour les deux projets.

Configuration des ressources
- Dans la Google Cloud Console, créez un dossier dans 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 Cloud Console 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 bénéficier du programme d'essai sans frais de 300 $.
La seule ressource qui générera un coût est l'instance de VM. Vous trouverez une estimation du coût dans le simulateur de coût.
3. Créer un périmètre
Dans cet atelier, nous allons suivre les étapes suivantes :
- Dans Google Console, sélectionnez votre organisation et accédez à VPC Service Controls. Assurez-vous que vous êtes au niveau de l'organisation.

- Cliquez sur "Gérer les règles" pour créer une règle d'accès 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 "Régulier".
- 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 si vous êtes en mesure d' 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 le refus
Nous devons d'abord identifier le problème exact pour déterminer comment le résoudre.
- 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 de VPC Service Controls dans les journaux d'audit de 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 de VPC Service Controls s'affichent. Nous allons rechercher le dernier journal d'erreurs.
- Cliquez sur l'en-tête VPC Service Controls, puis sélectionnez "Résoudre le refus" pour ouvrir l'outil de dépannage de VPC Service Controls.
Cette API nous indique dans une interface utilisateur conviviale la raison de la violation 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]"
Nous avons deux options pour résoudre ce refus dans ProjectZ.
- Créer un niveau d'accès pour autoriser l'accès au projet dans le périmètre en accordant l'accès à l'adresse IP de mon système.
- Créer une règle d'entrée pour autoriser l'accès à un client API depuis l'extérieur du périmètre de service aux ressources situées à l'intérieur du périmètre de service.
Dans ce tutoriel, nous allons résoudre le problème en créant un niveau d'accès.
- Accédez à Access Context Manager au niveau du dossier (Codelab), puis créez un niveau d'accès.
- Utilisez le "mode de base" pour autoriser l'accès lorsque le sous-réseau IP et l'emplacement géographique sont respectés.

- 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 et 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 et cliquez sur Créer une instance.

- Laissez tout 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 Google Cloud Console, 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 Google Cloud Console, ouvrez la page Access Context Manager au niveau du dossier.
- Dans la grille, cliquez sur l'icône de suppression de la ligne correspondant au niveau d'accès que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Pour arrêter vos projets, procédez comme suit :
- Dans Google Cloud Console, accédez à la page Paramètres IAM et d'administration du projet que vous souhaitez supprimer.
- Sur la page "Paramètres IAM et 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 l'avez dépanné.
En savoir plus
- Consultez la documentation 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.