Neste guia, descrevemos como configurar a Gemini Enterprise Agent Platform para usar uma conta de serviço personalizada nos seguintes cenários:
Ao realizar um treinamento personalizado, você pode configurar a Agent Platform para usar uma conta de serviço personalizada no contêiner de treinamento, seja ele um contêiner pré-criado ou um contêiner personalizado.
Ao implantar um recurso de
Modeltreinado personalizado em umEndpointrecurso para disponibilizar previsões on-line, é possível configurar a Agent Platform para usar uma conta de serviço personalizada no contêiner que disponibiliza previsões, seja ele um contêiner pré-criado ou um contêiner personalizado.Ao copiar um recurso
Modelentre projetos, você pode configurar a Agent Platform para usar uma conta de serviço personalizada para acessar os modelos no projeto de origem.
Quando usar uma conta de serviço personalizada
Quando a Agent Platform é executada, ela geralmente funciona com as permissões de uma das várias contas de serviço que o Google cria e gerencia para o Google Cloud projeto. Para conceder à Agent Platform maior acesso a outros Google Cloud serviços em determinados contextos, é possível adicionar papéis específicos aos agentes de serviço da Agent Platform.
No entanto, personalizar as permissões de agentes de serviços pode não fornecer o controle de acesso refinado que você quer. Veja alguns casos de uso comuns:
- Conceder menos permissões para jobs e modelos da Agent Platform. O agente de serviço padrão da Agent Platform tem acesso ao BigQuery e ao Cloud Storage.
- Permitir que jobs diferentes acessem recursos diferentes. Talvez você queira permitir que muitos usuários iniciem jobs em um único projeto, mas conceda o acesso dos jobs de cada um deles apenas a uma determinada tabela do BigQuery ou bucket do Cloud Storage.
Por exemplo, convém personalizar individualmente cada job de treinamento personalizado executado para ter acesso a diferentes Google Cloud recursos fora do projeto.
Além disso, personalizar as permissões de agentes de serviço não altera as permissões disponíveis para um contêiner que exibe previsões de um Model treinado personalizado.
Para personalizar o acesso sempre que você realizar o treinamento personalizado ou para personalizar as permissões do contêiner de previsão de um Model treinado, use uma conta de serviço personalizada.
Acesso padrão
Nesta seção, descrevemos o acesso padrão disponível para contêineres de treinamento
personalizado e os contêineres de previsão de recursos Model treinados.
Ao usar uma conta de serviço personalizada, você substitui esse acesso a um recurso CustomJob, HyperparameterTuningJob, TrainingPipeline ou DeployedModel específico.
Como treinar contêineres
Ao criar um CustomJob, HyperparameterTuningJob ou um
personalizadoTrainingPipeline, o contêiner
de treinamento é executado usando por
Google Cloud padrão o agente de serviço de código personalizado da Gemini Enterprise Agent Platform do projeto.
Saiba mais sobre o agente de serviço de código personalizado da Gemini Enterprise Agent Platform, incluindo como conceder acesso a outros Google Cloud recursos.
Contêineres de Prediction
Ao implantar um Model treinado em um Endpoint, o contêiner de previsão é executado usando uma conta de serviço gerenciada pela Agent Platform. Essa
conta de serviço é diferente dos agentes de serviço da Agent Platform
agents.
A conta de serviço que o contêiner de previsão usa por padrão tem permissão
para ler artefatos de modelo
que a Agent Platform disponibiliza em um URI armazenado na
AIP_STORAGE_URI variável
de ambiente. Não dependa da conta de serviço para ter outras permissões. Não é possível personalizar as permissões da conta de serviço.
Configurar uma conta de serviço personalizada
As seções a seguir descrevem como configurar uma conta de serviço personalizada para usar com a Agent Platform e como configurar um CustomJob, HyperparameterTuningJob, TrainingPipeline ou DeployedModel para usar a conta de serviço. Observe que não é possível configurar uma conta de serviço personalizada para extrair imagens do Artifact Registry. A Gemini Enterprise Agent Platform usa a conta de serviço padrão para extrair imagens.
Configurar uma conta de serviço personalizada
Para configurar uma conta de serviço personalizada, faça o seguinte:
Crie uma conta serviço gerenciado pelo usuário. A conta de serviço gerenciado pelo usuário pode estar no mesmo projeto que seus recursos da Agent Platform ou em um projeto diferente.
Opcional: se a conta de serviço gerenciado pelo usuário estiver em um projeto diferente dos jobs de treinamento, conceda o papel de criador de tokens da conta de serviço (roles/iam.serviceAccountTokenCreator) ao agente de serviço da Agent Platform do projeto em que você está usando a Agent Platform.
gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountTokenCreator \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNTOpcional: se você também pretende usar a conta serviço gerenciado pelo usuário para previsões, é necessário conceder o papel de administrador da conta de serviço (
roles/iam.serviceAccountAdmin) ao agente de serviço da Agent Platform do projeto em que você está usando a Agent Platform:gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountAdmin \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNTSubstitua:
AI_PLATFORM_SERVICE_AGENT: o endereço de e-mail do agente de serviço da Agent Platform do projeto, que tem o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.comPara encontrar o agente de serviço da Agent Platform, acesse a página IAM no Google Cloud console.
CUSTOM_SERVICE_ACCOUNT: o endereço de e-mail da nova conta serviço gerenciado pelo usuário que você criou na primeira etapa desta seção.
Especificar uma conta de serviço personalizada para recursos da Agent Platform
O processo de configuração da Agent Platform para usar uma conta de serviço específica para um recurso é chamado de anexação à conta de serviço. As seções a seguir descrevem como anexar a conta de serviço criada na seção anterior a vários recursos da Agent Platform.
Anexar uma conta de serviço a um recurso de treinamento personalizado
Para configurar a Agent Platform para usar sua nova conta de serviço
durante o treinamento personalizado, especifique o endereço de e-mail da conta de serviço no
serviceAccount campo de uma CustomJobSpec mensagem
quando começar o treinamento personalizado. Dependendo de qual tipo de recurso de treinamento personalizado você está criando, a colocação
desse campo na solicitação de API é diferente:
Se você estiver criando um
CustomJob, especifique o endereço de e-mail da conta de serviço emCustomJob.jobSpec.serviceAccount.Saiba mais sobre como criar um
CustomJob.Se você estiver criando um
HyperparameterTuningJob, especifique o endereço de e-mail da conta de serviço emHyperparameterTuningJob.trialJobSpec.serviceAccount.Saiba mais sobre como criar um
HyperparameterTuningJob.Se você estiver criando um
TrainingPipelinepersonalizado sem ajuste de hiperparâmetro, especifique o endereço de e-mail da conta de serviço emTrainingPipeline.trainingTaskInputs.serviceAccount.Se você estiver criando uma
TrainingPipelinepersonalizada com ajuste de hiperparâmetros, especifique o endereço de e-mail da conta de serviço emTrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount.
Anexar uma conta de serviço a um contêiner que exiba predições on-line;
Para configurar um contêiner de previsão Model treinado e treinado para usar sua nova conta de serviço, especifique o endereço de e-mail da conta de serviço ao implantar o Model em um Endpoint:
Console
Siga Como implantar um modelo usando o Google Cloud console. Ao especificar as configurações do modelo, selecione a conta de serviço na lista suspensa Conta de serviço.
gcloud
Siga Como implantar um modelo usando a
API Agent Platform. Ao executar o comando gcloud
ai endpoints deploy-model, use a sinalização --service-account para
especificar o endereço de e-mail da conta de serviço.
Antes de usar os dados do comando abaixo, faça estas substituições:
- ENDPOINT_ID: o ID do endpoint.
- LOCATION_ID: a região em que você está usando a Agent Platform.
- MODEL_ID: o ID do modelo a ser implantado.
-
DEPLOYED_MODEL_NAME: um nome para
DeployedModel. Também é possível usar o nome de exibição doModelpara oDeployedModel. -
MACHINE_TYPE: opcional. Os recursos de máquina usados para cada nó
desta implantação. A configuração padrão é
n1-standard-2. Saiba mais sobre tipos de máquinas. - MIN_REPLICA_COUNT: o número mínimo de nós para esta implantação. A contagem de nós pode ser aumentada ou reduzida conforme necessário pela carga de inferência, até o número máximo de nós e nunca menos que esse número.
- MAX_REPLICA_COUNT: o número máximo de nós para esta implantação. A contagem de nós pode ser aumentada ou reduzida conforme necessário pela carga de inferência, até esse número de nós e nunca menos que o número mínimo de nós.
- CUSTOM_SERVICE_ACCOUNT: o endereço de e-mail da conta de serviço. Por exemplo,
SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
Execute o comando gcloud ai endpoints deploy-model:
Linux, macOS ou Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID \ --region=LOCATION \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100 \ --service-account=CUSTOM_SERVICE_ACCOUNT
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID ` --region=LOCATION ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100 ` --service-account=CUSTOM_SERVICE_ACCOUNT
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID ^ --region=LOCATION ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100 ^ --service-account=CUSTOM_SERVICE_ACCOUNT
API
Siga Como implantar um modelo usando a
API Agent Platform. Ao enviar a solicitação
projects.locations.endpoints.deployModel, defina o campo
deployedModel.serviceAccount
como o endereço de e-mail.
Anexar uma conta de serviço a uma solicitação CopyModel
Para configurar a Agent Platform para usar sua nova conta de serviço ao copiar um modelo, especifique o endereço de e-mail da conta de serviço no campo customServiceAccount da mensagem CopyModelRequest. Essa conta de serviço precisa pertencer ao projeto de destino em que o modelo é copiado, e você precisa ter a permissão iam.serviceAccounts.actAs nessa conta de serviço.
REST
Como copiar um modelo usando a
API Agent Platform, adicione o campo customServiceAccount no corpo JSON da solicitação.
API
Ao enviar a solicitação projects.locations.models.copy, defina o campo customServiceAccount como o endereço de e-mail da conta de serviço.
Acessar Google Cloud serviços no seu código
Se você configurar a Agent Platform para usar uma conta de serviço personalizada seguindo as instruções nas seções anteriores, o contêiner de treinamento ou de previsão poderá acessar todos os Google Cloud serviços e recursos que a conta de serviço pode acessar.
Para acessar Google Cloud serviços, escreva seu código de treinamento ou seu código do serviço de previsão para usar o Application Default Credentials (ADC) e especifique explicitamente o ID do projeto ou o número do projeto do recurso que você quer acessar. Saiba mais sobre como escrever seu código para acessar outros Google Cloud serviços.
Limitações
As contas de serviço personalizadas na Gemini Enterprise Agent Platform têm as seguintes limitações:
- Para inferência em lote, o agente de serviço da Gemini Enterprise Agent Platform ainda será usado para acessar o BigQuery e o Cloud Storage, mesmo quando uma conta de serviço personalizada estiver configurada.
- Há um máximo de 20 contas de serviço personalizadas por projeto, por região e por serviço (por exemplo, Vertex AI Inference).
A seguir
- Saiba mais sobre o controle de acesso da Agent Platform.
- Saiba mais sobre permissões de IAM específicas e as operações compatíveis.