Configurar seu projeto do Google Cloud para os pipelines da plataforma de agentes do Gemini Enterprise

Antes de usar o Agent Platform Pipelines para orquestrar pipelines de machine learning (ML), é necessário configurar o projeto do Google Cloud . Alguns recursos, como o armazenamento de metadados usado pelo Vertex ML Metadata, são criados no projetoGoogle Cloud na primeira vez que você executa um pipeline.

Use as instruções a seguir para configurar seu projeto para o Agent Platform Pipelines.

  1. Crie o projeto Google Cloud e configure-o para uso com o Agent Platform Pipelines.

  2. Se você não especificar uma conta de serviço, o Agent Platform Pipelines usará a conta de serviço padrão do Compute Engine para executar os pipelines. Saiba mais sobre a conta de serviço padrão do Compute Engine em Usar a conta de serviço padrão do Compute Engine.

    Recomendamos que você crie uma conta de serviço para executar os pipelines e conceda a essa conta permissões granulares para os Google Cloud recursos necessários para executar o pipeline.

  3. O Agent Platform Pipelines usa o Cloud Storage para armazenar os artefatos das execuções do pipeline. Crie um bucket do Cloud Storage e conceda à conta de serviço acesso a esse bucket.

  4. O Agent Platform Pipelines usa o Vertex ML Metadata para armazenar os metadados criados pelas execuções de pipeline. Ao executar um pipeline pela primeira vez, a plataforma de agentes do Gemini Enterprise cria o armazenamento de metadados do projeto, caso ele não exista.

    Se você quiser criptografar os dados com uma chave de criptografia gerenciada pelo cliente (CMEK), crie manualmente um armazenamento de metadados com uma chave CMEK antes de executar um pipeline. Caso contrário, se não houver um armazenamento de metadados padrão no seu projeto, a plataforma do Gemini Enterprise Agent cria o armazenamento de metadados do seu projeto usando a chave CMEK usada ao executar o pipeline pela primeira vez. Depois de criado, o armazenamento de metadados usa uma chave CMEK diferente da que foi usada em uma execução de pipeline.

Configurar o projeto do Google Cloud

Use as instruções a seguir para criar um projeto do Google Cloud e configurá-lo para uso com os pipelines da plataforma de agentes.

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Gemini Enterprise Agent Platform, Compute Engine, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Instale a CLI do Google Cloud.

  6. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  7. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  8. Depois que a gcloud CLI é inicializada, ela precisa ser atualizada e os componentes necessários instalados:

    gcloud components update
    gcloud components install beta
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the Gemini Enterprise Agent Platform, Compute Engine, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  12. Instale a CLI do Google Cloud.

  13. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  14. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  15. Depois que a gcloud CLI é inicializada, ela precisa ser atualizada e os componentes necessários instalados:

    gcloud components update
    gcloud components install beta

Configurar uma conta de serviço com permissões granulares

Ao executar um pipeline, é possível especificar uma conta de serviço. A execução do pipeline funciona com as permissões dessa conta de serviço.

Se você não especificar uma conta de serviço, a execução do pipeline usará a conta de serviço padrão do Compute Engine. Saiba mais sobre a conta de serviço padrão do Compute Engine em Usar a conta de serviço padrão do Compute Engine.

  • Use as instruções a seguir para criar uma conta de serviço e conceder a ela permissões granulares para recursos do Google Cloud .

    1. Execute o seguinte comando para criar uma conta de serviço:

      gcloud iam service-accounts create SERVICE_ACCOUNT_ID \
          --description="DESCRIPTION" \
          --display-name="DISPLAY_NAME" \
          --project=PROJECT_ID
      

      Substitua os seguintes valores:

      • SERVICE_ACCOUNT_ID: o ID da conta de serviço.
      • DESCRIPTION: (opcional): uma descrição da conta de serviço.
      • DISPLAY_NAME: o nome de exibição dessa conta de serviço.
      • PROJECT_ID: o projeto em que a conta de serviço será criada.

      Saiba mais sobre como criar uma conta de serviço.

    2. Conceda à sua conta de serviço acesso à plataforma de agentes do Gemini Enterprise. Pode levar algum tempo para a mudança no acesso ser propagada. Para mais informações, consulte Propagação de alteração de acesso.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/aiplatform.user"
      

      Substitua os seguintes valores:

      • PROJECT_ID: o projeto em que a conta de serviço foi criada.
      • SERVICE_ACCOUNT_ID: o ID da conta de serviço.
    3. É possível usar o Artifact Registry para hospedar imagens de contêiner e modelos do Kubeflow Pipelines.

      Para mais informações sobre o Artifact Registry, consulte a documentação do Artifact Registry.

    4. Conceda à conta de serviço acesso a todos os recursos do Google Cloud que você usa nos pipelines.

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
          --role="ROLE_NAME"
      

      Substitua os seguintes valores:

      • PROJECT_ID: o projeto em que a conta de serviço foi criada.
      • SERVICE_ACCOUNT_ID: o ID da conta de serviço.
      • ROLE_NAME: o papel do Identity and Access Management a ser concedido a essa conta de serviço.
    5. Para usar o Agent Platform Pipelines para executar pipelines com essa conta de serviço, execute o seguinte comando para conceder à conta de usuário o papel roles/iam.serviceAccountUser para a conta de serviço.

      gcloud iam service-accounts add-iam-policy-binding \
          SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
          --member="user:USER_EMAIL" \
          --role="roles/iam.serviceAccountUser"
      

      Substitua os seguintes valores:

      • SERVICE_ACCOUNT_ID: o ID da conta de serviço.
      • PROJECT_ID: o projeto em que a conta de serviço foi criada.
      • USER_EMAIL: o endereço de e-mail do usuário que executa os pipelines como essa conta de serviço.
  • Se você preferir usar a conta de serviço padrão do Compute Engine para executar pipelines, ative a API Compute Engine e conceda à sua conta de serviço padrão acesso à plataforma de agentes do Gemini Enterprise. Pode levar algum tempo para a mudança no acesso ser propagada. Para mais informações, consulte Propagação de alteração de acesso.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/aiplatform.user"
    

    Substitua os seguintes valores:

    • PROJECT_ID: o projeto em que a conta de serviço foi criada.
    • PROJECT_NUMBER: o projeto em que a conta de serviço foi criada.

    Funções necessárias para ativar APIs

    Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

    Ativar a API

Configurar um bucket do Cloud Storage para artefatos de pipeline

O Agent Platform Pipelines armazena os artefatos das execuções de pipeline usando o Cloud Storage. Use as instruções a seguir para criar um bucket do Cloud Storage e conceder à sua conta de serviço (ou à conta de serviço padrão do Compute Engine) acesso para ler e gravar objetos nesse bucket.

  1. Execute o comando a seguir para criar um bucket do Cloud Storage na região em que você quer executar os pipelines.

    gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --project=PROJECT_ID
    

    Substitua os seguintes valores:

    • PROJECT_ID: especifique o projeto ao qual seu bucket está associado.
    • BUCKET_LOCATION: especifique o local do bucket. Por exemplo, US-CENTRAL1.
    • BUCKET_NAME é o nome que você quer dar ao bucket, sujeito aos requisitos de nomenclatura. Por exemplo, my-bucket.

    Leia mais sobre como criar buckets do Cloud Storage.

  2. Execute os comandos a seguir para conceder à conta de serviço acesso para ler e gravar artefatos de pipeline no bucket criado na etapa anterior.

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/storage.objectUser
    

    Substitua os seguintes valores:

    • SERVICE_ACCOUNT_ID: o ID da conta de serviço.
    • PROJECT_ID: o projeto em que a conta de serviço foi criada.
    • BUCKET_NAME: o nome do bucket a que você está concedendo acesso para a conta de serviço.

    Se preferir usar a conta de serviço padrão do Compute Engine para executar os pipelines, execute o comando gcloud iam service-accounts list para localizar o número do projeto dessa conta.

    gcloud iam service-accounts list
    

    O nome da conta de serviço padrão do Compute Engine tem o seguinte formato: PROJECT_NUMBER-compute@developer.gserviceaccount.com.

    Execute o seguinte comando para conceder à conta de serviço padrão do Compute Engine acesso para ler e gravar artefatos de pipeline no bucket que você criou na etapa anterior.

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
    --role=roles/storage.objectUser
    

    Substitua os seguintes valores:

    • PROJECT_NUMBER: o número do projeto da conta de serviço padrão do Compute Engine.
    • BUCKET_NAME: o nome do bucket a que você está concedendo acesso para a conta de serviço.

    Saiba mais sobre como controlar o acesso aos buckets do Cloud Storage.

Criar um armazenamento de metadados que use uma CMEK (opcional)

Use as instruções a seguir para criar uma CMEK e configurar um armazenamento de metadados do Vertex ML Metadata que usa essa CMEK.

  1. Use o Cloud Key Management Service para configurar uma chave de criptografia gerenciada pelo cliente.

  2. Use a seguinte chamada REST para criar o armazenamento de metadados padrão do projeto usando a CMEK.

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • LOCATION_ID: sua região.
    • PROJECT_ID: seu [ID do projeto](/resource-manager/docs/creating-managing-projects#identifiers). .
    • KEY_RING: o nome do keyring do Cloud Key Management Service em que a chave de criptografia está ativada.
    • KEY_NAME: o nome da chave de criptografia que você quer usar nesse armazenamento de metadados.

    Método HTTP e URL:

    POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores?metadata_store_id=default

    Corpo JSON da solicitação:

    {
      "encryption_spec": {
        "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
      },
    }
    

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATIONS_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateMetadataStoreOperationMetadata",
        "genericMetadata": {
          "createTime": "2021-05-18T18:47:14.494997Z",
          "updateTime": "2021-05-18T18:47:14.494997Z"
        }
      }
    }