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 de tokens para proteger tus solicitudes a la API de Vertex AI dentro de tus aplicaciones aisladas. Este proceso valida tus solicitudes a la API, ya que proporciona tu identidad y autoriza tus interacciones.

Esta página está destinada a los desarrolladores de aplicaciones dentro de los grupos de operadores de aplicaciones responsables de configurar sus entornos de desarrollo y aplicaciones para habilitar las funciones de IA. Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

Antes de comenzar

Para autenticar solicitudes a la API y configurar cuentas de servicio, solicita los permisos necesarios a tu administrador. También asegúrate de que tu proyecto esté 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 tu administrador de IAM del proyecto para solicitar los siguientes roles en el espacio de nombres de tu proyecto:

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

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

Autenticación 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.

Hay dos formas 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. Anota el extremo de la API que deseas usar.

  2. Para obtener acceso al servicio de Vertex AI o al modelo de IA generativa que deseas usar, 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 con la que debes 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 del 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 del 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 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.

    El resultado 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.

Autentica con tu cuenta de servicio

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

  1. Anota el extremo de la API que deseas 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 permitirle obtener acceso 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 de 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 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 entidad certificadora (CA), como org-1-trust-bundle-ca.cert. Solo necesitas este valor si estás 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 del 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 del servicio en la ruta de acceso del público. Por lo tanto, la ruta de acceso audience en la secuencia de comandos debe ser "https://ENDPOINT:443".
      • Si usas gRPC, curl o llamadas REST programáticas para tu solicitud, no incluyas el puerto. Por lo tanto, la ruta de acceso 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.

    El resultado 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.