Configurar a conectividade da Vertex AI com outras redes

Leia o material em peering de VPC antes de ler este guia.

Por padrão, a configuração de peering permite que apenas a rede da Vertex AI com peering alcance endpoints na sua sub-rede local. A exportação de rotas personalizadas permite que a rede do produtor alcance outras redes em que sua rede tem rotas estáticas ou dinâmicas.

Como o peering transitivo não é compatível, as conexões da Vertex AI não podem alcançar endpoints em outras redes com peering direto para sua rede, mesmo com a opção "Exportar rotas personalizadas" ativada. No exemplo mostrado no diagrama a seguir, os pacotes podem passar pela conexão de peering 1, mas não pela conexão de peering 2.

Com peering transitivo

Para permitir que a Vertex AI alcance a rede do usuário 2, substitua a conexão de peering 2 pela VPN 2, como mostrado no diagrama a seguir.

Sem peering transitivo

A ativação de rotas personalizadas na conexão de peering 1 agora permite que pacotes de IP da rede da Vertex AI acessem a rede do usuário 2.

Para permitir que os pacotes de resposta da rede do usuário 2 sejam roteados para a rede da Vertex AI, a rota de retorno também precisa existir na tabela de roteamento da rede do usuário 2. As rotas da VPN são trocadas usando o BGP (Border Gateway Protocol) no Cloud Routers. É possível personalizar a configuração do BGP no Usuário 1 para anunciar uma rota para o intervalo de rede da Vertex AI de 10.1.0.0/16 para a rede de usuários 2 semelhante.

Agora é possível editar os dois lados da configuração de BGP da VPN 1 para permitir que a rede local e a rede da Vertex AI aprendam rotas entre si. Como não há tentativa de transmitir pacotes de caminho de destino da rede da Vertex AI nem os pacotes de resposta por conexões de peering sequenciais em relação a qualquer rede, nenhuma dessas tentativas de encaminhamento serão explicitamente bloqueadas.

Configurar a conectividade da Vertex AI com a Internet

Se nenhuma rede for especificada ao iniciar uma carga de trabalho, ela será executada em um projeto de produtor separado gerenciado pelo Google.

Se uma rede for especificada, a carga de trabalho será executada em um projeto do produtor que tem peering com o projeto do consumidor.

Por padrão, a rede Vertex AI tem a própria rota para a Internet e a rede do produtor tem a própria rota padrão para a Internet.

Para forçar o encaminhamento de conexões de saída da rede do produtor na sua rede, ative o VPC Service Controls para peerings. Esta é uma configuração separada do VPC Service Controls.

Ativar o VPC Service Controls para peerings causa as seguintes alterações na rede da Vertex AI:

  • Exclui a rota padrão da Internet.
  • Cria uma rota para o destino 199.36.153.4/30 com o próximo salto padrão do gateway da Internet.
  • Cria uma zona privada gerenciada do Cloud DNS para *.googleapis.com com registros apropriados para mapear nomes de host para um desses quatro endereços.
  • Autoriza a zona a ser usada pela rede VPC servicenetworking.

Com essa mudança em vigor, agora é possível exportar a rota padrão da sua rede para garantir que as conexões de saída com a Internet sejam roteadas pela rede VPC. Essa alteração também permite aplicar as políticas necessárias ao tráfego de saída da Vertex AI.

Como trabalhar com o VPC Service Controls

Se uma rede for especificada para a carga de trabalho e o VPC Service Controls estiver ativado, a carga de trabalho será executada em uma rede do produtor com peering para o projeto do consumidor e que está sujeita às mesmas políticas que a rede do consumidor.

Se essas políticas bloquearem o tráfego de saída, a carga de trabalho também não poderá acessar a Internet. Nesse caso, siga as etapas da seção anterior para forçar o tráfego de saída da carga de trabalho a passar por uma instância NAT na sua rede VPC.

Configurar a conectividade da Vertex AI usando proxies

Outro padrão para controlar o IP de saída da Vertex AI é forçar as conexões de saída de cargas de trabalho a passar por um proxy da Web controlado por você. Isso também permite a inspeção de conformidade das conexões de saída.

No entanto, o uso de um proxy de terceiro força o usuário a gerenciar o certificado do proxy para reclamações de autenticação. Além disso, esses proxies podem não propor uma lista de pacotes de criptografia que cruzam com o que os SDKs e as APIs da Vertex AI esperam.

O Google Cloud agora oferece um Secure Web Proxy para facilitar esse padrão. Agora, é possível seguir o guia de início rápido Implantar uma instância do Secure Web Proxy e adaptar suas cargas de trabalho para usá-lo em conexões de saída. Essas conexões parecerão serem originadas do endereço IP de origem do proxy.

Se a biblioteca KFP ainda não estiver instalada na imagem do componente, o pipeline tentará instalá-la antes de executar qualquer código em que você tenha especificado um proxy.

Se o pipeline depender do proxy para instalar pacotes da Internet, essa tentativa falhará e você encontrará um erro como este:

Could not find a version that satisfies the requirement kfp==2.7.0

Nesses casos, quando não é possível instalar o KFP antes de executar o código, você precisa usar uma imagem com o KFP já instalado.

Você pode adicionar o KFP a qualquer imagem base e enviá-lo ao seu repositório.

O exemplo do Dockerfile a seguir adiciona o KFP à imagem base python:3.8.

FROM python:3.8
RUN pip install kfp==2.7.0

Em seguida, é possível configurar o pipeline @component para usar essa imagem:

@component(base_image="$PATH_TO_YOUR_REPOSITORY:YOUR_IMAGE")

Quando o componente de pipeline estiver em execução, seu código poderá instalar livremente outros pacotes pelo proxy. O exemplo a seguir instala numpy usando um proxy em http://10.10.10.10:443.

import subprocess
subprocess.call(['pip', 'install', '--proxy', 'http://10.10.10.10:443', 'numpy'])`

Configurar listas de permissões para acesso à API

Para transações entre cargas de trabalho da Vertex AI e as APIs do Google, permita o acesso das cargas de trabalho aos intervalos de IP usados pelas APIs do Google. Para isso, execute o script para retornar endereços IP de domínios padrão.