Aceda ao serviço a partir de outra rede VPC

Este tutorial explica como, enquanto consumidor de serviços, pode aceder ao seu serviço publicado criando um ponto final do Private Service Connect. Quando envia pedidos para o ponto final, o Private Service Connect encaminha esses pedidos para o serviço publicado.

Este tutorial destina-se a arquitetos de nuvem, arquitetos de rede, administradores de rede e administradores de TI.

Objetivos

  • Configure a rede para os recursos do consumidor de serviços
  • Crie um ponto final
  • Teste o acesso ao ponto final

Custos

Neste documento, usa os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custos com base na sua utilização prevista, use a calculadora de preços.

Os novos Google Cloud utilizadores podem ser elegíveis para uma avaliação sem custo financeiro.

Quando terminar as tarefas descritas neste documento, pode evitar a faturação contínua eliminando os recursos que criou. Para mais informações, consulte o artigo Limpe.

Antes de começar

  1. Conclua os dois tutoriais anteriores desta série:
  2. Crie ou selecione um projeto para usar nos recursos do consumidor de serviços. Este projeto é denominado CONSUMER_PROJECT
    1. In the Google Cloud console, go to the project selector page.

      Go to project selector

    2. Select or create a Google Cloud project.

      Roles required to select or create a project

      • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
      • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
  3. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. Make sure that you have the following role or roles on the project: Compute Engine > Compute Network Admin, Compute Engine > Compute Instance Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Aceder ao IAM
    2. Selecione o projeto.
    3. Clique em Conceder acesso.
    4. No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.

    5. Clique em Selecionar uma função e, de seguida, pesquise a função.
    6. Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
    7. Clique em Guardar.

Configure a rede

As secções seguintes explicam como criar uma rede e uma sub-rede para alojar o ponto final e como criar uma regra de firewall para permitir o acesso SSH à VM do cliente usada para testar o ponto final.

Crie uma rede e uma sub-rede

Para criar a rede e a sub-rede do consumidor de serviços, siga estes passos.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique em Criar rede de VPC.

  3. Em Nome, introduza consumer-network.

  4. Para o Modo de criação de sub-rede, selecione Personalizado.

  5. Na secção Nova sub-rede, introduza as seguintes informações.

    1. Em Nome, introduza consumer-subnet.
    2. Para Região, selecione a mesma região que o serviço publicado que criou.
    3. Para o Tipo de pilha de IP, selecione IPv4 (pilha única).
    4. Para o intervalo de IPv4, introduza 192.168.10.0/24.
    5. Clique em Concluído.
  6. Clique em Criar.

gcloud

  1. Crie uma rede VPC de modo personalizado:

    gcloud compute networks create consumer-network --subnet-mode=custom
    
  2. Na rede consumer-network, crie uma sub-rede.

    gcloud compute networks subnets create consumer-subnet \
        --network=consumer-network \
        --range=192.168.10.0/24 \
        --region=REGION
    

    Substitua REGION pela mesma região do serviço publicado que criou.

Configure regras de firewall

Crie uma regra de firewall denominada fw-allow-ssh para permitir que o tráfego SSH de 0.0.0.0/0 alcance VMs com a etiqueta de rede allow-ssh.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de firewall.

    Aceder às políticas de firewall

  2. Para permitir ligações SSH de entrada, clique em Criar regra de firewall e use as seguintes definições:

    • Em Nome, introduza fw-allow-ssh.
    • Para Rede, selecione consumer-network.
    • Para Prioridade, introduza 1000.
    • Para Direção do tráfego, selecione Entrada.
    • Para Ação em caso de correspondência, selecione Permitir.
    • Em Segmentações, selecione Etiquetas de segmentação especificadas.
    • Para Etiquetas de segmentação, introduza allow-ssh.
    • Para Filtro de origem, selecione Intervalos IPv4.
    • Para Intervalos de IPv4 de origem, introduza 0.0.0.0/0.
    • Para Protocolos e portas, selecione Protocolos e portas especificados, selecione a caixa de verificação TCP. Em Portas, introduza 22.
  3. Clique em Criar.

gcloud

  1. Crie a regra de firewall fw-allow-ssh para permitir a conetividade SSH a VMs com a etiqueta de rede allow-ssh.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=consumer-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=0.0.0.0/0 \
        --target-tags=allow-ssh \
        --rules=tcp:22
    

Crie um ponto final

Crie um ponto final que aponte para o serviço publicado que criou.

Consola

  1. Na Google Cloud consola, aceda à página Private Service Connect.

    Aceda ao Private Service Connect

  2. Clique no separador Pontos finais ligados.

  3. Clique em Associar ponto final.

  4. Em Segmentar, selecione Serviço publicado.

  5. Para Serviço de destino, introduza projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.

    Substitua PRODUCER_PROJECT pelo ID do projeto do serviço publicado. Substitua REGION pela região do serviço publicado.

  6. Para Nome do ponto final, introduza ep-1.

  7. Para Rede, selecione consumer-network.

  8. Para Sub-rede, selecione consumer-subnet.

  9. Clique no menu pendente Endereço IP e selecione Criar endereço IP.

    1. Em Nome, introduza ep-ip-1.
    2. Para Endereço IP estático, selecione Permitir-me escolher.
    3. Para Endereço IP personalizado, introduza 192.168.10.5.
    4. Clique em Reservar.
  10. Clique em Adicionar ponto final.

gcloud

  1. Reserve um endereço IP interno para atribuir ao ponto final.

    gcloud compute addresses create ep-ip-1 \
        --region=REGION \
        --subnet=consumer-subnet \
        --addresses=192.168.10.5
    

    Substitua REGION pela mesma região do serviço publicado que criou.

  2. Crie uma regra de encaminhamento para ligar o ponto final à associação de serviço do produtor de serviço.

    gcloud compute forwarding-rules create ep-1 \
        --region=REGION \
        --network=consumer-network \
        --address=ep-ip-1 \
        --target-service-attachment=projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service
    

    Substitua o seguinte:

    • PRODUCER_PROJECT: o ID do projeto do projeto produtor do serviço.

    • REGION: a região da associação de serviços.

Teste o acesso ao ponto final

Para testar se o ponto final e o serviço publicado estão a funcionar, crie uma VM de teste e envie um pedido da mesma para o ponto final.

Crie uma VM de cliente para testes

Crie uma VM cliente na mesma região que o ponto final.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique em Criar instância.

  3. Em Nome, introduza consumer-test.

  4. Para Região, selecione a mesma região que as VMs de back-end.

  5. Em Zona, selecione uma zona nessa região.

  6. Clique em Rede e configure os seguintes campos:

    1. Para etiquetas de rede, introduza allow-ssh.
    2. Para Interfaces de rede, selecione o seguinte:
      • Para Rede, selecione consumer-network
      • Para Sub-rede, selecione consumer-subnet
  7. Clique em Criar.

gcloud

gcloud compute instances create consumer-test \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=consumer-subnet

Substitua ZONE por uma zona que esteja na mesma região que as VMs de back-end.

Teste a conetividade

Este teste contacta o ponto final a partir de uma VM do cliente. O comportamento esperado é que o tráfego seja distribuído pelas VMs de back-end do balanceador de carga.

  1. Ligue-se à instância de VM do cliente.
    gcloud compute ssh consumer-test --zone=ZONE
    
    Substitua ZONE pela zona da VM do cliente.
  2. Faça um pedido Web ao ponto final através de curl para contactar o respetivo endereço IP. Repita o pedido para poder ver que as respostas provêm de VMs de back-end diferentes. O nome da VM que gera a resposta é apresentado no texto na resposta HTML devido ao conteúdo de /var/www/html/index.html em cada VM de back-end. Por exemplo, as respostas esperadas têm o seguinte aspeto: Page served from: vm-1 e Page served from: vm-2.
    curl -s http://192.168.10.5
    

Limpar

Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

Elimine os projetos

Elimine o projeto produtor (PRODUCER_PROJECT) e o projeto consumidor (CONSUMER_PROJECT).

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

O que se segue?