VPC Service Controls avec Vertex AI

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
  • Requêtes de prédictions en ligne
  • Résultats des requêtes de prédiction par lot
  • Modèles Gemini

Contrôler l'accès aux API Google

Comme indiqué dans la section Accéder à Vertex AI sur site et dans un environnement multicloud, les API Vertex AI incluent un éventail d'options d'accessibilité, y compris l'accès à 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 via des architectures 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 à Internet public, l'implémentation de VPC Service Controls devient essentielle. Cette couche de sécurité permet aux administrateurs de définir et d'appliquer des règles d'accès, en activant de manière sélective 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 aux API Google publiques à un accès privé peuvent utiliser VPC Service Controls en association avec les API Google Private Service Connect (groupe 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 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 qui nécessitent des considérations pour les réseaux sur site et VPC. Voici quelques exemples :

Contrôler l'accès à l'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 à locataire unique et un réseau VPC, avec la possibilité d'adapter les services compatibles en fonction des exigences des consommateurs. 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, une route par défaut permet la sortie Internet, en plus d'un accès illimité aux API Google. Pour mettre à jour le réseau du producteur afin qu'il prenne en charge l'adresse IP virtuelle restreinte, vous devez activer VPC Service Controls pour les appairages, qui effectue les actions suivantes sur tous les services compatibles déployés dans votre réseau de production de services Networking:

  • Supprime la route par défaut IPv4 (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ôtes en 199.36.153.4, 199.36.153.5, 199.36.153.6 et 199.36.153.7.

Une autre méthode pour supprimer la route par défaut du réseau du producteur sans affecter les services gérés par Google consiste à utiliser un VPN haute disponibilité sur Cloud Interconnect, en procédant comme suit:

  1. Déployez un réseau VPC de services en plus d'un VPN haute disponibilité sur le réseau VPC consommateur.
  2. Déployez les services gérés par Google dans le réseau VPC des services.
  3. Activez VPC Service Controls pour les appairages.
  4. Annoncer 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 connectivité sur site.
  5. Mettez à jour l'appairage de réseaux VPC de Service Networking avec l'option exporter des routes personnalisées.

Créer un périmètre de service

Pour en savoir plus sur la création d'un périmètre de service, consultez la section 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 limités en tant que bonne pratique de sécurité. Cette approche globale permet de réduire les failles potentielles et les accès non autorisés. Toutefois, il est possible 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 pour vos opérations.

Les API Vertex AI que vous pouvez intégrer à votre périmètre de service incluent les suivantes:

  • L'API Vertex AI est compatible avec les services et fonctionnalités suivants :
    • Prédiction 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
    • Prédiction 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 de prédiction en ligne privés
    • Colab Enterprise
  • 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 à utiliser avec Vertex AI Pipelines, vous ne pouvez pas installer de dépendances PyPI à partir du registre public de l'index de paquets Python (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 compiler les dépendances dans leur image de conteneur. Aucune installation en direct n'est donc requise lors de l'exécution d'un pipeline. Le SDK Kubeflow Pipelines permet de conteneuriser votre code Python. Pour en savoir plus, consultez la section Composants Python conteneurisés.

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 l'installer à partir de celui-ci, comme indiqué dans cette section. Pour en savoir plus, consultez la section Gérer les packages Python.

Configurer les rôles et les autorisations

  1. Le compte de service de votre environnement Vertex AI doit disposer du rôle iam.serviceAccountUser.

  2. 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 dispose pas d'adresse IP publique:

    1. Attribuez des autorisations d'accès à ce dépôt au compte de service de l'environnement.

    2. Assurez-vous que la connectivité à ce dépôt est configurée dans votre projet.

Créer le dépôt

  1. Créez un dépôt Artifact Registry en mode VPC dans votre projet.
  2. Stockez les packages Python requis dans le dépôt.

Configurer l'environnement Vertex AI pour l'installer à 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 à celui-ci à @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 Google Cloud composants de pipeline, 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 certaines 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 avec Connection to pypi.org timed out. Pour savoir comment éviter cette erreur, consultez la section 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).

Étape suivante