VPC Service Controls com a Vertex AI

O VPC Service Controls pode ajudar você a reduzir o risco de exfiltração de dados da Vertex AI. Use o VPC Service Controls para criar um perímetro de serviço que proteja os recursos e dados especificados por você. Por exemplo, quando você usa o VPC Service Controls para proteger a Vertex AI, os artefatos a seguir não podem sair do perímetro de serviço:

  • Dados de treinamento de um modelo personalizado ou AutoML
  • Modelos que você criou
  • Modelos que você pesquisou usando a pesquisa de arquitetura neural
  • Solicitações de previsões on-line
  • Resultados de uma solicitação de previsão em lote
  • Modelos do Gemini

Como controlar o acesso às APIs do Google

As APIs da Vertex AI, conforme descrito em Como acessar a Vertex AI em ambientes locais e multinuvem, incluem várias opções de acessibilidade, incluindo Internet pública, Private Service Connect para APIs do Google e Acesso privado do Google.

Acesso público

Por padrão, essas APIs públicas podem ser acessadas pela Internet. No entanto, as permissões do IAM são necessárias para uso. Embora recursos como o Private Service Connect e o Acesso privado do Google facilitem a comunicação particular em arquiteturas de rede híbrida, eles não eliminam a acessibilidade pública da Internet para as APIs da Vertex AI.

Para estabelecer um controle granular sobre o acesso à API e restringir explicitamente a exposição pública na Internet, a implementação do VPC Service Controls é essencial. Essa camada de segurança permite que os administradores definam e apliquem políticas de acesso, ativando seletivamente a conectividade pública ou privada para as APIs do Google para atender aos requisitos da organização.

Acesso particular

As organizações que precisam restringir as APIs públicas do Google ao acesso particular podem usar o VPC Service Controls em combinação com as APIs do Google do Private Service Connect (pacote do VPC Service Controls) ou o Acesso privado do Google. Quando implantadas em uma rede híbrida e no Google Cloud, as duas opções permitem o acesso privado às APIs do Google no local. No entanto, o Private Service Connect também oferece flexibilidade na definição de um endereço IP personalizado e um nome de endpoint DNS.

Como prática recomendada, use o IP virtual restrito (VIP) com APIs Google do Private Service Connect ou o Acesso privado do Google para fornecer uma rota de rede particular para solicitações aos serviços do Google Cloud sem expor as solicitações para a Internet. O VIP restrito é compatível com todas as APIs que o VPC Service Controls pode proteger e que exigem considerações para redes locais e VPCs. Veja alguns exemplos:

Como controlar o acesso à API usando o acesso a serviços particulares

As APIs da Vertex AI a seguir implantadas com acesso a serviços particulares exigem uma configuração de rede adicional quando implementadas em um ambiente protegido com o VPC Service Controls:

  • Pesquisa de vetor (consulta de índice)
  • Treinamento personalizado (plano de dados)
  • Vertex AI Pipelines
  • Endpoints particulares de previsão on-line

Por exemplo, o Vertex AI Pipelines é um serviço gerenciado pelo Google (produtor), implantado em um projeto de locatário único e uma rede VPC com a capacidade de dimensionar serviços compatíveis com base nos requisitos do consumidor. A comunicação entre as redes de produtor e consumidor é estabelecida com o peering de rede VPC, exceto a saída de Internet, que é roteada pela rede do produtor.

Na rede do produtor, existe uma rota padrão que permite a saída da Internet, além do acesso irrestrito às APIs do Google. Atualizar a rede de produtores para oferecer suporte ao VIP restrito exige a ativação do VPC Service Controls para peerings, que realiza as seguintes ações em todos os serviços com suporte implantados na rede de produtores do Service Networking:

  • Remove a rota padrão IPv4 (destino 0.0.0.0/0, gateway de Internet padrão de próximo salto).
  • Cria zonas particulares gerenciadas pelo Cloud DNS e as autoriza para a rede VPC do produtor de serviços. As zonas incluem googleapis.com, pkg.dev, gcr.io e outros domínios ou nomes de host necessários para APIs e serviços do Google compatíveis com o VPC Service Controls.
  • Os dados de registro nas zonas resolvem todos os nomes de host para 199.36.153.4, 199.36.153.5, 199.36.153.6 e 199.36.153.7.

Um método alternativo para remover a rota padrão da rede do produtor sem afetar os serviços gerenciados pelo Google é usar a VPN de alta disponibilidade pelo Cloud Interconnect, que consiste nas seguintes etapas:

  1. Implante uma rede VPC de serviços com a VPN de alta disponibilidade na rede VPC do consumidor.
  2. Implante serviços gerenciados pelo Google na rede VPC de serviços.
  3. Ative o VPC Service Controls para peerings.
  4. Divulgue a sub-rede de acesso a serviços particulares como uma divulgação de rota personalizada do Cloud Router se os serviços gerenciados exigirem acessibilidade local.
  5. Atualize o peering de rede VPC do Service Networking com a opção export routes.

Criação do perímetro de serviço

Para uma visão geral de como criar um perímetro de serviço, consulte Como criar um perímetro de serviço na documentação do VPC Service Controls.

Como adicionar serviços restritos ao seu perímetro

Ao estabelecer um perímetro de serviço, recomendamos que você inclua todos os serviços restritos como uma prática recomendada de segurança. Essa abordagem abrangente ajuda a minimizar possíveis vulnerabilidades e acessos não autorizados. No entanto, pode haver cenários em que sua organização tenha requisitos específicos focados na proteção da Vertex AI e das APIs interconectadas. Nesses casos, você tem a flexibilidade de selecionar e incluir apenas as APIs específicas da Vertex AI que são essenciais para suas operações.

As APIs Vertex AI que podem ser incorporadas ao perímetro de serviço incluem:

  • A API Vertex AI oferece suporte aos seguintes serviços e recursos:
    • Previsão em lote
    • Conjuntos de dados
    • Vertex AI Feature Store (disponibilização on-line do Bigtable)
    • Vertex AI Feature Store (veiculação on-line otimizada)
    • IA generativa na Vertex AI (Gemini)
    • Vertex AI Model Registry
    • Previsão on-line
    • Pesquisa de vetor (criação de índice)
    • Pesquisa de vetor (consulta de índice)
    • Treinamento personalizado (plano de controle)
    • Treinamento personalizado (plano de dados)
    • Vertex AI Pipelines
    • Endpoints particulares de previsão on-line
    • Colab Enterprise
  • A API Notebooks oferece suporte ao seguinte serviço:
    • Vertex AI Workbench

Suporte do VPC Service Controls para pipelines de ajuste de IA generativa

O suporte do VPC Service Controls é fornecido no pipeline de ajuste dos seguintes modelos:

  • text-bison for PaLM 2
  • BERT
  • T5
  • A família de modelos textembedding-gecko.

Como usar o VPC Service Controls com o Vertex AI Pipelines

O perímetro de serviço bloqueia o acesso da Vertex AI a APIs e serviços de terceiros na Internet. Se você estiver usando os componentes do pipeline do Google Cloud ou criando seus próprios componentes personalizados para uso com os pipelines da Vertex AI, não será possível instalar dependências do PyPI no registro público do índice de pacotes do Python (PyPI). Em vez disso, siga um destes procedimentos:

Usar contêineres personalizados

Como prática recomendada para softwares de produção, os autores de componentes precisam usar componentes Python contêinerizados e criar as dependências na imagem do contêiner para que nenhuma instalação em tempo real seja necessária durante a execução do pipeline. O SDK do Kubeflow Pipelines oferece uma maneira de contêinerizar seu código Python. Para mais informações, consulte Componentes Python contêineres.

Instalar pacotes de um repositório do Artifact Registry

Como alternativa, crie um repositório do Artifact Registry no seu projeto, armazene pacotes Python nele e configure o ambiente da Vertex AI para instalar a partir dele, conforme descrito nesta seção. Para mais informações, consulte Gerenciar pacotes Python.

Configurar funções e permissões

  1. A conta de serviço do seu ambiente da Vertex AI precisa ter a função iam.serviceAccountUser.

  2. Se você instalar pacotes PyPI personalizados de um repositório na rede do seu projeto e esse repositório não tiver um endereço IP público:

    1. Atribua permissões para acessar esse repositório à conta de serviço do ambiente.

    2. Verifique se a conectividade com esse repositório está configurada no projeto.

Criar o repositório

  1. Crie um repositório do Artifact Registry no modo VPC no seu projeto.
  2. Armazene os pacotes Python necessários no repositório.

Configurar o ambiente da Vertex AI para instalação no repositório

Para instalar pacotes PyPI personalizados de um ou mais repositórios do Artifact Registry, faça uma chamada semelhante à seguinte para @dsl.component:

@dsl.component(packages_to_install=["tensorflow"],
pip_index_urls=['http://myprivaterepo.com/simple', 'http://pypi.org/simple'],)
def hello_world(text: str) -> str:
    import my_package
    import tensorflow

    return my_package.hello_world(text)

Limitações

As limitações a seguir se aplicam ao usar o VPC Service Controls:

  • Para rotular dados, é preciso adicionar os endereços IP dos rotuladores a um nível de acesso.
  • Para os componentes do Google Cloud Pipeline, os componentes iniciam os contêineres que verificam a imagem de base para todos os requisitos. O pacote do KFP, bem como todos os pacotes listados no argumento packages_to_install, são os requisitos de um contêiner. Se os requisitos especificados ainda não estiverem presentes na imagem de base (fornecida ou personalizada), o componente tentará fazer o download deles do índice de pacotes do Python (PyPI, na sigla em inglês). Como o perímetro de serviço bloqueia o acesso da Vertex AI a APIs e serviços de terceiros na Internet, o download falha com Connection to pypi.org timed out. Para saber como evitar esse erro, consulte Como usar o VPC Service Controls com o Vertex AI Pipelines.
  • Ao usar o VPC Service Controls com kernels personalizados no Vertex AI Workbench, é preciso configurar o peering de DNS para enviar solicitações de *.notebooks.googleusercontent.com para a sub-rede 199.36.153.8/30 (private.googleapis.com) em vez de 199.36.153.4/30 (restricted.googleapis.com).

A seguir