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:
- Adicione regras de firewall para permitir os intervalos de IP necessários
- Conceda autorizações
- Crie uma sub-rede
- Na página Configurar o acesso a VPC sem servidor, conclua os passos nas seguintes secções:
Antes de começar
O Acesso a VPC sem servidor não é compatível com o serviço URL Fetch. Antes de começar, desative a obtenção de URLs por predefinição através de sockets e descontinue qualquer utilização explícita do pacote urlfetch
.
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:
- Função Administrador de segurança do Compute Engine
- Função Identity and Access Management (IAM) personalizada com a autorização
compute.firewalls.create
ativada
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 da Google subjacente ao Cloud Run, às funções do Cloud Run e ao ambiente padrão do App Engine. Todos os pedidos destes IPs têm garantia de origem na infraestrutura da Google, o que garante que cada serviço/função/app do Cloud Run, das funções do Cloud Run e do App Engine comunica apenas com o conector de VPC ao qual está ligado.
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:
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.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
evpc-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:
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"
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
- Na página Configurar o acesso a VPC sem servidor, conclua os passos nas seguintes secções: