VPC Service Controls peut vous aider à limiter le risque d'exfiltration de données de l'IA Vertex. Utilisez VPC Service Controls pour créer un périmètre de service qui protège les ressources et les données que vous spécifiez. Par exemple, lorsque vous utilisez VPC Service Controls pour protéger Vertex AI, les artefacts suivants ne peuvent pas quitter votre périmètre de service :
- Données d'entraînement pour un modèle AutoML ou un modèle personnalisé
- Modèles que vous avez créés
- Modèles que vous avez recherchés à l'aide de Neural Architecture Search
- Demandes d'inférences en ligne
- Résultats d'une requête d'inférence par lot
- Modèles Gemini
Contrôler l'accès aux API Google
Les API Vertex AI, comme indiqué dans Accéder à Vertex AI depuis un environnement sur site et multicloud, englobent un éventail d'options d'accessibilité, y compris l'Internet public, Private Service Connect pour les API Google et l'accès privé à Google.
Accès public
Par défaut, ces API publiques sont accessibles depuis Internet. Toutefois, des autorisations IAM sont requises pour les utiliser. Bien que des fonctionnalités telles que Private Service Connect et l'accès privé à Google facilitent la communication privée sur les architectures de réseau hybrides, elles n'éliminent pas l'accessibilité à Internet public pour les API Vertex AI.
Pour établir un contrôle précis sur l'accès aux API et limiter explicitement l'exposition à l'Internet public, il est essentiel d'implémenter VPC Service Controls. Cette couche de sécurité permet aux administrateurs de définir et d'appliquer des règles d'accès, en activant sélectivement la connectivité publique ou privée aux API Google pour répondre aux exigences de l'organisation.
Accès privé
Les organisations qui doivent limiter l'accès public aux API Google à un accès privé peuvent utiliser VPC Service Controls en association avec les API Google Private Service Connect (bundle VPC Service Controls) ou l'accès privé à Google. Lorsqu'elles sont déployées sur un réseau hybride et dans Google Cloud, les deux options permettent un accès privé aux API Google depuis un environnement sur site. Toutefois, Private Service Connect offre également la possibilité de définir une adresse IP et un nom de point de terminaison DNS personnalisés.
Nous vous recommandons d'utiliser l'adresse IP virtuelle (VIP) restreinte avec les API Google Private Service Connect ou l'accès privé à Google pour fournir une route de réseau privée aux requêtes adressées aux services Google Cloud sans exposer les requêtes sur Internet. L'adresse IP virtuelle restreinte est compatible avec toutes les API que VPC Service Controls peut protéger et qui nécessitent des considérations pour les réseaux sur site et VPC. Voici quelques exemples :
Contrôler l'accès aux API via l'accès aux services privés
Les API Vertex AI suivantes déployées avec l'accès aux services privés nécessitent une configuration réseau supplémentaire lorsqu'elles sont implémentées dans un environnement protégé par VPC Service Controls :
- Vector Search (requête d'index)
- Entraînement personnalisé (plan de données)
- Vertex AI Pipelines
- Points de terminaison de prédiction en ligne privés
Par exemple, Vertex AI Pipelines est un service géré par Google (producteur), déployé dans un projet et un réseau VPC à locataire unique, avec la possibilité de faire évoluer les services compatibles en fonction des exigences des clients. La communication entre les réseaux producteur et consommateur est établie avec l'appairage de réseaux VPC, à l'exception de la sortie Internet, qui est acheminée via le réseau producteur.
Dans le réseau du producteur, il existe une route par défaut qui permet la sortie Internet, en plus d'un accès illimité aux API Google. Pour que le réseau du producteur soit compatible avec l'adresse IP virtuelle restreinte, vous devez activer VPC Service Controls pour les appairages. Cette opération effectue les actions suivantes sur tous les services compatibles déployés dans le réseau du producteur Service Networking :
- Supprime la route IPv4 par défaut (destination
0.0.0.0/0
, passerelle Internet par défaut de saut suivant). - Crée des zones privées gérées par Cloud DNS et les autorise pour le réseau VPC du producteur de services. Les zones incluent
googleapis.com
,pkg.dev
,gcr.io
et d'autres domaines ou noms d'hôte nécessaires pour les API et services Google compatibles avec VPC Service Controls. - Les données d'enregistrement dans les zones résolvent tous les noms d'hôte en
199.36.153.4
,199.36.153.5
,199.36.153.6
et199.36.153.7
.
Une autre méthode pour supprimer la route par défaut du réseau du producteur sans impacter les services gérés par Google existants consiste à utiliser un VPN haute disponibilité sur Cloud Interconnect. Voici les étapes à suivre :
- Déployez un réseau VPC de services en plus du VPN haute disponibilité sur le réseau VPC consommateur.
- Déployez les services gérés par Google dans le réseau VPC de services.
- Activez VPC Service Controls pour les appairages.
- Annoncez le sous-réseau d'accès aux services privés en tant qu'annonce de routage personnalisée à partir du routeur Cloud Router si les services gérés nécessitent une accessibilité sur site.
- Mettez à jour l'appairage de réseaux VPC Service Networking avec l'option Exporter les routes personnalisées.
Créer un périmètre de service
Pour obtenir un aperçu de la création d'un périmètre de service, consultez Créer un périmètre de service dans la documentation de VPC Service Controls.
Ajouter des services restreints à votre périmètre
Lorsque vous établissez un périmètre de service, nous vous recommandons d'inclure tous les services restreints en tant que bonne pratique de sécurité. Cette approche globale permet de minimiser les failles potentielles et les accès non autorisés. Toutefois, il peut arriver que votre organisation ait des exigences spécifiques axées sur la protection de Vertex AI et de ses API interconnectées. Dans ce cas, vous avez la possibilité de sélectionner et d'inclure uniquement les API Vertex AI spécifiques qui sont essentielles à vos opérations.
Voici quelques exemples d'API Vertex AI que vous pouvez intégrer à votre périmètre de service :
- L'API Vertex AI est compatible avec les services et fonctionnalités suivants :
- Inférence par lot
- Ensembles de données
- Vertex AI Feature Store (livraison en ligne Bigtable)
- Vertex AI Feature Store (livraison en ligne optimisée)
- IA générative sur Vertex AI (Gemini)
- Vertex AI Model Registry
- Inférence en ligne
- Vector Search (création d'index)
- Vector Search (requête d'index)
- Entraînement personnalisé (plan de contrôle)
- Entraînement personnalisé (plan de données)
- Vertex AI Pipelines
- Points de terminaison d'inférence en ligne privés
- Colab Enterprise
- Vertex AI Agent Engine
- L'API Notebooks est compatible avec le service suivant :
- Vertex AI Workbench
Compatibilité de VPC Service Controls avec les pipelines de réglage de l'IA générative
La compatibilité de VPC Service Controls est assurée dans le pipeline de réglage des modèles suivants :
text-bison for PaLM 2
BERT
T5
- La famille de modèles
textembedding-gecko
.
Utiliser VPC Service Controls avec Vertex AI Pipelines
Le périmètre de service bloque l'accès de Vertex AI aux API et services tiers sur Internet. Si vous utilisez des composants de pipeline Google Cloud ou créez vos propres composants de pipeline personnalisés pour les utiliser avec Vertex AI Pipelines, vous ne pouvez pas installer les dépendances PyPI à partir du registre public Python Package Index (PyPI). Vous devez plutôt effectuer l'une des opérations suivantes :
Utiliser des conteneurs personnalisés
En tant que bonne pratique pour les logiciels de production, les auteurs de composants doivent utiliser des composants Python conteneurisés et intégrer les dépendances dans leur image de conteneur. Ainsi, aucune installation en direct n'est requise lors de l'exécution d'un pipeline. Voici une façon de procéder :
Créez votre propre image de conteneur avec le SDK Kubeflow Pipelines et d'autres packages préinstallés. Par exemple, vous pouvez utiliser
us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-17:latest
comme couche de base de votre image et ajouter une couche supplémentaire pour installer les packages lors de la création du conteneur.Mettez à jour le code de définition de votre composant pour définir le chemin d'accès
base_image
et le flaginstall_kfp_package
surFalse
. Cet indicateur indique au compilateur KFP de ne pas injecter de commandepip install kfp
dans la ligne de commande du conteneur, car le package SDK Kubeflow Pipelines est déjà installé dans l'image. Exemple :@component( base_image='gcr.io/deeplearning-platform-release/tf-cpu.2-17', install_kfp_package=False, ) def my_component(...): ...
Installer des packages à partir d'un dépôt Artifact Registry
Vous pouvez également créer un dépôt Artifact Registry dans votre projet, y stocker des packages Python et configurer votre environnement Vertex AI pour qu'il les installe, comme indiqué dans cette section. Pour en savoir plus, consultez Gérer les packages Python.
Configurer les rôles et les autorisations
Le compte de service de votre environnement Vertex AI doit disposer du rôle
iam.serviceAccountUser
.Si vous installez des packages PyPI personnalisés à partir d'un dépôt dans le réseau de votre projet et que ce dépôt ne possède pas d'adresse IP publique :
Attribuez des autorisations d'accès à ce dépôt au compte de service de l'environnement.
Assurez-vous que la connectivité à ce dépôt est configurée dans votre projet.
Créer le dépôt
- Créez un dépôt Artifact Registry en mode VPC dans votre projet.
- Stockez les packages Python requis dans le dépôt.
Configurer l'environnement Vertex AI pour l'installation à partir du dépôt
Pour installer des packages PyPI personnalisés à partir d'un ou de plusieurs dépôts Artifact Registry, effectuez un appel semblable à ce qui suit à @dsl.component
:
@dsl.component(packages_to_install=["tensorflow"],
pip_index_urls=['http://myprivaterepo.com/simple', 'http://pypi.org/simple'],)
def hello_world(text: str) -> str:
import my_package
import tensorflow
return my_package.hello_world(text)
Limites
Les limites suivantes s'appliquent lorsque vous utilisez VPC Service Controls :
- Pour l'étiquetage de données, vous devez ajouter les adresses IP des étiqueteurs à un niveau d'accès.
- Pour les composants de pipeline Google Cloud , les composants lancent des conteneurs qui vérifient que leur image de base remplit toutes les exigences.
Le package KFP, ainsi que tous les packages répertoriés dans l'argument
packages_to_install
, sont les conditions requises pour un conteneur. Si des exigences spécifiées ne sont pas déjà présentes dans l'image de base (fournie ou personnalisée), le composant tente de les télécharger à partir de l'index de packages Python (PyPI). Étant donné que le périmètre de service bloque l'accès de Vertex AI aux API et services tiers sur Internet, le téléchargement échoue avecConnection to pypi.org timed out
. Pour savoir comment éviter cette erreur, consultez Utiliser VPC Service Controls avec Vertex AI Pipelines. - Lorsque vous utilisez VPC Service Controls avec des noyaux personnalisés dans Vertex AI Workbench, vous devez configurer l'appairage DNS pour envoyer des requêtes pour
*.notebooks.googleusercontent.com
au sous-réseau 199.36.153.8/30 (private.googleapis.com
) au lieu de 199.36.153.4/30 (restricted.googleapis.com
). - Lorsque vous utilisez VPC Service Controls avec Vertex AI Inference, les points de terminaison doivent être créés après l'ajout du projet au périmètre de service. Si un point de terminaison est créé dans un projet qui ne fait pas partie d'un périmètre de service, et que ce projet est ensuite ajouté à un périmètre de service, toute tentative de déploiement d'un modèle sur ce point de terminaison échouera. Si le point de terminaison est un point de terminaison public partagé, l'envoi d'une requête au point de terminaison échouera également. De même, toute tentative de déploiement d'un modèle sur un point de terminaison échouera si le point de terminaison a été créé dans un projet qui faisait partie d'un périmètre de service, puis que le projet a été supprimé.
Étapes suivantes
- Regardez la vidéo VPC Service Controls : segmenter vos projets cloud dans un VPC partagé.
- Regardez la vidéo Utiliser le mode de simulation dans VPC Service Controls.
- Regardez la vidéo VPC Service Controls : créer des contrôles d'accès précis avec les adresses IP privées.
- Apprenez-en plus sur VPC Service Controls.
- En savoir plus sur les rôles requis pour VPC Service Controls
- Découvrez comment résoudre les problèmes liés à VPC Service Controls.