Autentica solicitudes a la API de Vertex AI

En esta página, se describe cómo autenticar llamadas a los servicios de Vertex AI en Google Distributed Cloud (GDC) aislado. Debes configurar la autenticación con tokens para proteger tus solicitudes a la API de Vertex AI en tus aplicaciones aisladas. Este proceso valida tus solicitudes a la API, ya que proporciona tu identidad y autoriza tus interacciones.

Esta página está dirigida a los desarrolladores de aplicaciones dentro de los grupos de operadores de aplicaciones que se encargan de configurar sus entornos de desarrollo y de aplicaciones para habilitar las funciones potenciadas por IA. Para obtener más información, consulta Públicos de la documentación de GDC aislado.

Antes de comenzar

Para autenticar las solicitudes a la API y configurar las cuentas de servicio, solicita los permisos necesarios a tu administrador. También asegúrate de tener tu proyecto configurado para Vertex AI. Para obtener más información, consulta Configura un proyecto para Vertex AI.

  • Asegúrate de actualizar tu almacén de confianza local antes de configurar la autenticación en tu entorno de desarrollo.

Solicita roles de IAM

Comunícate con el administrador de IAM de tu proyecto para solicitar los siguientes roles en el espacio de nombres del proyecto:

  • Administrador de IAM del proyecto (project-iam-admin): Crea cuentas de servicio y administra vinculaciones de roles en el espacio de nombres del proyecto.
  • Desarrollador de OCR de IA (ai-ocr-developer): Autentica las solicitudes a la API de OCR.
  • Desarrollador de IA de voz (ai-speech-developer): Autentica las solicitudes a la API de Speech-to-Text.
  • Desarrollador de embeddings de texto de IA (ai-text-embedding-developer): Autentica las solicitudes al modelo Text-Embedding-Gecko.
  • AI Text Embedding Multilingual Developer (ai-text-embedding-multilingual-developer): Autentica las solicitudes al modelo Text-Multilingual-Embedding.
  • Desarrollador de traducción de IA (ai-translation-developer): Autentica las solicitudes a la API de Vertex AI Translation.
  • Usuario de Vertex AI Prediction (vertex-ai-prediction-user): Autentica las solicitudes de predicción en los modelos de predicción en línea.

Para obtener más información sobre estos roles, consulta Prepara los permisos de IAM.

Autentica en los servicios de Vertex AI

Las interacciones con los servicios de Vertex AI se realizan a través de tokens de autenticación. Los tokens son objetos digitales que verifican tu identidad y autorización después de que proporcionas credenciales válidas. El token contiene información específica sobre tu cuenta y los permisos que tiene para acceder a los servicios y recursos, y operar con ellos.

Existen dos maneras de configurar la autenticación:

Autentica con tu cuenta de usuario

En la siguiente guía, se explica cómo obtener un token de autenticación para tu cuenta de usuario:

  1. Toma nota del extremo de la API que quieres usar.

  2. Obtén acceso al servicio de Vertex AI o al modelo de IA generativa que quieras usar. Para ello, otorga a tu cuenta de usuario el rol correspondiente que se indica en Prepara los permisos de IAM.

  3. Accede a Distributed Cloud con la cuenta de usuario que tienes para interactuar con la API:

    gdcloud auth login
    
  4. Obtén el token de autenticación:

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

    Reemplaza ENDPOINT por el extremo de API que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.

    Según el uso previsto del token de autenticación, es posible que debas incluir el puerto después del extremo de servicio en la ruta de acceso de los públicos de la siguiente manera:

    • Si usas una biblioteca cliente para tu solicitud, debes incluir el puerto :443 después del extremo de servicio en la ruta de acceso de los públicos. Por lo tanto, la ruta de acceso --audiences en el comando debe ser https://ENDPOINT:443.
    • Si usas gRPC, curl o llamadas de REST programáticas para tu solicitud, no incluyas el puerto. Por lo tanto, la ruta de acceso --audiences en el comando debe ser https://ENDPOINT.

    En el resultado, se muestra el token de autenticación. Agrega el token al encabezado de las solicitudes de línea de comandos que realices, como en el siguiente ejemplo:

     -H "Authorization: Bearer TOKEN"
    

    Reemplaza TOKEN por el valor del token de autenticación que muestra el resultado.

Autentícate con tu cuenta de servicio

A continuación, se explica cómo obtener un token de autenticación para tu cuenta de servicio:

  1. Toma nota del extremo de la API que quieres usar.

  2. Configura la cuenta de servicio que deseas usar para acceder al servicio de Vertex AI o al modelo de IA generativa.

  3. Otorga a la cuenta de servicio el rol correspondiente que se indica en Prepara los permisos de IAM para que pueda acceder al servicio o modelo que deseas usar.

  4. Obtén los pares de claves de servicio de tu cuenta de servicio.

  5. Configura la siguiente variable del entorno:

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SERVICE_KEY
    

    Reemplaza PATH_TO_SERVICE_KEY por la ruta de acceso al archivo JSON que contiene los pares de claves de tu cuenta de servicio.

  6. Instala la biblioteca cliente de google-auth:

    pip install google-auth
    
  7. Agrega el siguiente código a una secuencia de comandos de 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()
    

    Reemplaza lo siguiente:

    • PATH_TO_SERVICE_KEY: Es la ruta de acceso al archivo JSON que contiene los pares de claves de tu cuenta de servicio.
    • CERT_NAME: Es el nombre del archivo de certificado de la autoridad certificadora (AC), como org-1-trust-bundle-ca.cert. Solo necesitas este valor si te encuentras en un entorno de desarrollo. De lo contrario, omítelo.
    • ENDPOINT: Es el extremo de API que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio. Según el uso previsto del token de autenticación, es posible que debas incluir el puerto después del extremo de servicio en la ruta de acceso del público de la siguiente manera:

      • Si usas una biblioteca cliente para tu solicitud, debes incluir el puerto :443 después del extremo de servicio en la ruta de acceso del público. Por lo tanto, la ruta de acceso de audience en la secuencia de comandos debe ser "https://ENDPOINT:443".
      • Si usas gRPC, curl o llamadas de REST programáticas para tu solicitud, no incluyas el puerto. Por lo tanto, la ruta de acceso de audience en la secuencia de comandos debe ser "https://ENDPOINT".
  8. Guarda la secuencia de comandos de Python.

  9. Ejecuta la secuencia de comandos de Python para recuperar el token:

      python SCRIPT_NAME
    

    Reemplaza SCRIPT_NAME por el nombre que le diste a tu secuencia de comandos de Python, como token.py.

    En el resultado, se muestra el token de autenticación. Agrega el token al encabezado de las solicitudes de línea de comandos que realices, como en el siguiente ejemplo:

     -H "Authorization: Bearer TOKEN"
    

    Reemplaza TOKEN por el valor del token de autenticación que muestra el resultado.