Authentifier les requêtes d'API Vertex AI

Cette page explique comment authentifier les appels aux services Vertex AI sur Google Distributed Cloud (GDC) avec isolation physique. Vous devez configurer l'authentification par jeton pour sécuriser vos requêtes adressées à l'API Vertex AI dans vos applications sous air gap. Ce processus valide vos requêtes API en fournissant votre identité et en autorisant vos interactions.

Cette page s'adresse aux développeurs d'applications au sein de groupes d'opérateurs d'applications chargés de configurer leurs environnements d'application et de développement pour activer les fonctionnalités d'IA. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.

Avant de commencer

Pour authentifier les requêtes API et configurer des comptes de service, demandez les autorisations nécessaires à votre administrateur. Assurez-vous également que votre projet est configuré pour Vertex AI. Pour en savoir plus, consultez Configurer un projet pour Vertex AI.

  • Veillez à mettre à jour votre magasin de confiance local avant de configurer l'authentification dans votre environnement de développement.

Demander des rôles IAM

Contactez l'administrateur de projet IAM pour demander les rôles suivants dans l'espace de noms de votre projet :

  • Administrateur de projet IAM (project-iam-admin) : crée des comptes de service et gère les liaisons de rôles dans l'espace de noms du projet.
  • Développeur OCR IA (ai-ocr-developer) : authentifie les requêtes auprès de l'API OCR.
  • Développeur AI Speech (ai-speech-developer) : authentifie les requêtes adressées à l'API Speech-to-Text.
  • Développeur d'embeddings textuels IA (ai-text-embedding-developer) : authentifie les requêtes adressées au modèle Text-Embedding-Gecko.
  • AI Text Embedding Multilingual Developer (ai-text-embedding-multilingual-developer) : authentifie les requêtes envoyées au modèle Text-Multilingual-Embedding.
  • Développeur AI Translation (ai-translation-developer) : authentifie les requêtes envoyées à l'API Vertex AI Translation.
  • Utilisateur Vertex AI Prediction (vertex-ai-prediction-user) : authentifie les requêtes de prédiction auprès des modèles de prédiction en ligne.

Pour en savoir plus sur ces rôles, consultez Préparer les autorisations IAM.

S'authentifier auprès des services Vertex AI

Les interactions avec les services Vertex AI s'effectuent via des jetons d'authentification. Les jetons sont des objets numériques qui valident votre identité et votre autorisation après que vous avez fourni des identifiants valides. Le jeton contient des informations spécifiques sur votre compte et les autorisations dont il dispose pour accéder aux services et aux ressources, et les utiliser.

Il existe deux façons de configurer l'authentification :

S'authentifier avec votre compte utilisateur

La procédure suivante vous explique comment obtenir un jeton d'authentification pour votre compte utilisateur :

  1. Notez le point de terminaison de l'API que vous souhaitez utiliser.

  2. Accédez au service Vertex AI ou au modèle d'IA générative que vous souhaitez utiliser en attribuant à votre compte utilisateur le rôle correspondant indiqué dans Préparer les autorisations IAM.

  3. Connectez-vous à Distributed Cloud avec le compte utilisateur dont vous disposez pour interagir avec l'API :

    gdcloud auth login
    
  4. Obtenez le jeton d'authentification :

    gdcloud auth print-identity-token --audiences=https://ENDPOINT
    

    Remplacez ENDPOINT par le point de terminaison de l'API que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison du service.

    Selon l'utilisation prévue du jeton d'authentification, vous devrez peut-être inclure le port après le point de terminaison du service dans le chemin d'accès des audiences, comme suit :

    • Si vous utilisez une bibliothèque cliente pour votre requête, vous devez inclure le port :443 après le point de terminaison du service dans le chemin d'accès des audiences. Par conséquent, le chemin d'accès --audiences dans la commande doit être https://ENDPOINT:443.
    • Si vous utilisez gRPC, curl ou des appels REST programmatiques pour votre requête, n'incluez pas le port. Par conséquent, le chemin d'accès --audiences dans la commande doit être https://ENDPOINT.

    Le résultat affiche le jeton d'authentification. Ajoutez le jeton à l'en-tête des requêtes de ligne de commande que vous effectuez, comme dans l'exemple suivant :

     -H "Authorization: Bearer TOKEN"
    

    Remplacez TOKEN par la valeur du jeton d'authentification affichée dans le résultat.

S'authentifier avec votre compte de service

La procédure suivante vous explique comment obtenir un jeton d'authentification pour votre compte de service :

  1. Notez le point de terminaison de l'API que vous souhaitez utiliser.

  2. Configurez le compte de service que vous souhaitez utiliser pour accéder au service Vertex AI ou au modèle d'IA générative.

  3. Attribuez au compte de service le rôle correspondant indiqué dans Préparer les autorisations IAM pour lui permettre d'accéder au service ou au modèle que vous souhaitez utiliser.

  4. Obtenez les paires de clés de votre compte de service.

  5. Définissez la variable d'environnement suivante :

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SERVICE_KEY
    

    Remplacez PATH_TO_SERVICE_KEY par le chemin d'accès au fichier JSON contenant les paires de clés de votre compte de service.

  6. Installez la bibliothèque cliente google-auth :

    pip install google-auth
    
  7. Ajoutez le code suivant à un script Python :

    import os
    import google.auth
    from google.auth.transport import requests
    import requests as reqs
    
    os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "PATH_TO_SERVICE_KEY"
    os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "CERT_NAME"
    
    # If you use a client library for your request,
    # you must include port :443 after the service endpoint
    # in the audience path.
    audience = "https://ENDPOINT"
    
    creds, project_id = google.auth.default()
    print(project_id)
    creds = creds.with_gdch_audience(audience)
    
    def test_get_token():
      sesh = reqs.Session()
      req = requests.Request(session=sesh)
      creds.refresh(req)
      print(creds.token)
    
    if __name__=="__main__":
      test_get_token()
    

    Remplacez les éléments suivants :

    • PATH_TO_SERVICE_KEY : chemin d'accès au fichier JSON contenant les paires de clés de votre compte de service.
    • CERT_NAME : nom du fichier de certificat (CA) de l'autorité de certification, tel que org-1-trust-bundle-ca.cert. Vous n'avez besoin de cette valeur que si vous êtes dans un environnement de développement. Sinon, omettez-le.
    • ENDPOINT : point de terminaison de l'API que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison du service. Selon l'utilisation prévue du jeton d'authentification, vous devrez peut-être inclure le port après le point de terminaison du service dans le chemin d'accès de l'audience, comme suit :

      • Si vous utilisez une bibliothèque cliente pour votre requête, vous devez inclure le port :443 après le point de terminaison du service dans le chemin d'accès de l'audience. Par conséquent, le chemin d'accès audience dans le script doit être "https://ENDPOINT:443".
      • Si vous utilisez gRPC, curl ou des appels REST programmatiques pour votre requête, n'incluez pas le port. Par conséquent, le chemin d'accès audience dans le script doit être "https://ENDPOINT".
  8. Enregistrez le script Python.

  9. Exécutez le script Python pour récupérer le jeton :

      python SCRIPT_NAME
    

    Remplacez SCRIPT_NAME par le nom que vous avez donné à votre script Python, par exemple token.py.

    Le résultat affiche le jeton d'authentification. Ajoutez le jeton à l'en-tête des requêtes de ligne de commande que vous effectuez, comme dans l'exemple suivant :

     -H "Authorization: Bearer TOKEN"
    

    Remplacez TOKEN par la valeur du jeton d'authentification affichée dans le résultat.