Este guia descreve como configurar a Vertex AI para usar uma conta de serviço personalizada nos seguintes cenários:
Quando realiza a preparação personalizada, pode configurar o Vertex AI para usar uma conta de serviço personalizada no contentor de preparação, quer seja um contentor pré-criado ou um contentor personalizado.
Quando implementa um recurso
Model
preparado de forma personalizada num recursoEndpoint
para publicar previsões online, pode configurar o Vertex AI para usar uma conta de serviço personalizada no contentor que publica previsões, quer seja um contentor pré-criado ou um contentor personalizado.Quando cria um cluster do Ray na Vertex AI, pode definir uma conta de serviço personalizada para todos os nós no cluster.
Quando usar uma conta de serviço personalizada
Quando o Vertex AI é executado, geralmente atua com as autorizações de uma de várias contas de serviço que a Google cria e gere para o seu projeto do Google Cloud . Para conceder ao Vertex AI um acesso aumentado a outros serviços em determinados contextos, pode adicionar funções específicas aos agentes de serviço do Vertex AI. Google Cloud
No entanto, a personalização das autorizações dos agentes de serviço pode não fornecer o controlo de acesso detalhado que pretende. Seguem-se alguns exemplos de utilização comuns:
- Permitir menos autorizações para tarefas e modelos do Vertex AI. O agente de serviço do Vertex AI predefinido tem acesso ao BigQuery e ao Cloud Storage.
- Permitir que diferentes tarefas acedam a diferentes recursos. Pode querer permitir que muitos utilizadores iniciem tarefas num único projeto, mas conceder às tarefas de cada utilizador acesso apenas a uma determinada tabela do BigQuery ou a um contentor do Cloud Storage.
Por exemplo, pode querer personalizar individualmente cada tarefa de treino personalizado que executa para ter acesso a diferentesGoogle Cloud recursos fora do seu projeto.
Além disso, a personalização das autorizações dos agentes de serviço não altera as autorizações disponíveis para um contentor que publica previsões a partir de um Model
com preparação personalizada.
Para personalizar o acesso sempre que realizar um preparação personalizada ou para personalizar as autorizações do contentor de previsão de um modelo preparado de forma personalizada, tem de usar uma conta de serviço personalizada.Model
Acesso predefinido
Esta secção descreve o acesso predefinido disponível para contentores de preparação personalizados e contentores de previsão de recursos Model
preparados de forma personalizada.
Quando usa uma conta de serviço personalizada, substitui este acesso para um recurso específico de
CustomJob
, HyperparameterTuningJob
, TrainingPipeline
ou DeployedModel
.
Contentores de preparação
Quando cria um CustomJob
, um HyperparameterTuningJob
ou um TrainingPipeline
personalizado, o contentor de preparação é executado através do agente de serviço de código personalizado do Vertex AI do seu projeto por predefinição.Google Cloud
Saiba mais sobre o agente de serviço de código personalizado da Vertex AI, incluindo como lhe conceder acesso a Google Cloud recursos adicionais.
Contentores de previsão
Quando implementa um Model
preparado de forma personalizada num Endpoint
, o contentor de previsão é executado através de uma conta de serviço gerida pelo Vertex AI. Esta conta de serviço é diferente dos agentes do serviço Vertex AI.
A conta de serviço que o contentor de previsão usa por predefinição tem autorização
para ler artefactos do modelo
que o Vertex AI disponibiliza num URI armazenado na variável de ambiente AIP_STORAGE_URI
. Não confie
na conta de serviço para ter outras autorizações. Não pode personalizar as autorizações da conta de serviço.
Configure uma conta de serviço personalizada
As secções seguintes descrevem como configurar uma conta de serviço personalizada para usar com a Vertex AI e como configurar um CustomJob
, HyperparameterTuningJob
, TrainingPipeline
ou DeployedModel
para usar a conta de serviço. Tenha em atenção que não pode configurar uma conta de serviço personalizada para extrair imagens do Artifact Registry. O Vertex AI usa a conta de serviço predefinida para
extrair imagens.
Configure uma conta de serviço personalizada
Para configurar uma conta de serviço personalizada, faça o seguinte:
Crie uma conta de serviço gerida pelo utilizador. A conta de serviço gerida pelo utilizador pode estar no mesmo projeto que os seus recursos do Vertex AI ou num projeto diferente.
Opcional: se a conta de serviço gerida pelo utilizador estiver num projeto diferente dos seus trabalhos de preparação, tem de conceder a função Criador de tokens da conta de serviço (roles/iam.serviceAccountTokenCreator) ao agente de serviço do Vertex AI do projeto onde está a usar o Vertex AI.
gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountTokenCreator \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNT
Opcional: se também planeia usar a conta de serviço gerida pelo utilizador para previsões, tem de conceder a função de administrador da conta de serviço (
roles/iam.serviceAccountAdmin
) ao agente de serviço do Vertex AI do projeto onde está a usar o Vertex AI:gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountAdmin \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNT
Substitua o seguinte:
AI_PLATFORM_SERVICE_AGENT: O endereço de email do agente de serviço do Vertex AI do seu projeto, que tem o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
Para encontrar o agente de serviço da Vertex AI, aceda à página IAM na Google Cloud consola.
CUSTOM_SERVICE_ACCOUNT: o endereço de email da nova conta de serviço gerida pelo utilizador que criou no primeiro passo desta secção.
Especifique uma conta de serviço personalizada para recursos da Vertex AI
O processo de configuração do Vertex AI para usar uma conta de serviço específica para um recurso é denominado associação da conta de serviço ao recurso. As secções seguintes descrevem como anexar a conta de serviço que criou na secção anterior a vários recursos do Vertex AI.
Anexe uma conta de serviço a um recurso de treino personalizado
Para configurar o Vertex AI para usar a sua nova conta de serviço
durante o treino personalizado, especifique o endereço de email da conta de serviço no campo serviceAccount
de uma mensagem CustomJobSpec
quando iniciar o treino personalizado. Consoante o tipo de recurso de
preparação personalizado que está a criar, a colocação
deste campo no seu pedido API é diferente:
Se estiver a criar um
CustomJob
, especifique o endereço de email da conta de serviço emCustomJob.jobSpec.serviceAccount
.Saiba mais sobre como criar um
CustomJob
.Se estiver a criar um
HyperparameterTuningJob
, especifique o endereço de email da conta de serviço emHyperparameterTuningJob.trialJobSpec.serviceAccount
.Saiba como criar um
HyperparameterTuningJob
.Se estiver a criar um
TrainingPipeline
personalizado sem ajuste de hiperparâmetros, especifique o endereço de email da conta de serviço emTrainingPipeline.trainingTaskInputs.serviceAccount
.Se estiver a criar um
TrainingPipeline
personalizado com o ajuste de hiperparâmetros, especifique o endereço de email da conta de serviço emTrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount
.
Anexe uma conta de serviço a um contentor que forneça previsões online
Para configurar o contentor de previsão do Model
com preparação personalizada para usar a sua nova conta de serviço, especifique o endereço de email da conta de serviço quando
implementar o Model
num Endpoint
:
Consola
Siga as instruções em Implementar um modelo através da Google Cloud consola. Quando especificar as definições do modelo, selecione a conta de serviço na lista pendente Conta de serviço.
gcloud
Siga as instruções em Implementar um modelo com a
API Vertex AI. Quando executar o comando gcloud
ai endpoints deploy-model
, use a flag --service-account
para especificar o endereço de email da sua conta de serviço.
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
- ENDPOINT_ID: o ID do ponto final.
- LOCATION_ID: a região onde está a usar o Vertex AI.
- MODEL_ID: o ID do modelo a implementar.
-
DEPLOYED_MODEL_NAME: um nome para o
DeployedModel
. Também pode usar o nome a apresentar doModel
para oDeployedModel
. -
MACHINE_TYPE: opcional. Os recursos da máquina usados para cada nó desta implementação. A predefinição é
n1-standard-2
. Saiba mais sobre os tipos de máquinas. - MIN_REPLICA_COUNT: o número mínimo de nós para esta implementação. O número de nós pode ser aumentado ou diminuído conforme necessário pela carga de inferência, até ao número máximo de nós e nunca inferior a este número de nós.
- MAX_REPLICA_COUNT: o número máximo de nós para esta implementação. O número de nós pode ser aumentado ou diminuído conforme necessário pela carga de inferência, até este número de nós e nunca inferior ao número mínimo de nós.
- CUSTOM_SERVICE_ACCOUNT: o endereço de email 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 as instruções em Implementar um modelo com a
API Vertex AI. Quando envia o pedido projects.locations.endpoints.deployModel
, defina o campo deployedModel.serviceAccount
para o endereço de email da conta de serviço.
Aceda Google Cloud aos serviços no seu código
Se configurar o Vertex AI para usar uma conta de serviço personalizada seguindo as instruções nas secções anteriores, o contentor de preparação ou o contentor de previsão podem aceder a quaisquer serviços e recursos aos quais a conta de serviço tenha acesso. Google Cloud
Para aceder aos Google Cloud serviços, escreva o seu código de preparação ou o seu código de publicação de previsões para usar as credenciais predefinidas da aplicação (ADC) e especifique explicitamente o ID do projeto ou o número do projeto do recurso ao qual quer aceder. Saiba como escrever o seu código para aceder a outros Google Cloud serviços.
O que se segue?
- Saiba mais sobre o controlo de acesso para o Vertex AI.
- Saiba mais sobre autorizações de IAM específicas e as operações que suportam.