Usar o VPC Service Controls

Nesta página, descrevemos como usar o VPC Service Controls para configurar um notebook do Colab Enterprise em um perímetro de serviço.

Visão geral

O VPC Service Controls é um recurso Google Cloud que permite configurar um perímetro para evitar a exfiltração de dados.

O VPC Service Controls oferece uma camada extra de defesa para Google Cloud serviços independentes da proteção fornecida pelo gerenciamento de identidade e acesso (IAM).

Quando você usa o Colab Enterprise em um perímetro de serviço, os ambientes de execução estão sujeitos a ele. Portanto, para executar o código do notebook que interage com outras APIs e serviços do Google, adicione esses serviços ao perímetro de serviço.

Para mais informações sobre o VPC Service Controls, consulte a Visão geral do VPC Service Controls.

Limitações conhecidas

Funções exigidas

Para garantir que sua conta de usuário tenha as permissões necessárias para usar os controles de serviço da VPC com o Colab Enterprise, peça ao administrador para conceder à sua conta de usuário os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

O administrador também pode conceder à sua conta de usuário as permissões necessárias via funções personalizadas ou outros papéis predefinidos.

Para mais informações sobre as permissões do VPC Service Controls, consulte Controle de acesso com o IAM.

Criar um perímetro de serviço

  1. Crie um perímetro de serviço usando o VPC Service Controls. Esse perímetro protege os recursos gerenciados pelo Google dos serviços especificados por você. Ao criar o perímetro de serviço, faça o seguinte:

    1. Quando você precisar adicionar projetos ao perímetro de serviço, inclua o que contém seus notebooks do Colab Enterprise ou crie notebooks nesse projeto.

    2. Quando você precisar adicionar serviços ao perímetro, inclua o seguinte:

      • API Vertex AI (aiplatform.googleapis.com)
      • API Dataform (dataform.googleapis.com)

    Se você criou o perímetro de serviço sem adicionar os projetos e serviços necessários, consulte Gerenciar perímetros de serviço para saber como atualizá-lo.

Fornecer acesso à interface do Colab Enterprise

Como a interface do Colab Enterprise (colab-embedded.cloud.google.com) só pode ser acessada pela Internet, ela é considerada fora do perímetro de serviço. Quando você aplica um perímetro de serviço, a interface do console do Google Cloud dos serviços protegidos pode ficar parcial ou totalmente inacessível. Por exemplo, se você proteger o Colab Enterprise com o perímetro, a interface do Colab Enterprise no console do Google Cloud vai ficar inacessível.

Para permitir o acesso do console do Google Cloud a recursos protegidos por um perímetro, você precisa criar um nível de acesso para um intervalo de IPs públicos que inclua as máquinas dos usuários que querem usar o console do Google Cloud com APIs protegidas. Por exemplo, adicione o intervalo de IPs públicos do gateway NAT de sua rede particular a um nível de acesso e, em seguida, atribua esse nível de acesso ao perímetro de serviço.

Se você quiser limitar o acesso do console do Google Cloud ao perímetro a apenas um conjunto específico de usuários, também é possível adicioná-los a um nível de acesso. Nesse caso, somente os usuários especificados poderão acessar o console do Google Cloud.

Configurar serviços acessíveis por VPC (opcional)

Ao ativar os serviços acessíveis por VPC para um perímetro, o acesso de endpoints de rede dentro do seu perímetro é limitado a um conjunto de serviços que você especifica.

Para saber mais sobre como limitar o acesso dentro do perímetro a apenas um conjunto específico de serviços, consulte serviços acessíveis por VPC.

Usar o Acesso privado do Google com a rede VPC (opcional)

O Acesso privado do Google oferece conectividade particular a hosts em uma rede VPC ou rede local que usa endereços IP particulares para acessar Google Cloud APIs e serviços. É possível estender um perímetro de serviço do VPC Service Controls para hosts nessas redes para controlar o acesso a recursos protegidos. Os hosts em uma rede VPC precisam ter apenas um endereço IP particular (sem endereço IP público) e estar em uma sub-rede com o Acesso privado do Google ativado. Para mais informações, consulte Conectividade particular em redes locais.

Para usar o Acesso privado do Google com sua rede VPC, é necessário configurar alguns registros DNS.

Configurar entradas DNS usando o Cloud DNS

Os ambientes de execução do Colab Enterprise usam vários domínios que não são gerenciados por uma rede VPC por padrão. Para garantir que sua rede VPC processe corretamente as solicitações enviadas a esses domínios, use o Cloud DNS para adicionar registros DNS. Para mais informações sobre rotas VPC, consulte Rotas.

Esta seção mostra como criar uma zona gerenciada de um domínio, adicionar uma entrada DNS que roteará a solicitação e executar a transação. Repita esses passos para cada um dos vários domínios em que você processará solicitações, começando com *.aiplatform.googleapis.com.

No Cloud Shell ou em qualquer ambiente em que a CLI do Google Cloud esteja instalada, insira os comandos da CLI gcloud a seguir.

  1. Para criar uma zona gerenciada privada para um dos domínios que a rede VPC precisa gerenciar:

        gcloud dns managed-zones create ZONE_NAME \
            --visibility=private \
            --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
            --dns-name=DNS_NAME. \
            --description="Description of your managed zone"
        

    Substitua:

    • ZONE_NAME: um nome para a zona a ser criada. Você precisa usar uma zona separada para cada domínio. Esse nome de zona é usado em todas as etapas a seguir.
    • PROJECT_ID: o ID do projeto que hospeda a rede VPC.
    • NETWORK_NAME: o nome da rede VPC que você criou anteriormente.
    • DNS_NAME: a parte do nome de domínio que vem após o *.. Por exemplo, *.aiplatform.googleapis.com tem o nome DNS aiplatform.googleapis.com.
  2. Inicie uma transação.

        gcloud dns record-sets transaction start --zone=ZONE_NAME
        
  3. Adicione o registro A DNS a seguir. Isso redireciona o tráfego para os endereços IP restritos do Google.

        gcloud dns record-sets transaction add \
            --name=DNS_NAME. \
            --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
            --zone=ZONE_NAME \
            --ttl=300
        
  4. Inclua o registro CNAME DNS a seguir para apontar para o registro A que você acabou de adicionar. Isso redireciona todo o tráfego que corresponde ao domínio para os endereços IP listados na etapa anterior.

        gcloud dns record-sets transaction add \
            --name=\*.DNS_NAME. \
            --type=CNAME DNS_NAME. \
            --zone=ZONE_NAME \
            --ttl=300
        
  5. Execute a transação.

        gcloud dns record-sets transaction execute --zone=ZONE_NAME
        
  6. Repita essas etapas para cada um dos domínios a seguir. Para cada repetição, altere ZONE_NAME e DNS_NAME para os valores apropriados para esse domínio. Mantenha PROJECT_ID e NETWORK_NAME sempre iguais. Você já concluiu essas etapas para *.aiplatform.googleapis.com.

    • *.aiplatform.googleapis.com
    • *.aiplatform-notebook.googleusercontent.com
    • *.aiplatform-notebook.cloud.google.com

Para saber mais sobre como configurar a conectividade particular, leia Configurar a conectividade particular com APIs e serviços do Google.

Permitir acesso baseado no contexto de fora de um perímetro de serviço usando regras de entrada

É possível permitir o acesso baseado no contexto a recursos restritos por um perímetro com base nos atributos do cliente. Especifique atributos do cliente, como tipo de identidade (conta de serviço ou usuário), identidade, dados do dispositivo e origem da rede (endereço IP ou rede VPC).

Por exemplo, é possível configurar regras de entrada para permitir o acesso à Internet a recursos dentro de um perímetro com base no intervalo de endereços IPv4 e IPv6. Para mais informações sobre como usar regras de entrada para configurar o acesso baseado no contexto, consulte Acesso baseado no contexto.

Configurar a troca segura de dados usando regras de entrada e saída

Só é possível incluir um projeto em um perímetro de serviço. Se você quiser permitir a comunicação através do limite do perímetro, configure regras de entrada e saída. Por exemplo, é possível especificar regras de entrada e saída para permitir que projetos de vários perímetros compartilhem registros em um perímetro separado. Para saber mais sobre casos de uso de troca de dados segura, leia Troca de dados segura.

A seguir