Autenticar solicitudes a la API de Vertex AI

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

Esta página está dirigida a desarrolladores de aplicaciones que forman parte de grupos de operadores de aplicaciones y que son responsables de configurar sus aplicaciones y entornos de desarrollo para habilitar las funciones de IA. Para obtener más información, consulta Audiencias de la documentación de GDC air-gapped.

Antes de empezar

Debes tener tu proyecto configurado para Vertex AI. Para obtener más información, consulta Configurar 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.

Autenticación en los servicios de Vertex AI

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

Hay dos formas de configurar la autenticación:

Autenticar con tu cuenta de usuario

En las siguientes guías se explica cómo obtener un token de autenticación para tu cuenta de usuario:

  1. Anota el endpoint de la API que quieras usar.

  2. Obtén acceso al servicio de Vertex AI o al modelo de IA generativa que quieras usar. Para ello, asigna a tu cuenta de usuario el rol correspondiente que se indica en Preparar permisos de gestión de identidades y accesos.

  3. Inicia sesión en Distributed Cloud con la cuenta de usuario que tengas para interactuar con la API:

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

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

    Sustituye ENDPOINT por el endpoint de la API que uses en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.

    En función del uso previsto del token de autenticación, puede que tengas que incluir el puerto después del endpoint del servicio en la ruta de audiencias, como se indica a continuación:

    • Si usas una biblioteca de cliente para tu solicitud, debes incluir el puerto :443 después del endpoint de servicio en la ruta de las audiencias. Por lo tanto, la ruta --audiences del 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 --audiences del comando debe ser https://ENDPOINT.

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

     -H "Authorization: Bearer TOKEN"
    

    Sustituye TOKEN por el valor del token de autenticación que se muestra en el resultado.

Autenticar con tu cuenta de servicio

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

  1. Anota el endpoint de la API que quieras usar.

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

  3. Concede a la cuenta de servicio el rol correspondiente que se indica en Preparar permisos de IAM para que pueda acceder al servicio o al modelo que quieras usar.

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

  5. Define la siguiente variable de entorno:

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SERVICE_KEY
    

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

  6. Instala la biblioteca de cliente google-auth:

    pip install google-auth
    
  7. Añade 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()
    

    Haz los cambios siguientes:

    • PATH_TO_SERVICE_KEY: la ruta al archivo JSON que contiene los pares de claves de tu cuenta de servicio.
    • CERT_NAME: el nombre del archivo de certificado de la autoridad de certificación (CA), 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: el endpoint de la API que usas en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints. En función del uso previsto del token de autenticación, es posible que tengas que incluir el puerto después del endpoint del servicio en la ruta del público objetivo, como se indica a continuación:

      • Si usas una biblioteca de cliente para tu solicitud, debes incluir el puerto :443 después del endpoint de servicio en la ruta de audiencia. Por lo tanto, la ruta audience de 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 audience de 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 obtener el token:

      python SCRIPT_NAME
    

    Sustituye SCRIPT_NAME por el nombre que le hayas dado a tu secuencia de comandos de Python, como token.py.

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

     -H "Authorization: Bearer TOKEN"
    

    Sustituye TOKEN por el valor del token de autenticación que se muestra en el resultado.