1. Introduction
Présentation
Dans cet atelier, vous allez atténuer les menaces courantes qui pèsent sur l'infrastructure d'un environnement de développement d'IA. Vous implémentez des contrôles de sécurité conçus pour protéger les composants principaux de cet environnement.
Contexte
Vous êtes le responsable de la sécurité de votre équipe de développement. Votre objectif est de créer un environnement qui équilibre la facilité d'utilisation et la protection contre les menaces courantes.
Le tableau suivant liste les menaces que vous souhaitez le plus atténuer. Chaque menace est traitée par une tâche spécifique de cet atelier :
Menace | Atténuation | Tâche couverte |
Entrée non autorisée dans le réseau via des ports ouverts exploités. | Créez un VPC privé et limitez l'accès à Vertex AI à un seul utilisateur, qui passera par un proxy Google Cloud au lieu d'une adresse IP publique. | Configurer une Secure Network Foundation |
Élévation des privilèges à partir d'une instance de calcul compromise à l'aide d'identifiants disposant de trop de droits. | Créez et attribuez un compte de service avec le minimum de droits à l'instance Vertex AI. | Déployer une instance Vertex AI Workbench sécurisée |
Prise de contrôle de l'instance de la ressource de calcul, entraînant une falsification du système. | Renforcez l'instance en désactivant l'accès root et en activant le démarrage sécurisé. | Déployer une instance Vertex AI Workbench sécurisée |
Exposition publique accidentelle des données d'entraînement et des modèles en raison d'une mauvaise configuration du stockage. | Appliquez la protection contre l'accès public au bucket et utilisez des contrôles d'accès uniformes au niveau du bucket. | Déployer un bucket Cloud Storage sécurisé |
Suppression ou falsification malveillante ou accidentelle d'ensembles de données et d'artefacts de modèle. | Activez la gestion des versions d'objets pour la récupération et les journaux d'accès aux données pour obtenir une piste d'audit immuable de toutes les activités. | Déployer un bucket Cloud Storage sécurisé |
Référence rapide
Tout au long de cet atelier, vous travaillerez avec les ressources nommées suivantes :
Composant | Nom |
Nom du VPC |
|
Nom du sous-réseau |
|
Cloud Router |
|
Cloud NAT |
|
Compte de service |
|
Instance Vertex AI |
|
Bucket de stockage |
|
Points abordés
Dans cet atelier, vous allez apprendre à :
- Provisionnez un VPC sécurisé avec un réseau privé pour limiter le trafic indésirable.
- Renforcez une instance Vertex AI Workbench contre les bootkits et l'escalade de privilèges.
- Sécurisez un bucket Cloud Storage pour limiter les transferts de données non contrôlés et l'exposition publique accidentelle.
2. Configuration du projet
Compte Google
Si vous ne possédez pas encore de compte Google personnel, vous devez en créer un.
Utilisez un compte personnel au lieu d'un compte professionnel ou scolaire.
Se connecter à la console Google Cloud
Connectez-vous à la console Google Cloud à l'aide d'un compte Google personnel.
Activer la facturation
Utiliser 5 $de crédits Google Cloud (facultatif)
Pour suivre cet atelier, vous avez besoin d'un compte de facturation avec un certain crédit. Si vous prévoyez d'utiliser votre propre facturation, vous pouvez ignorer cette étape.
- Cliquez sur ce lien et connectez-vous avec un compte Google personnel. Le résultat qui s'affiche doit ressembler à ceci :

- Cliquez sur le bouton CLIQUEZ ICI POUR ACCÉDER À VOS CRÉDITS. Vous serez redirigé vers une page permettant de configurer votre profil de facturation
. - Cliquez sur Confirmer.
Vous êtes désormais connecté à un compte de facturation d'essai Google Cloud Platform.

Configurer un compte de facturation personnel
Si vous avez configuré la facturation à l'aide de crédits Google Cloud, vous pouvez ignorer cette étape.
Pour configurer un compte de facturation personnel, cliquez ici pour activer la facturation dans la console Cloud.
Remarques :
- Cet atelier devrait vous coûter moins de 1 USD en ressources Cloud.
- Vous pouvez suivre les étapes à la fin de cet atelier pour supprimer les ressources et éviter ainsi que des frais supplémentaires ne vous soient facturés.
- Les nouveaux utilisateurs peuvent bénéficier d'un essai sans frais pour un crédit de 300$.
Créer un projet (facultatif)
Si vous n'avez pas de projet que vous souhaitez utiliser pour cet atelier, créez-en un.
3. Activer les API
Configurer Cloud Shell
Une fois votre projet créé, suivez les étapes ci-dessous pour configurer Cloud Shell.
Lancer Cloud Shell
Accédez à shell.cloud.google.com et, si un pop-up vous invite à autoriser, cliquez sur Autoriser.
Définir un ID de projet
Exécutez la commande suivante dans le terminal Cloud Shell pour définir le bon Project ID (ID de projet). Remplacez <your-project-id> par l'ID de projet que vous avez copié lors de l'étape de création du projet ci-dessus.
gcloud config set project <your-project-id>
Vous devriez maintenant voir que le bon projet est sélectionné dans le terminal Cloud Shell.
Activer Vertex AI Workbench et Cloud Storage
Pour utiliser les services de cet atelier, vous devez activer les API pour Compute Engine, Vertex AI Workbench, IAM et Cloud Storage dans votre projet Google Cloud.
- Dans le terminal, activez les API :
gcloud services enable compute.googleapis.com notebooks.googleapis.com aiplatform.googleapis.com iam.googleapis.com storage.googleapis.com
Vous pouvez également activer ces API en accédant à leurs pages respectives dans la console et en cliquant sur Activer.
4. Configurer une base de réseau sécurisée
Dans cette tâche, vous allez créer un environnement réseau isolé pour tous vos services. En utilisant un réseau privé et en contrôlant les flux de données, vous créez une défense multicouche qui réduit considérablement la surface d'attaque de votre infrastructure par rapport aux ressources accessibles publiquement. Cette base de réseau sécurisée est essentielle pour protéger vos applications d'IA contre les accès non autorisés.
Créer le VPC et le sous-réseau
Dans cette étape, vous allez configurer un cloud privé virtuel (VPC) et un sous-réseau. Cela crée un environnement réseau isolé, qui constitue la première ligne de défense contre les accès réseau non autorisés.
- Dans la console Google Cloud, accédez à Réseau VPC > Réseaux VPC. Utilisez la barre de recherche en haut de la console Google Cloud pour rechercher "Réseaux VPC", puis sélectionnez cette option.
- Cliquez sur Créer un réseau VPC.
- Dans le champ Nom, saisissez
genai-secure-vpc. - Dans le champ Mode de création de sous-réseau, sélectionnez Personnalisé.
- Sous Nouveau sous-réseau, spécifiez les propriétés suivantes pour créer votre sous-réseau :
Propriété
Valeur (saisir ou sélectionner)
Nom
genai-subnet-us-central1Région
us-central1Plage d'adresses IP
10.0.1.0/24Accès privé à Google
Activé
- Cliquez sur Créer.
Créer la passerelle Cloud NAT
La passerelle Cloud NAT permet à vos instances privées d'initier des connexions sortantes (par exemple, pour les mises à jour logicielles) sans avoir d'adresse IP publique. Cela signifie que l'Internet public ne peut pas initier de connexions vers ces instances.
- Commencez par créer un routeur Cloud Router. Utilisez la barre de recherche en haut de la console Google Cloud pour rechercher "Cloud Router" et sélectionnez-le.
- Cliquez sur Créer un routeur.
- Configurez le routeur cloud avec les éléments suivants :
Propriété
Valeur (saisir ou sélectionner)
Nom
genai-router-us-central1Réseau
genai-secure-vpc(le réseau VPC que vous venez de créer)Région
us-central1 - Cliquez sur Créer.
- Accédez ensuite à Services réseau > Cloud NAT. Utilisez la barre de recherche en haut de la console Google Cloud pour rechercher "Cloud NAT", puis sélectionnez-le.
- Cliquez sur Commencer.
- Configurez la passerelle Cloud NAT avec les éléments suivants :
Propriété
Valeur (saisir ou sélectionner)
Nom de la passerelle
genai-nat-us-central1Réseau VPC
genai-secure-vpc(le réseau VPC que vous avez créé)Région
us-central1Cloud Router
genai-router-us-central1(le routeur que vous venez de configurer) - Cliquez sur Créer.
5. Déployer une instance Vertex AI Workbench sécurisée
Maintenant que vous disposez d'une base de réseau sécurisée, vous pouvez déployer une instance Vertex AI Workbench renforcée dans votre VPC sécurisé. Cette instance Workbench sert d'environnement de développement, en fournissant un espace sécurisé et isolé pour votre travail de développement d'IA. La configuration réseau précédente garantit que cette instance n'est pas directement exposée à l'Internet public, ce qui renforce la défense multicouche.
Créer un compte de service avec le principe du moindre privilège
La création d'un compte de service dédié avec le minimum d'autorisations nécessaires respecte le principe du moindre privilège. Si votre instance est compromise, cette pratique limite le "rayon d'explosion" en s'assurant qu'elle ne peut accéder qu'aux ressources et effectuer que les actions explicitement requises pour sa fonction.
- Dans la console Google Cloud, accédez à IAM et administration > Comptes de service. Utilisez la barre de recherche en haut de la console Google Cloud pour rechercher "Comptes de service", puis sélectionnez cette option.
- Cliquez sur Créer un compte de service.
- Dans le champ Nom du compte de service, saisissez
vertex-workbench-sa. - Cliquez sur Créer et continuer.
- Attribuez les rôles suivants :
Vertex AI UserStorage Object Creator
- Cliquez sur OK.
Créer l'instance Workbench
Dans cette étape, vous allez déployer votre instance Vertex AI Workbench. Cette instance est configurée pour s'exécuter dans le VPC privé que vous avez créé précédemment, ce qui l'isole davantage de l'Internet public. Vous appliquez également des mesures de renforcement de la sécurité supplémentaires directement à l'instance.
- Dans le menu de navigation de la console Google Cloud (menu hamburger), accédez à Vertex AI > Workbench. Utilisez la barre de recherche en haut de la console Google Cloud pour rechercher "Workbench", puis sélectionnez le résultat dont le sous-titre est "Vertex AI".
- Cliquez sur Créer et configurez les éléments suivants :
Propriété
Valeur (saisir ou sélectionner)
Nom
secure-genai-instanceRégion
us-central1 - Cliquez sur Options avancées.
- Cliquez sur Type de machine, puis cochez les cases suivantes :
- Démarrage sécurisé
- Module vTPM (Virtual Trusted Platform Module)
- Surveillance de l'intégrité :
- Cliquez sur Mise en réseau et configurez les éléments suivants :
Propriété
Valeur (saisir ou sélectionner)
Réseau
genai-secure-vpcSous-réseau
genai-subnet-us-central1(10.0.1.0/24)Attribuer une adresse IP externe
Désélectionnez cette option, car vous n'accédez à cette instance que par le biais d'un proxy dans Google Cloud.
- Cliquez sur IAM et sécurité, puis configurez les éléments suivants :
Propriété
Valeur (saisir ou sélectionner)
Adresse e-mail de l'utilisateur
Un seul utilisateur, puis sélectionnez l'adresse e-mail que vous utilisez actuellement pour vous connecter à Google Cloud.
Utiliser le compte de service Compute Engine par défaut
Décochez la case.
Adresse e-mail du compte de service
Saisissez l'adresse e-mail créée pour le compte de service à accès limité (remplacez
[PROJECT_ID]par votre ID réel) :vertex-workbench-sa@[PROJECT_ID].iam.gserviceaccount.comAccès root à l'instance
Décochez la case.
- Cliquez sur Créer.
Accéder à votre instance Vertex AI
Maintenant que votre instance Vertex AI Workbench est provisoire, vous pouvez y accéder de manière sécurisée. Vous vous y connectez via le proxy de Google Cloud, ce qui garantit que l'instance reste privée et n'est pas exposée à l'Internet public. Vous limitez ainsi le risque de trafic indésirable et potentiellement malveillant.
- Accédez à Vertex AI > Workbench. Vous êtes peut-être déjà sur cette page si votre instance vient d'être provisionnée. Sinon, vous pouvez utiliser le menu de navigation (menu hamburger) ou la barre de recherche de la console Google Cloud pour y accéder.
- Recherchez votre instance nommée
secure-genai-instancedans la liste. - À droite de votre instance, cliquez sur le lien Ouvrir JupyterLab.
Un nouvel onglet s'ouvre dans votre navigateur, vous donnant accès à votre instance. Vous y avez accès via Google Cloud, mais l'instance n'est pas exposée à l'Internet public, ce qui limite le risque de trafic indésirable et potentiellement malveillant.
6. Déployer un bucket Cloud Storage sécurisé
Vous allez maintenant créer un bucket Cloud Storage sécurisé pour vos ensembles de données. C'est là que sont stockés vos données d'entraînement, modèles et artefacts d'IA. En appliquant des configurations de sécurité renforcées à ce bucket, vous évitez l'exposition publique accidentelle de données sensibles et vous protégez contre les suppressions et les falsifications malveillantes ou accidentelles. Cela garantit l'intégrité et la confidentialité de vos précieuses ressources d'IA.
Créer et configurer le bucket
Dans cette étape, vous allez créer votre bucket Cloud Storage et appliquer les paramètres de sécurité initiaux. Ces paramètres appliquent la protection contre l'accès public et activent les contrôles d'accès uniformes au niveau du bucket, qui sont essentiels pour contrôler qui peut accéder à vos données.
- Dans la console Google Cloud, accédez à Cloud Storage > Buckets. Utilisez la barre de recherche en haut de la console Google Cloud pour rechercher "Buckets" (Buckets) et sélectionnez-la.
- Cliquez sur Créer.
- Dans Premiers pas, définissez le Nom sur
secure-genai-artifacts-[PROJECT_ID], en remplaçant[PROJECT_ID]par l'ID de votre projet Google Cloud. - Accédez à Choisir où stocker vos données et configurez les éléments suivants :
Propriété
Valeur (saisir ou sélectionner)
Type d'emplacement
Région
Région
us-central1 - Accédez à Choisir comment stocker vos données et conservez les paramètres par défaut.
- Passez à Choisir comment contrôler l'accès aux objets et conservez les paramètres par défaut :
Propriété
Valeur (saisir ou sélectionner)
Motif
Empêcher l'accès public
Laissez la case Appliquer la protection contre l'accès public cochée.
La protection contre l'accès public remplace toute modification apportée à IAM qui pourrait, par inadvertance, exposer un objet à Internet.
Contrôle des accès
Laissez l'option Uniforme sélectionnée.
Bien que les LCA semblent être la meilleure option pour un contrôle précis (et donc pour le principe du moindre privilège), elles introduisent de la complexité et de l'imprévisibilité lorsqu'elles sont combinées à d'autres fonctionnalités IAM. Tenez compte des compromis et des avantages de l'accès uniforme au niveau du bucket pour éviter l'exposition involontaire des données.
- Passez à Choisir comment protéger les données d'objet et conservez les paramètres par défaut :
Propriété
Valeur (saisir ou sélectionner)
Motif
Règle de suppression réversible (pour la récupération de données)
Laissez l'option Règle de suppression réversible (pour la récupération de données) sélectionnée.
En cas de suppression accidentelle ou malveillante dans le bucket, la suppression réversible vous permet de restaurer le contenu pendant la période de conservation.
Gestion des versions des objets (pour le contrôle des versions)
Sélectionnez Gestion des versions des objets (pour le contrôle des versions).
La gestion des versions d'objets permet de récupérer des données en cas d'écrasement accidentel ou malveillant, par exemple si un pirate informatique remplace un fichier inoffensif par un fichier contenant du code d'exploitation.
Nombre maximal de versions par objet
3
Bien que cette valeur soit arbitraire et puisse augmenter les coûts, elle doit être supérieure à 1 pour que vous puissiez revenir à une version précédente. Si un pirate informatique peut potentiellement tenter plusieurs écrasements, une stratégie de sauvegarde et de gestion des versions plus robuste peut être nécessaire.
Faire expirer les versions obsolètes après
7
Nous vous recommandons de conserver les anciennes versions pendant sept jours, mais ce nombre peut être plus élevé pour le stockage à long terme.
- Cliquez sur Créer.
- Si un pop-up "L'accès public sera bloqué" s'affiche, laissez la case par défaut ("Appliquer la protection contre l'accès public sur ce bucket") cochée et cliquez sur Confirmer.
Activer la protection et la journalisation des données
Pour garantir l'immuabilité et l'auditabilité de vos données, activez le versionnage des objets et configurez les journaux d'accès aux données pour votre bucket. Le versionnage des objets permet de récupérer les données en cas de suppression ou d'écrasement accidentels, tandis que les journaux d'accès aux données fournissent une piste d'audit complète de toutes les activités sur votre bucket, ce qui est essentiel pour la surveillance de la sécurité et la conformité.
- Dans la console Google Cloud, accédez à IAM et administration > Journaux d'audit. Utilisez la barre de recherche en haut de la console Google Cloud pour rechercher "Journaux d'audit", puis sélectionnez-la.
- Utilisez la recherche par filtre pour trouver et sélectionner Google Cloud Storage.
- Dans le panneau qui s'affiche, cochez les cases Lecture de données et Écriture de données.
- Cliquez sur Enregistrer.
7. Du laboratoire à la réalité
Vous venez de suivre une série d'étapes dans un environnement de laboratoire temporaire, mais les principes et les configurations que vous avez appliqués constituent le plan de sécurisation des projets d'IA concrets sur Google Cloud. Découvrez comment appliquer ce que vous avez appris à votre propre travail, en passant d'un simple atelier à une configuration prête pour la production.
Considérez les ressources que vous venez de créer (le VPC privé, l'instance Workbench renforcée et le bucket sécurisé) comme un modèle de démarrage sécurisé pour tout nouveau projet d'IA. Votre objectif est de faire de cette base sécurisée le chemin par défaut et facile pour vous et votre équipe.
Réseau sécurisé : votre espace de travail privé
Comment l'utiliser lors de la configuration
Chaque fois que vous démarrez un nouveau projet d'IA (par exemple, "customer-churn-prediction", "image-classification-model"), vous devez reproduire cette configuration réseau. Vous devez créer un VPC dédié (churn-pred-vpc) ou utiliser un réseau partagé préapprouvé. Il s'agit du "bac à sable" isolé de votre projet. Votre environnement de développement, comme Vertex AI Workbench que vous avez configuré, se trouve dans cet espace protégé. Vous vous y connecterez via le proxy sécurisé (Ouvrir JupyterLab), sans jamais l'exposer à l'Internet public.
Se connecter à la production
Dans un environnement de production, vous pouvez aller encore plus loin en tenant compte des éléments suivants :
- Infrastructure as Code (IaC) : au lieu d'utiliser la console Cloud, vous définissez ce réseau à l'aide d'outils tels que Terraform ou Cloud Deployment Manager. Cela vous permet de déployer une infrastructure réseau sécurisée pour un nouveau projet en quelques minutes, en vous assurant qu'elle est reproductible et auditable.
- VPC partagé : dans les grandes entreprises, une équipe réseau centrale gère souvent un VPC partagé. En tant que développeur, vous seriez autorisé à lancer vos instances et services dans des sous-réseaux spécifiques de ce réseau sécurisé géré de manière centralisée. Le principe est le même : vous travaillez toujours dans un espace privé, mais il fait partie d'une infrastructure partagée plus vaste.
- VPC Service Controls : pour une sécurité maximale, vous devez envelopper l'ensemble de cet environnement dans un périmètre VPC Service Controls. Il s'agit d'une fonctionnalité puissante qui empêche l'exfiltration de données en veillant à ce que des services tels que Cloud Storage ne soient accessibles qu'aux ressources autorisées dans le périmètre de votre réseau privé.
Calcul renforcé : votre plate-forme sécurisée de développement et d'entraînement
Comment l'utiliser lors de la configuration
Le secure-genai-instance est votre machine de développement d'IA au quotidien. Vous pouvez utiliser l'interface JupyterLab pour :
- Écrivez et testez le code de votre modèle dans des notebooks.
- Installez les bibliothèques Python (
pip install ...). - Faites des tests avec des ensembles de données de petite à moyenne taille. La sécurité que vous avez configurée (pas d'adresse IP publique, compte de service avec le moins de privilèges possible, pas d'accès root, démarrage sécurisé) s'exécute de manière transparente en arrière-plan. Vous pouvez vous concentrer sur votre travail d'IA, en sachant que l'instance est renforcée contre les attaques courantes.
Se connecter à la production
En production, vous n'exécutez généralement pas d'entraînement à grande échelle sur une seule instance Workbench. Vous pouvez plutôt mettre en production votre travail de différentes manières :
- Du notebook au pipeline : vous prendrez le code de votre notebook et le formaliserez dans un script. Ce script serait ensuite exécuté en tant que job d'entraînement personnalisé Vertex AI ou en tant qu'étape d'un pipeline Vertex AI.
- Conteneurisation : vous empaquetez votre code d'entraînement et ses dépendances dans un conteneur Docker, puis vous le stockez dans Artifact Registry. Cela garantit que votre code s'exécute à chaque fois dans un environnement cohérent et prévisible.
- Le compte de service est essentiel : le compte de service
vertex-workbench-saque vous avez créé est crucial. En production, vos jobs d'entraînement Vertex AI automatisés s'exécuteraient à l'aide de ce même compte de service (ou d'un compte similaire) avec le principe du moindre privilège, ce qui garantit que le job automatisé ne dispose que des autorisations dont il a absolument besoin.
Stockage sécurisé : votre dépôt d'artefacts central
Comment l'utiliser lors de la configuration
Le bucket secure-genai-artifacts est la source unique de référence pour les données de votre projet. Il ne s'agit pas seulement de l'ensemble de données initial. Vous pouvez l'utiliser pour stocker :
- Données d'entraînement brutes et prétraitées.
- Points de contrôle du modèle lors de longs entraînements.
- Artefacts du modèle entraîné final (fichiers
.pkl,.pbou.h5). - Résultats et journaux d'évaluation. Les paramètres de sécurité que vous avez appliqués (protection contre l'accès public, accès uniforme au niveau du bucket, gestion des versions et journalisation des audits) vous permettent d'utiliser ce bucket en toute confiance comme espace de stockage central, protégé contre les fuites et les suppressions accidentelles.
Se connecter à la production
Pour gérer et régir vos principes dans un environnement de production, vous devez également tenir compte des éléments suivants :
- Règles de cycle de vie : pour gérer les coûts, vous pouvez configurer des règles de cycle de vie afin de déplacer automatiquement les anciennes versions de modèles ou ensembles de données vers des classes de stockage moins coûteuses (comme Nearline ou Coldline) ou de les supprimer après une certaine période.
- Autorisations inter-projets : dans un pipeline de production, une équipe d'ingénieurs de données peut remplir ce bucket à partir d'un autre projet Google Cloud. L'accès uniforme au niveau du bucket que vous avez activé simplifie et sécurise la gestion de ces autorisations IAM inter-projets, sans avoir recours à des LCA complexes (et donc faciles à mal configurer).
Vue d'ensemble : faire de la sécurité la valeur par défaut
En adoptant ce modèle, vous faites de la sécurité une base plutôt qu'une réflexion après coup. Vous n'êtes plus seulement un développeur, mais aussi un champion de la sécurité pour votre équipe. Lorsque vous ajoutez un membre à votre équipe, vous ne lui donnez pas accès à une machine publique et non sécurisée. Vous leur donnez accès à un environnement sécurisé et préconfiguré où la méthode de travail sécurisée est aussi la plus simple. Cette approche réduit directement les risques pour l'entreprise en évitant les causes courantes de fuites de données et de compromissions de systèmes. Votre équipe peut ainsi innover et créer des applications d'IA puissantes en toute confiance.
8. Félicitations !
Félicitations ! Vous avez réussi à créer et à auditer une infrastructure multicouche et sécurisée pour votre environnement de développement de l'IA. Vous avez créé un périmètre réseau sécurisé avec une posture de pare-feu "refuser par défaut", déployé une instance de calcul renforcée, sécurisé un bucket de données et utilisé des journaux pour vérifier que vos contrôles fonctionnent exactement comme prévu.
Récapitulatif
Dans cet atelier, vous avez effectué les opérations suivantes :
- Nous avons provisionné un VPC sécurisé avec un réseau privé pour atténuer le trafic indésirable.
- Déploiement d'une instance Vertex AI Workbench renforcée contre les bootkits et l'escalade de privilèges.
- Sécurisation d'un bucket Cloud Storage pour limiter les transferts de données non contrôlés et l'exposition publique accidentelle.
- Nous avons implémenté des comptes de service avec le principe du moindre privilège pour limiter le rayon d'impact potentiel.
- Nous avons activé le versionnage des objets et les journaux d'accès aux données pour protéger les données et disposer d'une piste d'audit immuable.