Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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, explicamos como usar os endpoints do Private Service Connect para se conectar a serviços gerenciados 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 publicar serviços gerenciados 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 Ambos os papéis:
Administrador de rede do Compute (roles/compute.networkAdmin) e
EDitor do Diretório de serviços (roles/servicedirectory.editor)
Configurar de maneira automática ou manual as entradas DNS de um endpoint do Private Service Connect Administrador do DNS (roles/dns.admin)

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

  • Não é possível criar um endpoint do Private Service Connect na mesma rede VPC que o serviço publicado que você está acessando.

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

  • O Espelhamento de pacotes não pode espelhar pacotes para o tráfego de serviços publicados do Private Service Connect.

Configuração automática de DNS

Se houver as seguintes configurações, as entradas DNS serão criadas automaticamente para os endpoints do Private Service Connect:

  • O produtor de serviço configurou um nome de domínio para o serviço.

  • O endpoint do Private Service Connect é registrado com um namespace do Diretório de serviços.

    Todos os novos endpoints são registrados automaticamente no Diretório de serviços, mas os mais antigos podem não ser registrados.

Se as duas configurações estiverem presentes, quando o endpoint do Private Service Connect for criado, uma zona DNS do diretório de serviços será criada com o nome: NAMESPACE--REGION. Essa zona particular armazena entradas de DNS para serviços encontrados no namespace NAMESPACE do Diretório de serviços, na região REGION.

Configuração automática de DNS para endpoints do Private Service Connect usando o Diretório de serviços (clique para ampliar)

Depois de criar o endpoint do Private Service Connect, é possível verificar se uma zona DNS do diretório de serviços foi criada. Se a zona DNS do diretório de serviços não for criada, você poderá criar manualmente uma configuração semelhante. Para mais informações, consulte Visualizar zonas do DNS do diretório de serviços.

Se você não quiser que essas entradas de DNS sejam criadas, siga um destes procedimentos:

  • Se você não estiver usando o Cloud DNS para outra finalidade, desative a API do Cloud DNS ou remova as permissões necessárias para o Cloud DNS.

  • Aguarde a criação da zona de DNS e depois exclua a zona DNS manualmente.

    Se você preferir configurar o DNS manualmente, consulte Configurar o DNS manualmente.

Criar um endpoint do Private 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=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
    

    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

    • PROJECT_ID: o ID do projeto.

    • NAMESPACE: o namespace do Diretório de serviços que você quer usar. Se você especificar um namespace que não existe, o namespace será criado.

      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.

Ver zonas de DNS do Diretório de serviços

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

Console

  1. No Console do Google Cloud, acesse a página Zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

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

gcloud

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

    gcloud dns managed-zones list \
        --filter="visibility=private"
    
  • Execute o comando a seguir para ver os 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 endpoint do Private Service Connect e verifique se a configuração do endpoint inclui um valor para o namespace.

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.

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

Rotular um endpoint

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

Excluir um endpoint

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

No entanto, as seguintes configurações do diretório de serviços não são excluídas quando você exclui o endpoint:

  • Namespace do diretório de serviços
  • Zona de DNS do Diretório de serviços

O namespace do Diretório de serviços e a zona DNS do Diretório de serviços podem ser usados por outros serviços. Verifique se o namespace está vazio antes de excluir o namespace do Diretório de serviços ou excluir a zona de DNS do Diretório de serviços.

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.

Outras maneiras de configurar o DNS

Se os pré-requisitos da configuração automática de DNS não forem atendidos, será possível criar entradas DNS de outras maneiras:

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

Se um endpoint do Private Service Connect estiver registrado no Diretório de serviços, mas o serviço publicado ao qual ele se conecta não tiver um nome de domínio configurado, nenhuma alteração de DNS será feita.

Se você quiser replicar a configuração automática de DNS, poderá configurar manualmente uma zona DNS do Diretório de serviços apoiada pelo namespace do Diretório de serviços. 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 NAMESPACE--REGION, em que NAMESPACE é o namespace em que o endpoint do Private Service Connect é registrado e REGION é a região em que o endpoint é criado.

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

    O nome do 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 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. Inclua um ponto à direita, por exemplo, us-west1.p.example.com.

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

Veja os detalhes do endpoint do Private Service Connect para encontrar o namespace e a região do diretório de serviços.

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

Novos endpoints do Private Service Connect são registrados automaticamente no Diretório de serviços. No entanto, se um endpoint do Private Service Connect tiver sido criado antes da ativação do registro automático com o Diretório de serviços, talvez essa configuração esteja ausente.

É possível excluir o endpoint do Private Service Connect e criar um novo, que é registrado no Diretório de serviços automaticamente.

Ou então, siga estas etapas para registrar uma instância do Private Service Connect atual com um namespace do diretório de serviços.

  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ê tiver impedido a configuração automática de DNS ou se ela não estiver ativada na configuração, poderá usar o Cloud DNS para criar registros DNS manualmente.

Para mais informações, 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.

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.

  • É possível visualizar as alterações no status da conexão para endpoints do Private Service Connect usando registros de auditoria. As alterações no status da conexão do endpoint são capturadas nos metadados de evento do sistema para o tipo de recurso Regra de encaminhamento do GCE. É possível filtrar por pscConnectionStatus para visualizar essas entradas.

    Por exemplo, quando um produtor de serviço permite conexões do seu projeto, o status da conexão do endpoint muda de PENDING para ACCEPTED e essa alteração é refletida nos registros de auditoria.

Acesse o endpoint de hosts locais

Os clientes em redes conectadas ao Google Cloud com anexos da VLAN para túneis do Cloud Interconnect (Visualização) ou do Cloud VPN podem alcançar endpoints do Private Service Connect.

  • O anexo da VLAN ou o túnel do Cloud VPN precisa ser encerrado na mesma rede VPC e região que o endpoint do Private Service Connect.

  • O tráfego do cliente das redes conectadas para os endpoints do Private Service Connect não é compatível com as redes VPC com peering ou com os limites regionais.

    O anexo da VLAN ou o túnel do Cloud VPN e o endpoint do Private Service Connect podem estar em projetos diferentes se estiverem usando a VPC compartilhada.

  • Os anexos da VLAN precisam ter dataplaneVersion: 2. Inspecione o anexo da VLAN para verificar em qual versão ele está.

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ê tiver implementado as zonas DNS particulares usando o Cloud DNS, siga estas etapas:

VPC Service Controls

O VPC Service Controls e o Private Service Connect são compatíveis entre si. Se a rede VPC em que o endpoint do Private Service Connect estiver implantado estiver em um perímetro do VPC Service Controls, esse endpoint faz parte do mesmo perímetro. Todos os serviços compatíveis com o VPC Service Controls que são acessados pelo endpoint do Private Service Connect estão sujeitos às políticas desse perímetro do VPC Service Controls.

Ao criar um endpoint do Private Service Connect, as chamadas de API do plano de controle são feitas entre os projetos do consumidor e do produtor para estabelecer uma conexão do Private Service Connect. Estabelecer uma conexão do Private Service Connect entre projetos do consumidor e do produtor que não estão no mesmo perímetro do VPC Service Controls não exige autorização explícita com políticas de saída. A comunicação com os serviços compatíveis com o VPC Service Controls pelo endpoint do Private Service Connect é protegida pelo perímetro do VPC Service Controls.

Solução de problemas

Falha na criação da zona de DNS privado

Quando você cria um endpoint do Private Service Connect, uma zona DNS do Diretório de serviços é criada. A criação da zona pode falhar por estes motivos:

  • Você não ativou a API do Cloud DNS no projeto.

  • Você não tem as permissões necessárias para criar uma zona de DNS do Diretório de serviços.

  • Há uma zona DNS com o mesmo nome de zona nessa rede VPC.

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

Para criar a zona DNS do Diretório de serviços, faça o seguinte:

  1. Verifique se a API do Cloud DNS está ativada no projeto.

  2. Verifique se você tem as permissões necessárias para criar a zona DNS do Diretório de serviços:

    • dns.managedZones.create
    • dns.networks.bindPrivateDNSZone
    • servicedirectory.namespaces.associatePrivateZone
  3. Se houver uma zona conflitante, mas ela não for mais necessária, exclua a zona DNS.

  4. Crie uma zona DNS do Diretório de serviços compatível com o namespace do diretório de serviços associado ao endpoint do Private Service Connect.