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 inferências on-line
- Resultados de uma solicitação de inferência em lote
- Modelos do Gemini
Como controlar o acesso às APIs do Google
As APIs da Vertex AI, conforme descrito em Acessar a Vertex AI de ambientes locais e multicloud, abrangem uma variedade de 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, mas permitem o uso de permissões do IAM. 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 do Vertex AI.
Para estabelecer um controle granular sobre o acesso à API e restringir explicitamente a exposição à Internet pública, 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 com as APIs do Google para atender aos requisitos organizacionais.
Acesso particular
As organizações que precisam restringir o acesso público às APIs do Google para acesso privado podem usar o VPC Service Controls em combinação com o Private Service Connect para APIs do Google (pacote do VPC Service Controls) ou o Acesso privado do Google. Quando implantadas em redes híbridas e dentro do 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 do Google do Private Service Connect ou 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 à 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 VPC. Veja alguns exemplos:
Como controlar o acesso à API usando o acesso a serviços particulares
As seguintes APIs da Vertex AI implantadas com acesso a serviços particulares exigem 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 e uma rede VPC de locatário único com a capacidade de escalonar serviços compatíveis com base nos requisitos do consumidor. A comunicação entre as redes do produtor e do consumidor é estabelecida com o peering de rede VPC, exceto a saída da Internet, que é roteada pela rede do produtor.
Na rede do produtor, existe uma rota padrão que permite o tráfego de saída da Internet, além do acesso irrestrito às APIs do Google. Para atualizar a rede do produtor e oferecer suporte ao VIP restrito, é necessário ativar o VPC Service Controls para peerings, que realiza as seguintes ações em todos os serviços compatíveis implantados na rede do produtor do Service Networking:
- Remove a rota padrão IPv4 (destino
0.0.0.0/0
, próximo salto gateway de Internet padrão). - 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
e199.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 seguindo estas etapas:
- Implante uma rede VPC de serviços com VPN de alta disponibilidade na rede VPC do consumidor.
- Implante serviços gerenciados pelo Google na rede VPC de serviços.
- Ative o VPC Service Controls para peerings.
- Anuncie 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.
- Atualize o peering de rede VPC do Service Networking com a opção exportar rotas personalizadas.
Criação do perímetro de serviço
Para uma visão geral da criação de 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 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 da Vertex AI que podem ser incorporadas ao perímetro de serviço incluem:
- A API Vertex AI
é compatível com os seguintes serviços e recursos:
- Inferência 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
- Inferência 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 inferência on-line
- Colab Enterprise
- Vertex AI Agent Engine
- A API Notebooks
é compatível com o 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 componentes de pipeline Google Cloud ou criando seus próprios componentes de pipeline 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, faça uma das seguintes ações:
Usar contêineres personalizados
Como prática recomendada de software de produção, os autores de componentes precisam usar componentes Python em contêineres e criar as dependências na imagem do contêiner para que nenhuma instalação ativa seja necessária durante a execução de um pipeline. Uma maneira de fazer isso é a seguinte:
Crie sua própria imagem de contêiner com o SDK do Kubeflow Pipelines e outros pacotes pré-instalados. Por exemplo, use
us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-17:latest
como a camada de base da imagem e adicione uma camada extra para instalar os pacotes durante a criação do contêiner.Atualize o código de definição do componente para definir o caminho
base_image
e a flaginstall_kfp_package
comoFalse
. Essa flag instrui o compilador do KFP a não injetar um comandopip install kfp
na linha de comando do contêiner, porque o pacote do SDK do Kubeflow Pipelines já está instalado na imagem. Exemplo:@component( base_image='gcr.io/deeplearning-platform-release/tf-cpu.2-17', install_kfp_package=False, ) def my_component(...): ...
Instalar pacotes de um repositório do Artifact Registry
Como alternativa, é possível criar um repositório do Artifact Registry no seu projeto, armazenar pacotes Python nele e configurar seu ambiente da Vertex AI para instalar a partir dele, conforme descrito nesta seção. Para mais informações, consulte Gerenciar pacotes Python.
Configurar papéis e permissões
A conta de serviço do seu ambiente da Vertex AI precisa ter a função
iam.serviceAccountUser
.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:
Atribua permissões de acesso a esse repositório à conta de serviço do ambiente.
Verifique se a conectividade com esse repositório está configurada no seu projeto.
Crie o repositório
- Crie um repositório do Artifact Registry no modo VPC no seu projeto.
- Armazene os pacotes Python necessários no repositório.
Configurar o ambiente da Vertex AI para instalar do 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 algum requisito especificado ainda não estiver presente na imagem de base (fornecida ou personalizada), o componente tentará fazer o download deles no Índice de pacotes do Python (PyPI). 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 comConnection to pypi.org timed out
. Para 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
). - Ao usar o VPC Service Controls com a inferência da Vertex AI, os endpoints precisam ser criados depois que o projeto é adicionado ao perímetro de serviço. Se um endpoint for criado em um projeto que não faz parte de um perímetro de serviço e depois esse projeto for adicionado a um perímetro de serviço, a tentativa de implantar um modelo nesse endpoint vai falhar. Se o endpoint for um endpoint público compartilhado, o envio de uma solicitação para ele também vai falhar. Da mesma forma, tentar implantar um modelo em um endpoint vai falhar se o endpoint foi criado em um projeto que fazia parte de um perímetro de serviço e, depois, o projeto foi removido.
A seguir
- Assista ao vídeo VPC Service Controls: como segmentar projetos de nuvem em VPC compartilhada.
- Assista o vídeo Como usar modo de teste no VPC Service Controls.
- Assista ao vídeo VPC Service Controls: suporte a IP privado para criar controles de acesso granulares.
- Saiba mais sobre o VPC Service Controls.
- Saiba mais sobre os papéis necessários do VPC Service Controls.
- Saiba mais sobre como resolver problemas do VPC Service Controls.