Aceda a serviços publicados através de pontos finais

Este documento explica como aceder a serviços noutra rede de VPC através de pontos finais do Private Service Connect. Pode estabelecer ligação aos seus próprios serviços ou aos fornecidos por outros produtores de serviços, incluindo a Google.

Para mais informações sobre os serviços, consulte o artigo publique serviços geridos.

Antes de começar

  • Leia o artigo Acerca da ligação a serviços através de pontos finais, incluindo limitações.
  • Tem de ativar a API Compute Engine no seu projeto.
  • Tem de ativar a API Service Directory no seu projeto.
  • Tem de ativar a API Cloud DNS no seu projeto.
  • Identifique ou crie uma sub-rede normal para usar para atribuir um endereço IP ao ponto final.
    • A sub-rede tem de estar na mesma região que o serviço ao qual quer estabelecer ligação.
    • Pode usar um endereço IPv4 de uma sub-rede apenas IPv4 ou de uma sub-rede de pilha dupla.
    • Pode usar um endereço IPv6 de uma sub-rede apenas IPv6 ou de pilha dupla se a sub-rede tiver um intervalo de endereços IPv6 internos.
    • A versão IP do endereço IP afeta os serviços publicados aos quais o ponto final se pode ligar. Para mais informações, consulte o artigo Tradução de versão de IP.
  • As regras de firewall de saída têm de permitir o tráfego para o endereço IP interno do ponto final. A regra de firewall de permissão implícita de saída permite a saída para qualquer endereço IP de destino. Se criou regras de firewall de negação de saída na sua rede VPC ou se criou políticas de firewall hierárquicas que modificam o comportamento de saída permitido implícito, o acesso ao ponto final pode ser afetado. Crie uma regra ou uma política de firewall de saída específica para permitir o tráfego para o destino do endereço IP interno do ponto final do serviço.
  • Tem de ter o URI da associação de serviço para o serviço. Por exemplo, projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

Funções necessárias

Para receber as autorizações de que precisa para aceder aos serviços publicados através de pontos finais, peça ao seu administrador para lhe conceder as seguintes funções do IAM:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para aceder aos serviços publicados através de pontos finais. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para aceder a serviços publicados através de pontos finais:

  • Para criar, ver e eliminar pontos finais no seu projeto:
    • compute.networks.use no seu projeto
    • compute.subnetworks.use no seu projeto
    • compute.addresses.createInternal no seu projeto
    • compute.addresses.deleteInternal no seu projeto
    • compute.addresses.get no seu projeto
    • compute.addresses.list no seu projeto
    • compute.addresses.use no seu projeto
    • compute.forwardingRules.create no seu projeto
    • compute.forwardingRules.delete no seu projeto
    • compute.forwardingRules.get no seu projeto
    • compute.forwardingRules.list no seu projeto
    • compute.forwardingRules.pscCreate no seu projeto
    • compute.forwardingRules.pscDelete no seu projeto
    • compute.regionOperations.get no seu projeto
    • servicedirectory.namespaces.create no seu projeto
    • servicedirectory.namespaces.delete no seu projeto
    • servicedirectory.services.create no seu projeto
    • servicedirectory.services.delete no seu projeto
  • Para criar, ver e eliminar pontos finais num projeto de serviço associado a uma rede de VPC partilhada:
    • compute.addresses.createInternal no projeto de serviço
    • compute.addresses.deleteInternal no projeto de serviço
    • compute.addresses.get no projeto de serviço
    • compute.addresses.list no projeto de serviço
    • compute.addresses.use no projeto de serviço
    • compute.forwardingRules.create no projeto de serviço
    • compute.forwardingRules.delete no projeto de serviço
    • compute.forwardingRules.get no projeto de serviço
    • compute.forwardingRules.list no projeto de serviço
    • compute.forwardingRules.pscCreate no projeto de serviço
    • compute.forwardingRules.pscDelete no projeto de serviço
    • compute.regionOperations.get no projeto de serviço
    • servicedirectory.namespaces.create no projeto de serviço
    • servicedirectory.namespaces.delete no projeto de serviço
    • servicedirectory.services.create no projeto de serviço
    • servicedirectory.services.delete no projeto de serviço
    • compute.networks.use no projeto anfitrião
    • compute.subnetworks.use no projeto anfitrião
  • Para configurar automaticamente ou manualmente as entradas de DNS de um ponto final no seu projeto:
    • dns.managedZones.create no seu projeto
    • dns.managedZones.delete no seu projeto
    • dns.networks.bindPrivateDNSZone no seu projeto
    • servicedirectory.namespaces.associatePrivateZone no seu projeto
  • Para configurar automaticamente ou manualmente as entradas de DNS para um ponto final numa rede VPC partilhada:
    • dns.managedZones.create no projeto de serviço
    • dns.managedZones.delete no projeto de serviço
    • dns.networks.bindPrivateDNSZone no projeto de serviço
    • servicedirectory.namespaces.associatePrivateZone no projeto de serviço
  • Para aceder à página do Private Service Connect na Google Cloud consola:
    • compute.forwardingRules.list no seu projeto
    • compute.globalForwardingRules.list no seu projeto
    • compute.networkEndpointGroups.list no seu projeto
    • compute.regionNetworkEndpointGroups.list no seu projeto
    • compute.urlMaps.list no seu projeto
    • compute.backendService.list no seu projeto
    • compute.regionBackendService.list no seu projeto
    • compute.backendBucket.list no seu projeto
    • compute.targetHttpProxy.list no seu projeto
    • compute.targetHttpsProxy.list no seu projeto
    • compute.regionTargetTcpProxy.list no seu projeto
    • compute.targetTcpProxy.list no seu projeto
    • compute.targetSslProxy.list no seu projeto
    • compute.sslCertificate.list no seu projeto
    • compute.sslPolicy.list no seu projeto
    • compute.regionHealthCheck.list no seu projeto
    • compute.healthCheck.list no seu projeto
    • compute.httpHealthCheck.list no seu projeto
    • compute.httpsHealthCheck.list no seu projeto

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Crie um ponto final

Um ponto final liga-se a serviços noutra rede VPC através de uma regra de encaminhamento do Private Service Connect. Cada regra de encaminhamento conta para a quota por projeto de regras de encaminhamento do Private Service Connect para aceder a serviços noutra rede VPC.

Quando cria um ponto final, este é registado automaticamente no Service Directory, através de um espaço de nomes à sua escolha ou do espaço de nomes predefinido, goog-psc-default.

Se quiser disponibilizar o ponto final a partir de mais do que uma região, ative o acesso global.

Só pode atualizar o campo de acesso global dos pontos finais para serviços publicados. Se quiser atualizar outros campos, elimine o ponto final e, de seguida, crie um novo.

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 o URI do anexo de serviço ao qual quer estabelecer ligação.

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

  6. Em Nome do ponto final, introduza um nome a usar para o ponto final.

  7. Selecione uma rede para o ponto final.

  8. Selecione uma sub-rede para o ponto final.

  9. Selecione um endereço IP para o ponto final. Se precisar de um novo endereço IP, pode criar um:

    1. Clique no menu pendente Endereço IP e selecione Criar endereço IP.
    2. Introduza um Nome e uma Descrição opcional para o endereço IP.
    3. Selecione uma versão do IP.
    4. Se estiver a criar um endereço IPv4, selecione Atribuir automaticamente ou Permitir-me escolher.

      Se selecionou Deixar-me escolher, introduza o endereço IP personalizado que quer usar.

    5. Clique em Reservar.

  10. Para disponibilizar o ponto final a partir de qualquer região, selecione Ativar acesso global.

  11. Selecione um espaço de nomes na lista pendente ou crie um novo espaço de nomes.

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

  12. Clique em Adicionar ponto final.

gcloud

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

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

    Substitua o seguinte:

    • ADDRESS_NAME: o nome a atribuir ao endereço IP reservado.

    • REGION: a região do endereço IP do ponto final. Esta tem de ser a mesma região que contém a associação de serviço do produtor de serviços.

    • SUBNET: o nome da sub-rede para o endereço IP do ponto final.

    • IP_VERSION: a versão IP do endereço IP, que pode ser IPV4 ou IPV6. IPV4 é a predefinição. Para especificar IPV6, o endereço IP tem de estar associado a uma sub-rede com um intervalo de endereços IPv6 internos.

  2. Encontre o endereço IP reservado.

    gcloud compute addresses list --filter="name=ADDRESS_NAME"
    
  3. Crie uma regra de encaminhamento para associar o ponto final à associação do serviço do produtor do serviço. Por predefinição, os pontos finais estão disponíveis apenas na respetiva região. Para disponibilizar um ponto final a partir de qualquer região, use a flag --allow-psc-global-access.

    • Crie um ponto final que só possa ser acedido a partir da sua própria região.

      gcloud compute forwarding-rules create ENDPOINT_NAME \
          --region=REGION \
          --network=NETWORK_NAME \
          --address=ADDRESS_NAME \
          --target-service-attachment=SERVICE_ATTACHMENT \
          [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
      
    • Crie um ponto final acessível a partir de qualquer região.

      gcloud compute forwarding-rules create ENDPOINT_NAME \
          --region=REGION \
          --network=NETWORK_NAME \
          --address=ADDRESS_NAME \
          --target-service-attachment=SERVICE_ATTACHMENT \
          --allow-psc-global-access \
          [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
      

    Substitua o seguinte:

    • ENDPOINT_NAME: o nome a atribuir ao ponto final.

    • REGION: a região do ponto final. Tem de ser a mesma região que contém a associação de serviço do produtor de serviços.

    • NETWORK_NAME: o nome da rede VPC para o ponto final.

    • ADDRESS_NAME: o nome da morada reservada.

    • SERVICE_ATTACHMENT: o URI da associação do serviço do produtor do serviço. Por exemplo: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

    • PROJECT_ID: o ID do seu projeto.

    • NAMESPACE: o espaço de nomes do diretório de serviços que quer usar. Se especificar um espaço de nomes que não exista, o espaço de nomes é criado.

      Se omitir a flag --service-directory-registration, é usado o espaço de nomes predefinido de goog-psc-default.

API

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

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

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto.

    • REGION: a região do ponto final. Tem de ser a mesma região que contém a associação de serviço do produtor de serviços.

    • ADDRESS_NAME: o nome a atribuir ao endereço IP reservado.

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

    • IP_VERSION: a versão IP do endereço IP, que pode ser IPV4 ou IPV6. IPV4 é a predefinição. Para especificar IPV6, o endereço IP tem de estar associado a uma sub-rede com um intervalo de endereços IPv6 internos.

  2. Crie uma regra de encaminhamento para associar o ponto final à associação do serviço do produtor do serviço. Por predefinição, os pontos finais estão disponíveis apenas na respetiva região. Para disponibilizar um ponto final a partir de qualquer região, defina allowPscGlobalAccess como true.

    • Crie um ponto final que só possa ser acedido a partir da sua própria região.

      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"
            }
        ]
      }
      
    • Crie um ponto final acessível a partir de qualquer região.

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

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto.

    • REGION: a região do ponto final.

    • ENDPOINT_NAME: o nome a atribuir ao ponto final.

    • ADDRESS_URI: o URI do endereço reservado na rede associada. Use o método addresses.list ou gcloud compute addresses list --uri para encontrar o URL da sua morada reservada.

    • SERVICE_ATTACHMENT: o URI da associação do serviço do produtor do serviço. Por exemplo: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

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

    • NAMESPACE: o espaço de nomes do ponto final. Se especificar um espaço de nomes que não existe, o espaço de nomes é criado. Se omitir o campo namespace, é atribuído o espaço de nomes predefinido de goog-psc-default.

Crie um ponto final com um endereço IP de uma rede VPC partilhada

Os administradores de projetos de serviço podem criar pontos finais em projetos de serviço de VPC partilhada que usam endereços IP de redes de VPC partilhada associadas. A criação de pontos finais deste tipo não está disponível na Google Cloud consola. Tem de usar a CLI Google Cloud ou enviar um pedido de API. Para mais informações, consulte o artigo VPC partilhada.

Este exemplo mostra como criar um ponto final com um endereço IP de uma rede de VPC partilhada que pode ser acedido a partir de uma única região. Para ativar o acesso global ou escolher um espaço de nomes para o Service Directory, consulte o artigo Criar um ponto final.

gcloud

  1. Para reservar um endereço IP interno para atribuir ao ponto final, faça uma das seguintes ações:

    O endereço IP tem de estar na mesma região que a associação de serviço do produtor de serviços.

  2. Para criar o ponto final no projeto de serviço, faça uma das seguintes ações.

    • Se tiver autorização para usar todas as sub-redes no projeto anfitrião, use o seguinte comando:

      gcloud compute forwarding-rules create ENDPOINT_NAME \
          --region=REGION \
          --network=projects/HOST_PROJECT/global/networks/HOST_NETWORK \
          --address=projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME \
          --target-service-attachment=SERVICE_ATTACHMENT
      

      Substitua o seguinte:

      • ENDPOINT_NAME: o nome a atribuir ao ponto final.
      • REGION: a região do ponto final. Esta tem de ser a mesma região que contém a associação de serviço do produtor de serviços.
      • HOST_PROJECT: o ID do projeto do projeto da rede VPC partilhada.
      • HOST_NETWORK: o nome da rede de VPC partilhada que contém o endereço IP do ponto final.
      • ADDRESS_PROJECT: o ID do projeto no qual reservou o endereço IP. Pode ser o projeto de serviço ou o projeto anfitrião.
      • ADDRESS_NAME: o nome do endereço IP reservado.
      • SERVICE_ATTACHMENT: o URI da associação do serviço do produtor do serviço. Por exemplo: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
    • Se tiver autorização para usar apenas algumas sub-redes no projeto anfitrião, especifique uma sub-rede partilhada através do seguinte comando:

      gcloud compute forwarding-rules create ENDPOINT_NAME \
          --region=REGION \
          --subnet=projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET \
          --address=projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME \
          --target-service-attachment=SERVICE_ATTACHMENT
      

      Substitua HOST_SUBNET pelo nome da sub-rede que contém o endereço IP do ponto final.

API

  1. Para reservar um endereço IP interno para atribuir ao ponto final, faça uma das seguintes ações:

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

  2. Para criar o ponto final no projeto de serviço, faça uma das seguintes ações.

    • Se tiver autorização para usar todas as sub-redes no projeto anfitrião, faça o seguinte pedido:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules
      {
        "name": "ENDPOINT_NAME",
        "IPAddress": "projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME",
        "target": "SERVICE_ATTACHMENT",
        "network": "projects/HOST_PROJECT/global/networks/HOST_NETWORK"
      }
      

      Substitua o seguinte:

      • PROJECT: o ID do projeto de serviço.
      • REGION: a região do ponto final. Esta tem de ser a mesma região que contém a associação do serviço do produtor do serviço.
      • ENDPOINT_NAME: o nome a atribuir ao ponto final.
      • ADDRESS_PROJECT: o ID do projeto no qual reservou o endereço IP. Pode ser o projeto de serviço ou o projeto anfitrião.
      • ADDRESS_NAME: o nome do endereço IP reservado.
      • SERVICE_ATTACHMENT: o URI da associação de serviço do produtor de serviços. Por exemplo: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
      • HOST_PROJECT: o ID do projeto do projeto da rede VPC partilhada.
      • HOST_NETWORK: o nome da rede de VPC partilhada que contém o endereço IP do ponto final.
    • Se tiver autorização para usar apenas algumas sub-redes no projeto anfitrião, especifique uma sub-rede partilhada fazendo o seguinte pedido:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules
      {
        "name": "ENDPOINT_NAME",
        "IPAddress": "projects/ADDRESS_PROJECT/regions/REGION/addresses/ADDRESS_NAME",
        "target": "SERVICE_ATTACHMENT",
        "subnetwork": "projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET"
      }
      

      Substitua HOST_SUBNET pelo nome da sub-rede que contém o endereço IP do ponto final.

Apresente pontos finais

Pode listar todos os pontos finais configurados.

Consola

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

    Aceda ao Private Service Connect

  2. Clique no separador Pontos finais ligados.

    Os pontos finais são apresentados.

gcloud

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

O resultado é semelhante ao seguinte:

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

API

Esta chamada API devolve todas as regras de encaminhamento e não apenas os pontos finais usados para aceder aos serviços.

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

Substitua o seguinte:

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

Veja os detalhes do ponto final

Pode ver todos os detalhes de configuração de um ponto final, incluindo o estado da ligação do ponto final.

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 no ponto final que quer ver.

gcloud

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

Substitua o seguinte:

  • ENDPOINT_NAME: o nome do ponto final.
  • REGION: a região do ponto final.

API

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

Substitua o seguinte:

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

Etiquete um ponto final

Pode gerir etiquetas para pontos finais. Para ver instruções detalhadas, consulte o artigo sobre a etiquetagem de recursos.

Elimine um ponto final

Pode eliminar um ponto final.

No entanto, as seguintes configurações do diretório de serviços não são eliminadas quando elimina o ponto final:

  • Espaço de nomes do diretório de serviços
  • Zona DNS do diretório de serviços

O espaço de nomes do Service Directory e a zona DNS do Service Directory podem ser usados por outros serviços. Verifique se o espaço de nomes está vazio antes de eliminar o espaço de nomes do Service Directory ou eliminar a zona DNS do Service Directory.

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. Selecione o ponto final que quer eliminar e, de seguida, clique em Eliminar.

gcloud

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

Substitua o seguinte:

  • ENDPOINT_NAME: o nome do ponto final.
  • REGION: a região do ponto final.

API

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

Substitua o seguinte:

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

Aceda a pontos finais a partir de redes híbridas

Os clientes em redes ligadas Google Cloud com anexos de VLAN para túneis do Cloud Interconnect ou da VPN do Google Cloud podem alcançar os pontos finais do Private Service Connect.

  • O anexo da VLAN ou o túnel da Cloud VPN tem de terminar na mesma rede da VPC (ou rede da VPC partilhada) que o ponto final. Os clientes em redes VPCs com intercâmbio não conseguem alcançar os pontos finais.

  • O tráfego do cliente de anexos de VLAN ou túneis da Cloud VPN pode alcançar pontos finais noutra região se o acesso global estiver configurado.

  • O Dataplane v1 e o Dataplane v2 são suportados para as associações de VLAN. Para mais informações sobre as versões do plano de dados, consulte o artigo Plano de dados v2.

Se quiser aceder ao ponto final através do respetivo nome DNS, tem de configurar os sistemas na outra rede para que possam fazer consultas às suas zonas DNS privadas.

Se implementou as zonas DNS privadas através do Cloud DNS, conclua os seguintes passos:

  • Crie uma política de servidor de entrada na rede VPC à qual a sua outra rede se liga.

  • Identifique os pontos de entrada do encaminhador de entrada na região onde o anexo da VLAN ou o túnel da VPN na nuvem está localizado, na rede VPC à qual a sua outra rede se liga.

  • Configure os sistemas e os servidores de nomes DNS na outra rede para encaminhar os nomes DNS do ponto final para um ponto de entrada do encaminhador de entrada na mesma região que a associação de VLAN ou o túnel de VPN do Google Cloud que se liga à rede VPC.

Veja as zonas DNS do Service Directory

Se os pré-requisitos para a configuração automática de DNS forem cumpridos, é criada uma zona DNS com um nome no formato NAMESPACE--REGION.

Consola

  1. Na Google Cloud consola, aceda à página Zonas de DNS na nuvem.

    Aceda às zonas do Cloud DNS

  2. Procure uma zona privada com o nome NAMESPACE--REGION.

gcloud

  • Execute o seguinte comando para listar todas as zonas de DNS privado:

    gcloud dns managed-zones list \
        --filter="visibility=private"
    
  • Execute o seguinte comando para obter detalhes de uma zona com o nome NAMESPACE--REGION.

    gcloud dns managed-zones describe NAMESPACE--REGION
    

Se a zona não estiver presente, veja os detalhes do ponto final e verifique se a configuração do ponto final inclui um valor para o espaço de nomes.

Outras formas de configurar o DNS

Se os pré-requisitos para a configuração automática do DNS não forem cumpridos, pode criar entradas DNS de outras formas:

Configure uma zona DNS do diretório de serviços

Se um ponto final estiver registado no Service Directory, mas o serviço publicado ao qual se liga não tiver um nome de domínio configurado, não são feitas alterações ao DNS.

Se quiser replicar a configuração automática de DNS, pode configurar manualmente uma zona DNS do Service Directory que seja suportada pelo espaço de nomes do Service Directory. Depois de criar a zona, as entradas DNS para o ponto final são criadas automaticamente.

Crie uma zona DNS do Service Directory com a seguinte configuração:

  • Nome da zona: especifique NAMESPACE--REGION, onde NAMESPACE é o espaço de nomes no qual o ponto final está registado e REGION é a região onde o ponto final é criado.

  • Nome DNS: o domínio DNS que o produtor do serviço está a usar para os respetivos serviços publicados. Consulte o produtor do serviço para obter estas informações.

    O nome DNS pode ter o formato REGION.p.DOMAIN. Por exemplo, se o domínio público do produtor de serviços for example.com e o respetivo serviço publicado estiver em us-west1, recomendamos que o produtor disponibilize o serviço através dos nomes de domínios us-west1.p.example.com. Inclua um ponto no final, por exemplo, us-west1.p.example.com.

  • Espaço de nomes do diretório de serviços: o espaço de nomes que configurou para este ponto final.

Veja os detalhes do ponto final para encontrar o espaço de nomes e a região do Service Directory.

Com esta configuração, se tiver configurado uma zona DNS do Service Directory com o nome DNS us-west1.p.example.com e criar um ponto final com o nome analytics, é criado automaticamente um registo DNS para analytics.us-west1.p.example.com.

Registe um ponto final no Service Directory

Os novos pontos finais são automaticamente registados no Service Directory. No entanto, se um ponto final tiver sido criado antes de o registo automático no Service Directory ter sido ativado, esta configuração pode estar em falta.

Pode eliminar o ponto final e criar um novo, que é registado automaticamente no diretório de serviços.

Em alternativa, pode seguir estes passos para registar um ponto final existente num espaço de nomes do Service Directory.

  1. Crie um espaço de nomes do Service Directory para o ponto final, NAMESPACE.

  2. Crie um serviço do Service Directory para o ponto final, SERVICE_NAME.

    Para o serviço, use o mesmo nome que o nome da regra de encaminhamento usada para o ponto final, ENDPOINT_NAME.

  3. Crie um ponto final do Service Directory, usando o nome default e use o endereço IP e a porta (443) do ponto final.

Depois de registar o ponto final no Service Directory, siga as instruções para configurar uma zona DNS do Service Directory.

Configure o DNS manualmente

Se tiver impedido a configuração automática de DNS ou se esta não estiver ativada na sua configuração, pode usar o Cloud DNS para criar manualmente registos DNS

Para mais informações, consulte as seguintes páginas:

  • Controlo de acesso: a função de administrador de DNS (roles/dns.admin) fornece as autorizações necessárias para criar zonas e registos de DNS.

  • Crie uma zona privada.

    • Quando configura uma zona privada, fornece um nome DNS. Use o domínio DNS que o produtor do serviço está a usar para os respetivos serviços publicados. Consulte o produtor do serviço para obter estas informações.

      Pode ter este formato: REGION.p.DOMAIN. Por exemplo, se o domínio público do produtor de serviços for example.com e o respetivo serviço publicado estiver em us-west1, recomendamos que disponibilize o serviço através dos nomes de domínios us-west1.p.example.com.

  • Adicione um registo.

Problemas conhecidos

Os back-ends em mau estado de funcionamento recebem tráfego com pontos finais de acesso global

É possível ligar um ponto final de acesso global a um serviço publicado que não esteja configurado para acesso global. No entanto, as verificações de estado não funcionam corretamente nesta configuração. Como resultado, o tráfego pode ser enviado para back-ends não saudáveis e ser ignorado.

Ative o acesso global para um ponto final apenas se souber que o balanceador de carga do anexo de serviço está configurado para acesso global.

Se o seu ponto final for afetado por este problema, faça uma das seguintes ações:

Resolução de problemas

A criação da zona DNS privada falha

Quando cria um ponto final, é criada uma zona DNS do Service Directory. A criação de zonas pode falhar pelos seguintes motivos:

  • Não ativou a API Cloud DNS no seu projeto.

  • Não tem as autorizações necessárias para criar uma zona DNS do Service Directory.

  • Já existe uma zona DNS com o mesmo nome de zona nesta rede VPC.

  • Já existe uma zona DNS para o mesmo nome de domínio nesta rede VPC.

Para criar manualmente a zona DNS do Service Directory, faça o seguinte:

  1. Confirme se a API Cloud DNS está ativada no seu projeto.

  2. Verifique se tem as autorizações necessárias para criar a zona DNS do Service Directory:

    • dns.managedZones.create
    • dns.networks.bindPrivateDNSZone
    • servicedirectory.namespaces.associatePrivateZone
  3. Se existir uma zona em conflito, mas já não for necessária, elimine a zona DNS.

  4. Crie uma zona DNS do Service Directory suportada pelo espaço de nomes do Service Directory associado ao seu ponto final.

A criação do ponto final falha quando o acesso global está configurado

Nem todos os serviços publicados do Private Service Connect suportam pontos finais com acesso global. Se criar um ponto final com acesso global e o serviço publicado não o suportar, é apresentada esta mensagem de erro:

Private Service Connect global access is not supported for the given forwarding rule, since its producer service does not support consumer global access.

Crie o ponto final sem a opção de acesso global.

A criação do ponto final é bem-sucedida, mas a conetividade não é estabelecida

Se criar com êxito um ponto final para serviços publicados, mas a conetividade não for estabelecida, verifique o estado da associação do ponto final. O estado da ligação pode indicar os passos que pode seguir para resolver o problema.

Erros de ligação propagados

Para obter informações sobre a resolução de problemas de ligações propagadas, consulte o artigo Resolva problemas de erros de propagação de ligações do Private Service Connect.

O ponto final tem problemas de desempenho ou limites de tempo de ligação

Se o seu ponto final tiver problemas de desempenho ou limites de tempo de ligação intermitentes, tal pode dever-se a pacotes perdidos. Pode investigar os pacotes perdidos verificando as métricas descritas nas secções seguintes.

Pacotes rejeitados para o serviço publicado

A métrica private_service_connect/consumer/dropped_sent_packets_count monitoriza os pacotes de um consumidor do Private Service Connect, como um ponto final para um serviço publicado, que são ignorados porque o ponto final excedeu as ligações máximas ao serviço.

Se um ponto final comunicar valores para esta métrica, considere as seguintes soluções:

  • Crie pontos finais adicionais que se liguem ao serviço publicado.
  • Reduza o número de ligações através deste ponto final.
  • Peça ao produtor do serviço para aumentar a capacidade do serviço publicado, por exemplo, adicionando mais instâncias de máquinas virtuais (VM) ou pontos finais de rede.

Pacotes rejeitados de serviços publicados

A métrica private_service_connect/consumer/dropped_received_packets_count monitoriza os pacotes enviados de um serviço publicado para um consumidor do Private Service Connect, como um ponto final, que são eliminados porque o Private Service Connect não consegue encontrar uma ligação correspondente para pacotes de resposta.

O Private Service Connect só permite ligações iniciadas a partir da rede VPC do consumidor. Quando um consumidor inicia uma ligação, a ligação é monitorizada para fazer corresponder os pacotes de resposta do serviço publicado a uma ligação existente. Se o Private Service Connect não conseguir encontrar uma correspondência para um pacote de resposta, o pacote é rejeitado.

O Private Service Connect pode não encontrar uma correspondência para um pacote de resposta se um serviço publicado enviar pacotes de resposta após o tempo limite de uma ligação ter expirado. Se vir valores para esta métrica, contacte o produtor do serviço. Podem conseguir configurar o respetivo serviço para evitar este problema.