Como configurar o Private Service Connect para acessar serviços

O Private Service Connect permite que você se conecte a produtores de serviços usando endpoints com endereços IP internos na sua rede VPC.

Neste documento, você verá como usar os endpoints do Private Service Connect para se conectar a serviços compatíveis em outra rede VPC. É possível se conectar aos seus próprios serviços ou aos fornecidos por outros produtores de serviços. Consulte Como publicar serviços para mais informações.

Também é possível usar o Private Service Connect para acessar APIs e serviços do Google.

Papéis

O papel do IAM a seguir fornece as permissões necessárias para executar as tarefas neste guia.

Tarefa Papéis
Criar um endpoint do Private Service Connect Administrador de rede do Compute (roles/compute.networkAdmin)

Antes de começar

  • Você precisa ativar a API Compute Engine no projeto.

  • As regras de firewall de saída precisam permitir o tráfego para o endereço IP interno do endpoint do Private Service Connect. A regra de firewall de saída de permissão implícita permite a saída para qualquer endereço IP de destino.

    Se você tiver criado regras de firewall de negação de saída na rede VPC ou criado políticas de firewall hierárquicas que modificam o comportamento de saída implícito permitido, o acesso ao endpoint poderá ser afetado. Crie uma regra ou política de firewall específica de permissão de saída para permitir o tráfego para o destino de endereço IP interno do endpoint do serviço.

  • É necessário ter o URI do anexo de serviço para o serviço. Por exemplo, projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME.

Limitações

  • Os endpoints do Private Service Connect não são acessíveis em redes VPC com peering.

  • Não é possível enviar solicitações de um ambiente local conectado a uma VPC usando túneis do Cloud VPN ou anexos do Cloud Interconnect (VLANs) para um endpoint do Private Service Connect usado para acessar serviços{101 }em outra rede VPC.

  • Consulte problemas conhecidos para ver problemas e soluções alternativas.

Como criar um endpoint do Connect Service Connect

Um endpoint do Private Service Connect se conecta a serviços em outra rede VPC usando uma regra de encaminhamento do Private Service Connect. Cada regra de encaminhamento é contabilizada na cota por projeto das regras de encaminhamento do Private Service Connect para acessar serviços em outra rede VPC.

Ao usar o Private Service Connect para se conectar a serviços em outra rede VPC, você escolhe um endereço IP em uma sub-rede na sua rede VPC.

O endereço IP precisa estar na mesma região que o anexo do serviço do produtor de serviços.

O endereço IP é contabilizado na cota do projeto para endereços IP internos.

Console

  1. No Console do Google Cloud, acesse Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Endpoints conectados.

  3. Clique em Conectar endpoint.

  4. Em Destino, selecione Serviço publicado.

  5. Em Serviço de destino, digite o URI do anexo de serviço ao qual você quer se conectar.

    O URI do anexo de serviço está neste formato: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

  6. Em Nome do endpoint, digite um nome para usar o endpoint.

  7. Selecione uma Rede para o endpoint.

  8. Selecione uma Sub-rede para o endpoint.

  9. Selecione um Endereço IP para o endpoint. Se você precisar de um novo endereço IP, crie um:

    1. Clique no menu suspenso Endereço IP e selecione Criar endereço IP.
    2. Digite um Nome e uma Descrição opcional para o endereço IP.
    3. Em Endereço IP estático, selecione Atribuir automaticamente ou Quero escolher.

      Se você selecionou Quero escolher, insira o Endereço IP personalizado que quer usar.

    4. Clique em Reservar.

  10. Clique em Adicionar endpoint.

gcloud

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

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET
    

    Substitua:

    • ADDRESS_NAME: o nome a ser atribuído ao endereço IP reservado.

    • REGION: a região do endereço IP do endpoint. Precisa ser a mesma região que contém o anexo de serviço do produtor de serviço.

    • SUBNET: o nome da sub-rede do endereço IP do endpoint.

  2. Encontre o endereço IP reservado.

    gcloud compute addresses list --filter="name=ADDRESS_NAME"
    
  3. Crie uma regra de encaminhamento para conectar o endpoint ao anexo de serviço do produtor de serviço.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
        --region=REGION \
        --network=NETWORK_NAME \
        --address=ADDRESS_NAME \
        --target-service-attachment=SERVICE_ATTACHMENT
    

    Substitua:

    • ENDPOINT_NAME: o nome a ser atribuído ao endpoint.

    • REGION: a região do endpoint. Precisa ser a mesma região que contém o anexo de serviço do produtor de serviço.

    • NETWORK_NAME: o nome da rede VPC do endpoint.

    • ADDRESS_NAME: o nome do endereço reservado.

    • SERVICE_ATTACHMENT: o URI do anexo de serviço do produtor de serviço. Por exemplo: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

API

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/addresses
    
    {
      "name": ADDRESS_NAME,
      "addressType": "INTERNAL",
      "subnetwork": SUBNET_URI
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto.

    • ADDRESS_NAME: o nome a ser atribuído ao endereço IP reservado.

    • SUBNET_URI: a sub-rede do endereço IP. Use o método network.list ou gcloud compute networks subnets list --uri para encontrar os URLs das suas redes.

  2. Crie uma regra de encaminhamento para conectar o endpoint aos serviços e APIs do Google.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
    {
      "name": ENDPOINT_NAME,
      "IPAddress": ADDRESS_URI,
      "target": SERVICE_ATTACHMENT,
      "network": NETWORK_URI,
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto.

    • REGION: a região do endpoint.

    • ENDPOINT_NAME: o nome a ser atribuído ao endpoint.

    • ADDRESS_URI: o URL do endereço reservado na rede associada. Use o método endereços.list ou gcloud compute addresses list --uri para encontrar o URL do seu endereço reservado.

    • SERVICE_ATTACHMENT: o URI do anexo de serviço do produtor de serviços. Por exemplo: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • NETWORK_URI: a rede VPC do endpoint. Use o método network.list ou gcloud compute networks list --uri para encontrar o URI da sua rede.

Como listar endpoints

É possível listar todos os endpoints do Private Service Connect configurados.

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Endpoints conectados.

    Os endpoints do Private Service Connect são exibidos.

gcloud

gcloud compute forwarding-rules list  \
    --filter 'target~serviceAttachments'

A resposta será semelhante a:

NAME  REGION  IP_ADDRESS  IP_PROTOCOL  TARGET
RULE          IP          TCP          REGION/serviceAttachments/SERVICE_NAME

API

Essa chamada de API retorna todas as regras de encaminhamento, não apenas os endpoints do Private Service Connect usados para acessar os serviços.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules

Substitua:

  • PROJECT_ID: o projeto que contém o endpoint.
  • REGION: a região do endpoint.

Como visualizar detalhes do endpoint

É possível visualizar todos os detalhes de configuração de um endpoint do Private Service Connect.

O endpoint pode ter um dos seguintes status:

  • Pendente: o endpoint está configurado para se conectar a um serviço que requer aprovação, e a aprovação ainda não foi concedida ao projeto.

  • Aceito: o endpoint está em um projeto aprovado para se conectar ao serviço.

  • Rejeitado: o endpoint está em um projeto sem permissão para se conectar ao serviço.

  • Fechado: o endpoint está conectado a um anexo de serviço que foi excluído.

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Endpoints conectados.

  3. Clique no endpoint que você quer visualizar.

gcloud

gcloud compute forwarding-rules describe \
    ENDPOINT_NAME --region=REGION

Substitua:

  • ENDPOINT_NAME: o nome do endpoint.
  • REGION: a região do endpoint.

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

Substitua:

  • PROJECT_ID: o projeto que contém o endpoint.
  • REGION: a região do endpoint.
  • ENDPOINT_NAME: o nome do endpoint.

Como rotular um endpoint

É possível gerenciar rótulos para endpoints do Private Service Connect. Consulte Como rotular recursos para mais informações.

Como excluir um endpoint

É possível excluir um endpoint do Private Service Connect.

Console

  1. No Console do Google Cloud, acesse Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Endpoints conectados.

  3. Selecione o endpoint do Private Service Connect que você quer excluir e clique em Excluir.

gcloud

    gcloud compute forwarding-rules delete \
        ENDPOINT_NAME --region=REGION

Substitua:

  • ENDPOINT_NAME: o nome do endpoint.
  • REGION: a região do endpoint.

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME

Substitua:

  • PROJECT_ID: o projeto que contém o endpoint.
  • REGION: a região do endpoint.
  • ENDPOINT_NAME: o nome do endpoint.

Logging

É possível ativar os registros de fluxo de VPC em sub-redes que contêm VMs que estão acessando serviços em outra rede VPC usando endpoints do Private Service Connect. Os registros mostram fluxos entre as VMs e o endpoint do Private Service Connect.

Problemas conhecidos

  • Se você criar mais endpoints do Private Service Connect do que o limite definido pelo produtor de serviço, todos os endpoints criados após o limite ser atingido terão o status Pendente, como esperado. No entanto, se você remover os endpoints do Private Service Connect para ficar abaixo do limite, o status desses endpoints não será alterado para Aceito.

    Entre em contato com o produtor de serviços para descobrir o limite definido no projeto e evite exceder esse limite. Se você excedê-lo, entre em contato com o produtor de serviços solicitando a atualização do anexo de serviço para definir o limite novamente. O mesmo limite pode ser aplicado.

  • As alterações no status do endpoint do Private Service Connect não são registradas no Cloud Logging.