Acessar serviços gerenciados usando o Private Service Connect

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.

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.

  • Você precisa ativar a API Service Directory no seu projeto.

  • Você precisa ativar a API Cloud DNS no seu 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 anexos do Cloud Interconnect (VLANs) para um endpoint do Private Service Connect usado para acessar serviços{101 }em outra rede VPC.

    Para mais informações sobre como acessar os endpoints do Private Service Connect em ambientes locais conectados com o Cloud VPN, consulte Como usar o Private Service Connect em hosts locais.

  • 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.

Quando você cria um endpoint do Private Service Connect, ele é registrado automaticamente no Diretório de serviços, usando um namespace escolhido por você ou o namespace padrão, goog-psc-default.

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. Selecione um Namespace na lista suspensa ou crie um novo namespace.

    A Região é preenchida com base na sub-rede selecionada.

  11. 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 \
        [ --service-directory-registration=NAMESPACE_URI ]
    

    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

    • NAMESPACE_URI: o nome do namespace do Diretório de serviços que você quer usar. NAMESPACE_URI precisa referenciar o mesmo projeto e região em que você está criando o endpoint do Private Service Connect. Se você especificar um namespace que não existe, o namespace será criado.

      NAMESPACE_URI tem este formato:

      projects/PROJECT_NAME/locations/REGION/namespaces/NAMESPACE

      Se você omitir a sinalização --service-directory-registration, o namespace padrão de goog-psc-default será usado.

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,
      "serviceDirectoryRegistrations": [
          {
              "namespace": NAMESPACE,
          }
      ],
    }
    

    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.

    • NAMESPACE: o namespace do endpoint. Se você especificar um namespace que não existe, o namespace será criado. Se você omitir o campo namespace, o namespace padrão de goog-psc-default será atribuído.

Como criar registros DNS para endpoints do Private Service Connect

Quando você cria um endpoint do Private Service Connect, ele é registrado automaticamente no Diretório de serviços, usando um namespace escolhido por você ou o namespace padrão, goog-psc-default.

Configurar uma zona do diretório de serviços

Se o endpoint do Private Service Connect estiver registrado no Diretório de serviços, será possível configurar uma zona do Diretório de serviços associada ao namespace. Após a criação da zona, as entradas DNS são criadas automaticamente pelo endpoint do Private Service Connect.

  • Crie uma zona do Diretório de serviços com a seguinte configuração:

    • Nome da zona: especifique um nome de sua preferência.

    • Nome do DNS: o domínio DNS que o fornecedor de serviços está usando para os serviços publicados. Consulte o produtor de serviços para saber mais.

      Ele pode ter o seguinte formato: REGION.p.DOMAIN. Por exemplo, se o domínio público do produtor de serviços for example.com e o serviço publicado estiver em us-west1, recomendamos que ele disponibilize o serviço usando os nomes de domínio us-west1.p.example.com.

    • Namespace do diretório de serviços: o namespace que você configurou para este endpoint.

Com essa configuração, se você tiver configurado uma zona DNS do diretório de serviços com o nome DNS us-west1.p.example.com e criado um endpoint do Private Service Connect chamado analytics, um registro DNS para analytics.us-west1.p.example.com é criado automaticamente.

Registrar um endpoint do Private Service Connect com o diretório de serviços manualmente

Se o endpoint do Private Service Connect não estiver registrado no Diretório de serviços, você poderá registrá-lo manualmente.

Para registrar manualmente um endpoint do Private Service Connect no Diretório de serviços, siga estas etapas:

  1. Crie um namespace do Diretório de serviços para o endpoint do Private Service Connect, NAMESPACE.

  2. Crie um serviço do Diretório de serviços para o endpoint do Private Service Connect, SERVICE_NAME.

    No serviço, use o mesmo nome da regra de encaminhamento usada para o endpoint do Private Service Connect, ENDPOINT_NAME.

  3. Crie um endpoint do Diretório de serviços usando o nome default e use o endereço IP e a porta (443) do endpoint do Private Service Connect.

Depois de registrar o endpoint do Private Service Connect no Diretório de serviços, siga as instruções para Configurar uma zona do Diretório de serviços.

Configurar o DNS manualmente

Se você quiser usar o Cloud DNS para criar registros DNS manualmente, consulte as seguintes páginas:

  • Controle de acesso: o papel de Administrador de DNS (roles/dns.admin) fornece as permissões necessárias para criar zonas e registros DNS.

  • Criar uma zona particular.

    • Ao configurar uma zona particular, você fornece um nome de DNS. Use o domínio DNS que o fornecedor de serviços está usando para os serviços publicados. Verifique com o produtor de serviços para saber essas informações.

      Ele pode ter o seguinte formato: REGION.p.DOMAIN. Por exemplo, se o domínio público do produtor de serviços for example.com e o serviço publicado estiver em us-west1, recomendamos que ele disponibilize o serviço usando os nomes de domínio us-west1.p.example.com.

  • Adicionar um registro.

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.

Como usar o Private Service Connect em hosts locais

Se a rede local estiver conectada a uma rede VPC, será possível acessar os serviços publicados do Private Service Connect de hosts locais usando o endereço IP interno do endpoint do Private Service Connect.

  • Sua rede local precisa estar conectada a uma rede VPC usando túneis do Cloud VPN, na mesma região em que o endpoint do Private Service Connect está localizado.

  • O endpoint do Private Service Connect está na rede VPC conectada à sua rede local.

  • Se você quiser acessar o endpoint do Private Service Connect usando o nome DNS, configure sistemas locais para que eles façam consultas nas zonas DNS particulares.

    Se você implementou as zonas DNS particulares usando o Cloud DNS, siga estas etapas:

Problemas conhecidos

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

  • A conectividade de hosts locais com um endpoint do Private Service Connect não é estabelecida se as duas condições a seguir forem atendidas:

    Como solução alternativa, peça ao produtor de serviços para aprovar seu projeto antes de criar o endpoint do Private Service Connect.