Configure conetores em projetos de serviço de VPC partilhada

Se a sua organização usar a VPC partilhada, pode configurar conetores do Acesso a VPC sem servidor no projeto de serviço ou no projeto anfitrião. Este guia mostra como configurar um conector no projeto de serviço.

Se precisar de configurar um conetor no projeto anfitrião, consulte o artigo Configure conetores no projeto anfitrião. Para saber mais acerca das vantagens de cada método, consulte o artigo Estabelecer ligação a uma rede VPC partilhada.

A um nível elevado, tem de seguir os seguintes passos:

  1. Adicione regras de firewall para permitir os intervalos de IP necessários
  2. Conceda autorizações
  3. Crie uma sub-rede
  4. Na página Configurar o acesso a VPC sem servidor, conclua os passos nas seguintes secções:

Adicione regras de firewall para permitir intervalos de IP

Para realizar estes passos, tem de ter uma das seguintes funções no projeto anfitrião:

Tem de criar regras de firewall para permitir que os pedidos dos seguintes intervalos de IPs alcancem o conector e sejam alcançados pelo conector:

  • Intervalos de NAT
    • 107.178.230.64/26
    • 35.199.224.0/19
  • Intervalos da verificação de funcionamento
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 108.170.220.0/23

Estes intervalos são usados pela infraestrutura Google subjacente ao Cloud Run, às funções do Cloud Run e ao App Engine Standard. Todos os pedidos destes IPs têm garantia de origem na infraestrutura da Google, o que garante que a sua função comunica apenas com o conector de VPC ao qual está ligada.

Para uma configuração simples, aplique as regras para permitir que os serviços sem servidor em qualquer projeto de serviço ligado à rede de VPC partilhada enviem pedidos a qualquer recurso na rede.

Para aplicar estas regras:

  1. Execute os três comandos seguintes para definir as regras de modo a permitir que os pedidos do ambiente sem servidor alcancem todos os conectores de VPC na rede:

    gcloud compute firewall-rules create serverless-to-vpc-connector \
    --allow tcp:667,udp:665-666,icmp \
    --source-ranges 107.178.230.64/26,35.199.224.0/19 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-to-serverless \
    --allow tcp:667,udp:665-666,icmp \
    --destination-ranges 107.178.230.64/26,35.199.224.0/19 \
    --direction=EGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-health-checks \
    --allow tcp:667 \
    --source-ranges 130.211.0.0/22,35.191.0.0/16,108.170.220.0/23 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK

    Onde VPC_NETWORK é a rede VPC à qual anexar o conector.

  2. Crie uma regra de entrada na sua rede VPC para permitir pedidos de conetores:

    gcloud compute firewall-rules create vpc-connector-requests \
    --allow tcp,udp,icmp \
    --direction=INGRESS \
    --source-tags vpc-connector \
    --network=VPC_NETWORK

    Esta regra dá ao conetor de VPC acesso a todos os recursos na rede. Para limitar os recursos que o seu ambiente sem servidor pode alcançar através do Acesso a VPC sem servidor, especifique um destino para estas regras de firewall.

Crie regras de firewall para conectores específicos

Seguir o procedimento em Adicione regras de firewall para permitir intervalos de IP resulta em regras de firewall que se aplicam a todos os conetores, tanto os atuais como os criados no futuro. Se não quiser isto, mas quiser criar regras apenas para conectores específicos, pode definir o âmbito das regras para que se apliquem apenas a esses conectores.

Para limitar o âmbito das regras a conectores específicos, pode usar um dos seguintes mecanismos:

  • Etiquetas de rede. Cada conector tem duas etiquetas de rede: vpc-connector e vpc-connector-REGION-CONNECTOR_NAME. Use o último formato para limitar o âmbito das regras de firewall a um conector específico.
  • Intervalos de IP. Use esta opção apenas para as regras de saída, porque não funciona para a entrada. Pode usar o intervalo de IP da sub-rede do conetor para limitar o âmbito das regras de firewall a um único conetor de VPC.

Conceda autorizações a contas de serviço nos seus projetos de serviço

Para cada projeto de serviço que vai usar os conetores de VPC, um administrador de VPC partilhada tem de conceder a função de utilizador da rede de computação (compute.networkUser) no projeto anfitrião às contas de serviço cloudservices e vpcaccess do projeto de serviço.

Para conceder a função:

  1. Use estes comandos:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com"
  2. Se a conta de serviço @gcp-sa-vpcaccess não existir, ative a API Serverless VPC Access no projeto de serviço e tente novamente:

    gcloud services enable vpcaccess.googleapis.com

Se preferir não conceder a estas contas de serviço acesso a toda a rede de VPC partilhada e, em vez disso, conceder acesso apenas a sub-redes específicas, pode conceder estes papéis a estas contas de serviço apenas em sub-redes específicas.

Crie uma sub-rede

Quando usa a VPC partilhada, o administrador da VPC partilhada tem de criar uma sub-rede para cada conector. Siga a documentação em adicionar uma sub-rede para adicionar uma sub-rede /28 à rede VPC partilhada. Esta sub-rede tem de estar na mesma região que os serviços sem servidor que vão usar o conector.

Passos seguintes