Autenticar solicitações da API Vertex AI

Nesta página, descrevemos como autenticar chamadas para serviços da Vertex AI no Google Distributed Cloud (GDC) com isolamento físico. É necessário configurar a autenticação de token para proteger as solicitações à API Vertex AI nos aplicativos com isolamento físico. Esse processo valida suas solicitações de API fornecendo sua identidade e autorizando suas interações.

Esta página é destinada a desenvolvedores de aplicativos em grupos de operadores de aplicativos responsáveis por configurar os ambientes de desenvolvimento e de aplicativos para ativar os recursos de IA. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Antes de começar

Para autenticar solicitações de API e configurar contas de serviço, peça as permissões necessárias ao administrador. Verifique também se o projeto está configurado para a Vertex AI. Para mais informações, consulte Configurar um projeto para a Vertex AI.

  • Atualize seu repositório de confiança local antes de configurar a autenticação no ambiente de desenvolvimento.

Solicitar papéis do IAM

Entre em contato com o administrador do projeto do IAM para solicitar os seguintes papéis no namespace do projeto:

  • Administrador do IAM do projeto (project-iam-admin): criar contas de serviço e gerenciar vinculações de papéis no namespace do projeto.
  • Desenvolvedor de OCR de IA (ai-ocr-developer): autentica solicitações para a API OCR.
  • Desenvolvedor de fala de IA (ai-speech-developer): autentica solicitações para a API Speech-to-Text.
  • Desenvolvedor de embedding de texto de IA (ai-text-embedding-developer): autentica solicitações para o modelo Text-Embedding-Gecko.
  • Desenvolvedor de embedding de texto multilíngue de IA (ai-text-embedding-multilingual-developer): autentica solicitações para o modelo Text-Multilingual-Embedding.
  • Desenvolvedor de tradução de IA (ai-translation-developer): autentica solicitações para a API Vertex AI Translation.
  • Usuário da Vertex AI Prediction (vertex-ai-prediction-user): autentica solicitações de previsão para modelos preditivos on-line.

Para mais informações sobre esses papéis, consulte Preparar permissões do IAM.

Como autenticar nos serviços da Vertex AI

As interações com os serviços da Vertex AI são feitas por tokens de autenticação. Os tokens são objetos digitais que verificam sua identidade e autorização depois que você fornece credenciais válidas. O token contém informações específicas sobre sua conta e as permissões que ela tem para acessar e operar com serviços e recursos.

Há duas maneiras de configurar a autenticação:

Autenticar com sua conta de usuário

Veja a seguir como receber um token de autenticação para sua conta de usuário:

  1. Anote o endpoint da API que você quer usar.

  2. Para acessar o serviço da Vertex AI ou o modelo de IA generativa que você quer usar, conceda à sua conta de usuário o papel correspondente listado em Preparar permissões do IAM.

  3. Faça login no Distributed Cloud com a conta de usuário que você precisa para interagir com a API:

    gdcloud auth login
    
  4. Receba o token de autenticação:

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

    Substitua ENDPOINT pelo endpoint de API que você usa na sua organização. Para mais informações, confira o status e os endpoints do serviço.

    Dependendo do uso pretendido do token de autenticação, talvez seja necessário incluir a porta após o endpoint de serviço no caminho de públicos-alvo, da seguinte maneira:

    • Se você usar uma biblioteca de cliente para sua solicitação, inclua a porta :443 após o endpoint de serviço no caminho de públicos-alvo. Portanto, o caminho --audiences no comando precisa ser https://ENDPOINT:443.
    • Se você usar gRPC, curl ou chamadas REST programáticas para sua solicitação, não inclua a porta. Portanto, o caminho --audiences no comando precisa ser https://ENDPOINT.

    A saída mostra o token de autenticação. Adicione o token ao cabeçalho das solicitações de linha de comando que você fizer, como no exemplo a seguir:

     -H "Authorization: Bearer TOKEN"
    

    Substitua TOKEN pelo valor do token de autenticação que a saída mostra.

Autenticar com sua conta de serviço

Veja a seguir como receber um token de autenticação para sua conta de serviço:

  1. Anote o endpoint da API que você quer usar.

  2. Configure a conta de serviço que você quer usar para acessar o serviço da Vertex AI ou o modelo de IA generativa.

  3. Conceda à conta de serviço o papel correspondente listado em Preparar permissões do IAM para que ela tenha acesso ao serviço ou modelo que você quer usar.

  4. Receba os pares de chaves de serviço da sua conta de serviço.

  5. Defina a variável de ambiente a seguir:

    export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SERVICE_KEY
    

    Substitua PATH_TO_SERVICE_KEY pelo caminho para o arquivo JSON que contém os pares de chaves da sua conta de serviço.

  6. Instale a biblioteca de cliente do google-auth:

    pip install google-auth
    
  7. Adicione o seguinte código a um 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()
    

    Substitua:

    • PATH_TO_SERVICE_KEY: o caminho para o arquivo JSON que contém os pares de chaves da sua conta de serviço.
    • CERT_NAME: o nome do arquivo de certificado da autoridade certificadora (CA, na sigla em inglês), como org-1-trust-bundle-ca.cert. Você só precisa desse valor se estiver em um ambiente de desenvolvimento. Caso contrário, omita-o.
    • ENDPOINT: o endpoint de API que você usa para sua organização. Para mais informações, confira o status e os endpoints do serviço. Dependendo do uso pretendido do token de autenticação, talvez seja necessário incluir a porta após o endpoint de serviço no caminho do público-alvo, da seguinte maneira:

      • Se você usar uma biblioteca de cliente para a solicitação, inclua a porta :443 após o endpoint de serviço no caminho do público-alvo. Portanto, o caminho audience no script precisa ser "https://ENDPOINT:443".
      • Se você usar gRPC, curl ou chamadas REST programáticas para sua solicitação, não inclua a porta. Portanto, o caminho audience no script precisa ser "https://ENDPOINT".
  8. Salve o script em Python.

  9. Execute o script Python para buscar o token:

      python SCRIPT_NAME
    

    Substitua SCRIPT_NAME pelo nome que você deu ao script do Python, como token.py.

    A saída mostra o token de autenticação. Adicione o token ao cabeçalho das solicitações de linha de comando que você fizer, como no exemplo a seguir:

     -H "Authorization: Bearer TOKEN"
    

    Substitua TOKEN pelo valor do token de autenticação que a saída mostra.