Publicar serviços usando o Private Service Connect

Como produtor de serviço, use o Private Service Connect para publicar serviços usando endereços IP internos na rede VPC. Os serviços publicados podem ser acessados pelos consumidores de serviço usando endereços IP internos nas redes VPC do consumidor.

Este guia descreve como usar o Private Service Connect para publicar um serviço. Para publicar um serviço, faça o seguinte:

O Private Service Connect fornece dois métodos para se conectar a serviços publicados:

Esses tipos de endpoints exigem configurações de produtor um pouco diferentes. Para mais informações, consulte Recursos e compatibilidade.

Papéis

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

Antes de começar

  • Leia Sobre serviços publicados para informações sobre serviços de publicação, incluindo limitações.

  • Decida se o serviço precisa ser acessível em todos os projetos ou se você quer controlar quais projetos podem acessar o serviço.

  • Decida se você quer que esse serviço seja compatível com endpoints, back-ends ou ambos. Para mais informações sobre endpoints e back-ends, consulte Tipos do Private Service Connect.

    Para mais informações sobre os requisitos de configuração do serviço, consulte Recursos e compatibilidade.

  • Decida se você quer configurar um nome de domínio para o serviço, que automatiza a configuração do DNS para endpoints de consumidores de serviço. Se você configurar um nome de domínio, o mesmo principal do IAM que publica o serviço precisa verificar se eles têm permissões de proprietário para o domínio no Google Search Console. Se você configurar um nome de domínio, mas não for o proprietário do domínio, a publicação do serviço falhará. Para verificar a propriedade, acesse o Google Search Console.

    O nome de domínio especificado no anexo do serviço pode ser um subdomínio do domínio verificado. Por exemplo, é possível verificar example.com e, em seguida, criar um anexo de serviço com um nome de domínio de us-west1.p.example.com.

Criar um balanceador de carga com suporte

Para hospedar o serviço, crie um dos balanceadores de carga a seguir em uma rede VPC do produtor de serviços:

Para informações sobre configurações compatíveis para cada tipo de balanceador de carga, consulte Recursos e compatibilidade.

É possível associar cada anexo de serviço à regra de encaminhamento de um único balanceador de carga. Não é possível associar vários anexos de serviço à mesma regra de encaminhamento.

A versão IP da regra de encaminhamento do balanceador de carga (IPv4 ou IPv6) afeta quais consumidores podem se conectar ao serviço publicado. Para mais informações, consulte Conversão de versão de IP.

Para balanceadores de carga de rede de proxy interno regionais, os back-ends podem estar localizados no Google Cloud, em outras nuvens, em um ambiente local ou em qualquer combinação desses locais.

Também é possível publicar um serviço hospedado em um balanceador de carga de rede de passagem interno no Google Kubernetes Engine. Esta configuração, incluindo a configuração do balanceador de carga e do anexo de serviço, é descrita em Criar um balanceador de carga de rede de passagem interno com o Private Service Connect na documentação do GKE.

Criar uma sub-rede para o Private Service Connect

Crie uma ou mais sub-redes dedicadas para usar com o Private Service Connect. Se você estiver usando o Console do Google Cloud para publicar um serviço, poderá criar as sub-redes durante esse procedimento.

Se você precisar disponibilizar mais endereços IP para um serviço atual, consulte Adicionar ou remover sub-redes de um serviço publicado.

Também é possível criar uma sub-rede do Private Service Connect em um projeto host da VPC compartilhada.

Crie a sub-rede na mesma região do balanceador de carga do serviço.

Não é possível converter uma sub-rede regular em uma sub-rede do Private Service Connect.

Se você quiser publicar um serviço que exiba tráfego IPv6, use sub-redes de pilha dupla.

Console

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique no nome de uma rede VPC para mostrar a página Detalhes da rede VPC.

  3. Clique em Sub-redes.

  4. Clique em Add subnet. No painel exibido, execute as ações a seguir:

    1. Forneça um Nome.
    2. Selecione uma Região.
    3. Na seção Finalidade, selecione Private Service Connect.
    4. Selecione um tipo de pilha de IP.
    5. Insira um intervalo de IPv4. Por exemplo, 10.10.10.0/24.
    6. Clique em Adicionar.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME \
    --region=REGION \
    --stack-type=STACK_TYPE \
    --range=SUBNET_RANGE \
    --purpose=PRIVATE_SERVICE_CONNECT

Substitua:

  • SUBNET_NAME: o nome a ser atribuído à subrede.

  • NETWORK_NAME: o nome da VPC para a nova sub-rede.

  • REGION: a região da nova sub-rede. Precisa ser a mesma região do serviço que você está publicando.

  • STACK_TYPE: o tipo de pilha da sub-rede, que pode ser IPV4_ONLY ou IPV4_IPV6. O padrão é IPV4_ONLY.

  • SUBNET_RANGE: o intervalo de endereços IPv4 a ser usado na sub-rede, por exemplo, 10.10.10.0/24.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks

{
  "ipCidrRange": "SUBNET_RANGE",
  "name": "SUBNET_NAME",
  "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
  "purpose": "PRIVATE_SERVICE_CONNECT",
  "stackType": "STACK_TYPE"
}

Substitua:

  • PROJECT_ID: o projeto da sub-rede.

  • REGION: a região da nova sub-rede. Precisa ser a mesma região do serviço que você está publicando.

  • SUBNET_RANGE: o intervalo de endereços IPv4 a ser usado para a sub-rede. Por exemplo, 10.10.10.0/24.

  • SUBNET_NAME: o nome a ser atribuído à subrede.

  • NETWORK_NAME: o nome da rede VPC da nova sub-rede.

  • STACK_TYPE: o tipo de pilha da sub-rede, que pode ser IPV4_ONLY ou IPV4_IPV6.

Configurar regras de firewall

Configure regras de firewall para permitir o tráfego entre os endpoints ou os back-ends e o anexo de serviço. As solicitações do cliente vêm de locais diferentes, dependendo do tipo do Private Service Connect.

Tipo do Private Service Connect Intervalos de endereços IP para o tráfego do cliente Detalhes
Endpoint (com base em uma regra de encaminhamento) Os intervalos de endereços IP das sub-redes do Private Service Connect associados a esse serviço. Se você estiver usando a rede padrão, a regra default-allow-internal pré-preenchida permitirá esse tráfego, a menos que haja uma regra de prioridade mais alta que a bloqueie.
Back-end (com base em um balanceador de carga global de aplicativo externo)
  • 130.211.0.0/22
  • 35.191.0.0/16
Os balanceadores de carga de aplicativo externos globais são implementados no Google Front Ends (GFEs), que usam esses intervalos de endereço IP.

Se sua configuração de firewall ainda não permitir tráfego do tipo de endpoint apropriado, configure regras de firewall para permitir a configuração.

O exemplo de configuração permite criar regras de firewall da VPC para permitir o tráfego de intervalos de endereços IP do cliente para as VMs de back-end no balanceador de carga de serviço do produtor. Essa configuração presume que as VMs de back-end tenham sido configuradas com uma tag de rede.

Exemplo de regra de entrada:

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=ingress \
    --action=allow \
    --target-tags=TAG \
    --source-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Substitua:

  • NAME: o nome da regra de firewall.

  • NETWORK_NAME: a rede que contém o serviço e a sub-rede do Private Service Connect.

  • TAG: a tag de destino aplicada às VMs de back-end no balanceador de carga de serviço do produtor.

  • CLIENT_IP_RANGES_LIST: os intervalos de endereços IP de origem do tráfego do cliente. Para saber mais, consulte a tabela anterior.

  • RULES_LIST: uma lista separada por vírgulas de protocolos e portas às quais uma regra se aplica. Por exemplo, tcp,udp.

Exemplo de regra de saída:

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=egress \
    --action=allow \
    --target-tags=TAG \
    --destination-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Substitua:

  • NAME: o nome da regra de firewall.

  • NETWORK_NAME: a rede que contém o serviço e a sub-rede do Private Service Connect.

  • TAG: a tag de destino aplicada às VMs de back-end no balanceador de carga de serviço do produtor.

  • CLIENT_IP_RANGES_LIST: os intervalos de endereços IP de origem do tráfego do cliente. Para saber mais, consulte a tabela anterior.

  • RULES_LIST: uma lista separada por vírgulas de protocolos e portas às quais uma regra se aplica. Por exemplo, tcp,udp.

Para mais informações sobre como configurar regras de firewall da VPC, consulte a Regras de firewall da VPC. Para configurar regras de firewall hierárquicas para permitir esse tráfego, consulte Políticas hierárquicas de firewall.

Publicar um serviço

Para publicar um serviço, crie um anexo. É possível disponibilizar o serviço de duas maneiras:

Crie o anexo do serviço na mesma região que o balanceador de carga do serviço.

Cada anexo de serviço pode apontar para uma ou mais sub-redes do Private Service Connect, mas uma sub-rede do Private Service Connect não pode ser usada em mais de um anexo de serviço.

Publicar um serviço com aprovação automática

Use estas instruções para publicar um serviço e permitir que qualquer consumidor se conecte automaticamente a ele. Se você quiser aprovar as conexões dos consumidores explicitamente, consulte Como publicar um serviço com aprovação explícita.

Ao publicar um serviço, você cria um anexo de serviço. Os consumidores de serviços usam os detalhes do anexo de serviço para se conectar ao seu serviço.

Se você quiser visualizar as informações de conexão do consumidor, ative o protocolo PROXY nos serviços com suporte. Para mais informações sobre os Serviços com suporte, consulte Recursos e compatibilidade. Para mais informações sobre o protocolo PROXY, consulte Informações de conexão do consumidor.

É possível associar sub-redes de pilha única e pilha dupla ao mesmo anexo de serviço. Se o balanceador de carga estiver configurado para o tráfego IPv6, você precisará usar sub-redes de pilha dupla.

Quando você publica um serviço com aprovação automática, a conexão propagada se aplica a cada projeto de consumidor que se conecta ao seu serviço anexo.

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 Serviços publicados.

  3. Clique em Publicar serviço.

  4. Selecione o Tipo de balanceador de carga para o serviço que você quer publicar:

    • Balanceador de carga de rede de passagem interna
    • Balanceador de carga de rede de proxy interno regional
    • Balanceador de carga de aplicativo interno regional
  5. Selecione o Balanceador de carga interno que hospeda o serviço que você quer publicar. Os campos de rede e região são preenchidos com os detalhes do balanceador de carga interno selecionado.

    Os administradores de projetos de serviço podem selecionar um balanceador de carga interno que tenha um endereço IP de uma rede VPC compartilhada. Para mais informações, consulte VPC compartilhada.

  6. Se solicitado, selecione a Regra de encaminhamento associada ao serviço que você quer publicar.

  7. Em Nome do serviço, insira um nome para o anexo de serviço.

  8. Selecione uma ou mais sub-redes do Private Service Connect para o serviço. A lista é preenchida com sub-redes da rede VPC do balanceador de carga interno selecionada, incluindo sub-redes compartilhadas com um projeto de serviço por meio da VPC compartilhada.

    Se o anexo de serviço usar um balanceador de carga interno com um endereço IP de uma rede VPC compartilhada, selecione uma sub-rede compartilhada dessa mesma rede.

    Se quiser adicionar uma nova sub-rede, crie uma:

    1. Clique em Reservar nova sub-rede.
    2. Insira um Nome e uma Descrição opcional para a sub-rede.
    3. Selecione uma Região para a sub-rede.
    4. Selecione um tipo de pilha de IP.
    5. Digite o Intervalo de IP a ser usado para a sub-rede e clique em Adicionar.
  9. Se você quiser visualizar informações de conexão do consumidor, selecione Usar protocolo de proxy.

  10. Selecione Aceitar automaticamente todas as conexões.

  11. Se você quiser desativar a reconciliação de conexão, desmarque a caixa de seleção Ativar reconciliação de conexão.

  12. Opcional: clique em Configuração avançada e faça o seguinte:

    1. Se você quiser configurar um nome de domínio, digite um Nome de domínio, incluindo um ponto final.

      O formato recomendado para o nome de domínio é REGION.p.DOMAIN.

      É preciso ser proprietário do nome de domínio. Para mais informações, consulte Configuração de DNS.

    2. Insira um limite de conexões propagadas pelo NC. Se o valor não for especificado, será usado o padrão 250.

  13. Clique em Adicionar serviço.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ]

Substitua:

  • ATTACHMENT_NAME: o nome a ser atribuído ao anexo de serviço.

  • REGION: a região do novo anexo de serviço. Precisa ser a mesma região do serviço que você está publicando.

  • RULE_NAME: o nome da regra de encaminhamento associada ao serviço que você está publicando.

    Os administradores de projetos de serviço podem especificar a regra de encaminhamento de um balanceador de carga interno que tenha um endereço IP de uma rede VPC compartilhada. Para mais informações, consulte VPC compartilhada.

  • PSC_SUBNET_LIST: uma lista separada por vírgulas de um ou mais nomes de sub-redes a serem usadas com esse anexo de serviço.

    Se você estiver criando um anexo de serviço com uma regra de encaminhamento que tenha um endereço IP de uma rede VPC compartilhada, use sub-redes compartilhadas da mesma rede VPC compartilhada. Para cada sub-rede compartilhada, especifique o URI completo do recurso, por exemplo, --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • PROPAGATED_CONNECTION_LIMIT: por projeto limite de conexão propagada. O valor padrão é 250.

  • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN.

    Para mais informações, consulte Configuração de DNS.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI"
  ],
  "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
  "domainNames": [
    "DOMAIN_NAME"
  ]
}

Substitua:

  • PROJECT_ID: o projeto do anexo de serviço.

  • REGION: a região do novo anexo de serviço. Precisa ser a mesma região do serviço que você está publicando.

  • ATTACHMENT_NAME: o nome a ser atribuído ao anexo de serviço.

  • RULE_URI: o URI da regra de encaminhamento associada ao serviço que você está publicando.

    Os administradores de projetos de serviço podem especificar a regra de encaminhamento de um balanceador de carga interno que tenha um endereço IP de uma rede VPC compartilhada. Para mais informações, consulte VPC compartilhada.

  • PSC_SUBNET_1_URI e PSC_SUBNET_2_URI: os URIs de sub-rede a serem usados para este anexo de serviço. É possível especificar uma ou mais sub-redes por URI.

    Se você estiver criando um anexo de serviço com uma regra de encaminhamento que tenha um endereço IP de uma rede VPC compartilhada, use sub-redes compartilhadas da mesma rede VPC compartilhada.

  • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN.

    Para mais informações, consulte Configuração de DNS.

  • PROPAGATED_CONNECTION_LIMIT: por projeto limite de conexão propagada. O valor padrão é 250.

Publicar um serviço com aprovação explícita

Use estas instruções para publicar um serviço se quiser aprovar explicitamente os consumidores antes que eles possam se conectar a esse serviço. Se você quiser aprovar as conexões de consumidores automaticamente, consulte Como publicar um serviço com aprovação automática.

Ao publicar um serviço, você cria um anexo de serviço. Os consumidores de serviços usam os detalhes do anexo de serviço para se conectar ao seu serviço.

Cada anexo de serviço tem uma lista de aceitação de consumidor e uma lista de rejeição de consumidor, que são usadas para determinar quais endpoints podem se conectar ao serviço. Um determinado anexo de serviço pode usar projetos ou redes nessas listas, mas não ambos. Não é possível especificar consumidores por pasta.

Se você mudar de aceitar consumidores com base no projeto para clientes com base na rede ou vice-versa, faça o seguinte:

  • Substitua todos os projetos ou redes aprovados em uma única operação.
  • Se você precisar fornecer o mesmo acesso de antes, verifique se as novas listas de aceitação e rejeição são equivalentes às anteriores.

Se você adicionar um projeto ou uma rede à lista de aceitação e à lista de rejeição, as solicitações de conexão desse projeto ou rede serão rejeitadas.

Se as listas de aceitação e rejeição dos seus clientes se referirem a projetos, a camada propagada limite de conexão se aplica a projetos do consumidor. Se o consumidor aceitar e as listas de rejeição se referem a redes VPC, à conexão propagada se aplica às redes VPC do consumidor.

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 Serviços publicados.

  3. Clique em Publicar serviço.

  4. Selecione o Tipo de balanceador de carga para o serviço que você quer publicar:

    • Balanceador de carga de rede de passagem interna
    • Balanceador de carga de rede de proxy interno regional
    • Balanceador de carga de aplicativo interno regional
  5. Selecione o Balanceador de carga interno que hospeda o serviço que você quer publicar. Os campos de rede e região são preenchidos com os detalhes do balanceador de carga interno selecionado.

    Os administradores de projetos de serviço podem selecionar um balanceador de carga interno que tenha um endereço IP de uma rede VPC compartilhada. Para mais informações, consulte VPC compartilhada.

  6. Se solicitado, selecione a Regra de encaminhamento associada ao serviço que você quer publicar.

  7. Em Nome do serviço, insira um nome para o anexo de serviço.

  8. Selecione uma ou mais sub-redes do Private Service Connect para o serviço. A lista é preenchida com sub-redes da rede VPC do balanceador de carga interno selecionada, incluindo sub-redes compartilhadas com um projeto de serviço por meio da VPC compartilhada.

    Se o anexo de serviço usar um balanceador de carga interno com um endereço IP de uma rede VPC compartilhada, selecione uma sub-rede compartilhada dessa mesma rede.

    Se quiser adicionar uma nova sub-rede, crie uma:

    1. Clique em Reservar nova sub-rede.
    2. Insira um Nome e uma Descrição opcional para a sub-rede.
    3. Selecione uma Região para a sub-rede.
    4. Selecione um tipo de pilha de IP.
    5. Digite o Intervalo de IP a ser usado para a sub-rede e clique em Adicionar.
  9. Se você quiser visualizar informações de conexão do consumidor, selecione Usar protocolo de proxy.

  10. Se você quiser aceitar conexões para projetos selecionados, selecione Aceitar conexões para projetos selecionados.

    1. Para cada projeto de que você quer aceitar conexões, faça o seguinte:
      1. Clique em Adicionar projeto aceito e insira o seguinte:
        • O código ou número do projeto do qual você quer aceitar as conexões.
        • Um limite de conexão para especificar o número máximo de endpoints do projeto especificado que pode se conectar.
    2. Opcional: para cada projeto do qual você quer rejeitar explicitamente as conexões, clique em Adicionar projeto rejeitado e insira o código ou o número do projeto.
  11. Se você quiser aceitar conexões para redes selecionadas, selecione Aceitar conexões para redes selecionadas.

    1. Para cada rede de que você quer aceitar conexões, faça o seguinte:
      1. Clique em Adicionar rede aceita e insira o seguinte:
        • O código ou número do projeto pai da rede da qual você quer aceitar conexões.
        • O nome da rede da qual você quer aceitar conexões.
        • Um limite de conexão para especificar o número máximo de endpoints da rede especificada que pode se conectar.
    2. Opcional: para cada rede de que você quer rejeitar explicitamente as conexões, clique em Adicionar rede rejeitada e insira o ID ou o número do projeto pai da rede e o o nome da rede.
  12. Se você quiser desativar a reconciliação de conexão, desmarque a caixa de seleção Ativar reconciliação de conexão.

  13. Opcional: clique em Configuração avançada e faça o seguinte:

    1. Se você quiser configurar um nome de domínio, digite um Nome de domínio, incluindo um ponto final.

      O formato recomendado para o nome de domínio é REGION.p.DOMAIN.

      É preciso ser proprietário do nome de domínio. Para mais informações, consulte Configuração de DNS.

    2. Insira um limite de conexões propagadas pelo NC. Se o valor não for especificado, será usado o padrão 250.

  14. Clique em Adicionar serviço.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=ACCEPTED_PROJECT_OR_NETWORK_1=LIMIT_1,ACCEPTED_PROJECT_OR_NETWORK_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_OR_NETWORK_1,REJECTED_PROJECT_OR_NETWORK_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ] \
    [ --reconcile-connections ]

Substitua:

  • ATTACHMENT_NAME: o nome a ser atribuído ao anexo de serviço.

  • REGION: a região do novo anexo de serviço. Precisa ser a mesma região do serviço que você está publicando.

  • RULE_NAME: o nome da regra de encaminhamento associada ao serviço que você está publicando.

    Os administradores de projetos de serviço podem especificar a regra de encaminhamento de um balanceador de carga interno que tenha um endereço IP de uma rede VPC compartilhada. Para mais informações, consulte VPC compartilhada.

  • ACCEPTED_PROJECT_OR_NETWORK_1 e ACCEPTED_PROJECT_OR_NETWORK_2: os IDs do projeto, nomes do projeto ou URIs de rede a serem aceitos. --consumer-accept-list é opcional e pode conter um ou mais projetos ou redes, mas não uma combinação dos dois tipos.

  • LIMIT_1 e LIMIT_2: os limites de conexão dos projetos ou redes. O limite de conexão é o número de endpoints ou back-ends do consumidor que podem se conectar a esse serviço. Cada projeto ou rede aceito precisa ter um limite de conexão configurado.

  • REJECTED_PROJECT_OR_NETWORK_1 e REJECTED_PROJECT_OR_NETWORK_2: os IDs, nomes ou URIs de rede do projeto a serem rejeitados. --consumer-reject-list é opcional e pode conter um ou mais projetos ou redes, mas não uma combinação dos dois tipos.

  • PSC_SUBNET_LIST: uma lista separada por vírgulas de um ou mais nomes de sub-redes a serem usadas com esse anexo de serviço.

    Se você estiver criando um anexo de serviço com uma regra de encaminhamento que tenha um endereço IP de uma rede VPC compartilhada, use sub-redes compartilhadas da mesma rede VPC compartilhada. Para cada sub-rede compartilhada, especifique o URI completo do recurso, por exemplo, --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • PROPAGATED_CONNECTION_LIMIT: o limite de conexão propagada. O valor padrão é 250.

  • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN.

    Para mais informações, consulte Configuração de DNS.

API

  • Para publicar um serviço e aprovar explicitamente os consumidores com base no projeto, envie a seguinte solicitação:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "REJECTED_PROJECT_1",
        "REJECTED_PROJECT_2"
      ],
      "consumerAcceptLists": [
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Substitua:

    • PROJECT_ID: o projeto do anexo de serviço.

    • REGION: a região do anexo de serviço.

    • ATTACHMENT_NAME: o nome a ser atribuído ao anexo de serviço.

    • RULE_URI: o URI da regra de encaminhamento associada ao serviço que você está publicando.

      Os administradores de projetos de serviço podem especificar a regra de encaminhamento de um balanceador de carga interno que tenha um endereço IP de uma rede VPC compartilhada. Para mais informações, consulte VPC compartilhada.

    • PSC_SUBNET_1_URI e PSC_SUBNET_2_URI: os URIs de sub-rede a serem usados para este anexo de serviço. É possível especificar uma ou mais sub-redes por URI.

      Se você estiver criando um anexo de serviço com uma regra de encaminhamento que tenha um endereço IP de uma rede VPC compartilhada, use sub-redes compartilhadas da mesma rede VPC compartilhada.

    • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os IDs ou números de projetos a serem rejeitados. consumerRejectLists é opcional e pode conter um ou mais projetos.

    • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os números ou IDs dos projetos a serem aceitos. consumerAcceptLists é opcional e pode conter um ou mais projetos.

    • LIMIT_1 e LIMIT_2: os limites de conexão dos projetos. O limite de conexão é o número de endpoints ou back-ends do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

    • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN. Para mais informações, consulte Configuração de DNS.
  • Para publicar um serviço e aprovar explicitamente os consumidores com base na rede VPC, envie a seguinte solicitação:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1",
        "projects/REJECTED_PROJECT_ID_2/global/networks/REJECTED_NETWORK_2"
      ],
      "consumerAcceptLists": [
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/networks/ACCEPTED_NETWORK_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/networks/ACCEPTED_NETWORK_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "propagatedConnectionLimit": PROPAGATED_CONNECTION_LIMIT,
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Substitua:

    • REJECTED_PROJECT_ID_1 e REJECTED_PROJECT_ID_2: os IDs dos projetos pai das redes que você quer rejeitar. consumerRejectLists é opcional e pode conter um ou mais projetos.
    • REJECTED_NETWORK_1 e REJECTED_NETWORK_2: os nomes das redes que você quer rejeitar.
    • ACCEPTED_PROJECT_ID_1 e ACCEPTED_PROJECT_ID_2: os IDs dos projetos pai das redes que você quer aceitar. consumerAcceptLists é opcional e pode conter um ou mais projetos.
    • ACCEPTED_NETWORK_1 e ACCEPTED_NETWORK_2: os nomes das redes que você quer aceitar.
    • LIMIT_1 e LIMIT_2: os limites de conexão dos projetos. O limite de conexão é o número de endpoints ou back-ends do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.
    • DOMAIN_NAME: um nome de domínio DNS para o serviço, incluindo um ponto final. Formato recomendado: REGION.p.DOMAIN. Para mais informações, consulte Configuração de DNS.
  • Para publicar um serviço com a reconciliação de conexão ativada, envie uma solicitação semelhante às solicitações anteriores, mas inclua o seguinte campo:

    {
      ...
      "reconcileConnections": true
      ...
    }
    

Ver informações da conexão do consumidor

Para informações sobre como visualizar informações de conexão do consumidor usando o protocolo PROXY, consulte Como visualizar informações de conexão do consumidor.

Gerenciar solicitações de acesso a um serviço publicado

Se você tiver um serviço publicado com aprovação explícita, poderá aceitar ou rejeitar solicitações de conexão de projetos ou redes de consumidores. Para mais informações, consulte Gerenciar solicitações de acesso a um serviço publicado.

Também é possível alternar entre aceitação automática e explícita de projeto para um serviço publicado. Para mais informações, consulte Alterar a preferência de conexão de um serviço publicado.

Adicionar ou remover sub-redes de um serviço publicado

É possível adicionar ou remover sub-redes de um serviço publicado. Para mais informações, consulte Adicionar ou remover sub-redes de um serviço publicado.

Listar serviços publicados

Você pode listar todos os serviços.

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 Serviços publicados.

    Os anexos de serviço do Private Service Connect serão exibidos.

gcloud

  1. Listar anexos de serviços.

    gcloud compute service-attachments list [--regions=REGION_LIST]
    

    Substitua:

    • REGION_LIST: uma lista separada por vírgulas de uma ou mais regiões em que você quer visualizar anexos de serviço. Por exemplo, us-central1 ou us-west1,us-central1.

API

Você pode ver todos os anexos de serviço em uma determinada região ou em todas as regiões.

  • Veja todos os anexos de serviço em uma região:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    
  • Veja todos os anexos de serviço em todas as regiões:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/serviceAttachments
    

    Substitua:

    • PROJECT_ID: o projeto do anexo de serviço.

    • REGION: a região do anexo de serviço.

    • ATTACHMENT_NAME: o nome do anexo de serviço.

Ver detalhes de um serviço publicado

É possível ver os detalhes de configuração de um serviço publicado. É possível ver alguns detalhes de configuração no Console do Google Cloud, por exemplo, o URI de anexo do serviço que os consumidores de serviço precisam para se conectar ao serviço. Para ver todos os detalhes, incluindo os valores de pscConnectionId para os consumidores do anexo de serviço, use a Google Cloud CLI ou a API.

Console

É possível ver os detalhes de um serviço publicado. O campo Anexo de serviço contém o URI do anexo de serviço.

  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 Serviços publicados.

  3. Clique no serviço que você quer visualizar.

gcloud

É possível ver os detalhes de um serviço publicado. O campo selfLink contém o URI do anexo de serviço.

gcloud compute service-attachments describe \
    ATTACHMENT_NAME --region=REGION

API

É possível ver os detalhes de um serviço publicado. O campo selfLink contém o URI do anexo de serviço.

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

Substitua:

  • PROJECT_ID: o projeto do anexo de serviço.

  • REGION: a região do anexo de serviço.

  • ATTACHMENT_NAME: o nome do anexo de serviço.

Excluir um serviço publicado

É possível excluir um serviço publicado, mesmo que haja conexões de consumidor com o anexo de serviço. A exclusão do serviço publicado remove apenas o anexo do serviço. O balanceador de carga associado não é excluído. Quando você exclui um serviço publicado, os seguintes itens se aplicam:

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 Serviços publicados.

  3. Clique no serviço que você quer excluir.

  4. Clique em Excluir.

gcloud

gcloud compute service-attachments delete \
    ATTACHMENT_NAME --region=REGION

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Substitua:

  • PROJECT_ID: o projeto do anexo de serviço.

  • REGION: a região do anexo de serviço.

  • ATTACHMENT_NAME: o nome do anexo de serviço.

Problemas conhecidos

Desconexões após o upgrade do provedor do Google para o Terraform

Se você usou o provedor do Google para o Terraform com versões anteriores à 4.76.0 para criar anexos de serviço, não faça upgrade para as versões 4.76.0 a 4.81.x. Quando você executa terraform apply depois de fazer upgrade para as versões 4.76.0 a 4.81.x, o Terraform pode excluir e recriar acidentalmente os anexos de serviço e fechar conexões atuais do Private Service Connect. Os anexos de serviço recriados não restabelecem automaticamente as conexões do Private Service Connect.

Se você fizer upgrade para a versão 4.82.0 e executar terraform apply, os anexos de serviço não serão excluídos, mas a configuração de reconciliação de conexões será definida como verdadeira. Se a configuração foi definida como falsa anteriormente, algumas conexões do Private Service Connect podem ser fechadas.

  • Como fazer upgrade para as versões do provedor do Google 4.76.0 a 4.81.x. Nesse cenário, a saída de terraform plan inclui o seguinte:

    -/+ resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
            ~ reconcile_connections = false -> true # forces replacement
      ...
    

    Use a solução alternativa para evitar esse problema.

  • Como fazer upgrade para a versão 4.82.0 do provedor do Google. Nesse cenário, a saída de terraform plan inclui o seguinte:

    ~ reconcile_connections = false -> true
    

    Se você ignorar esse aviso e aplicar as alterações, o Terraform vai atualizar o anexo de serviço para ativar a reconciliação de conexão. Dependendo do status da conexão, mudar de false para true pode fechar algumas conexões existentes. Para mais informações, consulte Reconciliação de conexão.

    Use a solução alternativa para evitar esse problema.

Alternativa

Recomendamos que você atualize o Provedor do Google para o Terraform para a versão 4.82.0 ou mais recente. Essa versão impede a exclusão e a recriação não intencionais de anexos de serviço.

Se não for possível fazer o upgrade imediatamente ou se você puder fazer isso, mas também quiser impedir que o Terraform altere a configuração de reconciliação de conexão, atualize sua configuração do Terraform para fazer isso explicitamente.

  1. Veja a configuração detalhada do anexo de serviço e observe a configuração reconcileConnections.

    $ gcloud compute service-attachments describe SERVICE_NAME --region=REGION
    

    A saída inclui o campo reconcileConnections, que pode ser verdadeiro ou falso.

    reconcileConnections: false
    
  2. Atualize o arquivo de configuração do Terraform para usar explicitamente a mesma configuração usada no anexo de serviço.

    resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
      reconcile_connections    = false
    }
    

    Para ver um exemplo de configuração, consulte Reconciliar conexões do anexo de serviço no GitHub.

Atualizações de patch para anexos de serviço

Ao atualizar um anexo de serviço usando a API PATCH, é necessário fornecer todos os campos do anexo de serviço no corpo da solicitação, não apenas os campos que você está atualizando. Use serviceAttachments.get para recuperar todos os campos.

Solução de problemas

Erro ao atualizar um anexo de serviço

Se você vir a seguinte mensagem de erro ao atualizar um anexo de serviço, a lista de aceitação ou de rejeição pode incluir projetos excluídos: The resource PROJECT was not found.

Remova os projetos excluídos da configuração do anexo do serviço para resolver o problema.

  1. Use o comando gcloud compute service-attachments describe para mostrar a configuração do anexo do serviço que você quer modificar.

    • Para gerar a lista de aceitação em um formato que você possa usar mais tarde para atualizar o anexo do serviço, faça o seguinte:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION --flatten="consumerAcceptLists[]" \
        --format="csv[no-heading,separator='='](consumerAcceptLists.projectIdOrNum,consumerAcceptLists.connectionLimit)" \
        | xargs | sed -e 's/ /,/g'
      

      A saída da lista de aceitação será parecida com esta:

      PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
      
    • Para gerar a lista de rejeição em um formato que você possa usar mais tarde para atualizar o anexo do serviço, faça o seguinte:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION \
        --format="value[delimiter=','](consumerRejectLists[])"
      

      A saída da lista de rejeição é semelhante a esta:

      PROJECT_1,PROJECT_2,PROJECT_3
      
  2. Edite a resposta ao comando para remover os projetos excluídos da lista de aceitação e da lista de rejeição.

  3. Atualize o anexo do serviço para remover os projetos excluídos.

    • Para atualizar a lista de aceitação, faça o seguinte:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=UPDATED_ACCEPT_LIST
      
    • Para atualizar a lista de rejeição, faça o seguinte:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-reject-list=UPDATED_REJECT_LIST
      

A conectividade não foi estabelecida

Se um consumidor tiver criado um endpoint ou back-end que se refere ao anexo de serviço, mas a conectividade não estiver estabelecida, verifique o status de conexão do anexo de serviço. O status da conexão pode indicar as etapas que você pode seguir para resolver o problema.

Tempo limite das conexões do consumidor

Se as conexões do consumidor expirarem, verifique se o serviço requer conexões de longa duração. O tempo limite de inatividade da conexão TCP estabelecida para o Private Service Connect é de 20 minutos. Se o serviço precisar de um tempo limite maior, talvez seja necessário fazer algumas alterações na configuração para garantir que as conexões não expirem. Para mais informações, consulte as especificações NAT.

Conexões propagadas não são estabelecidas

Para saber mais sobre como resolver problemas de conexões propagadas, consulte Resolver problemas do Network Connectivity Center.