Publicar serviços gerenciados sando 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ços que usam endereços IP internos nas redes VPC.

Neste guia, descrevemos como usar o Private Service Connect para publicar um serviço hospedado em um balanceador de carga TCP/UDP interno ou em HTTP interno.

Se você quer publicar um serviço hospedado em um balanceador de carga TCP/UDP interno no Google Kubernetes Engine, consulteComo criar um balanceador de carga TCP/UDP interno com o Private Service Connect na documentação do GKE.

Para publicar um serviço, faça o seguinte:

  • Hospede o serviço usando um balanceador de carga TCP/UDP interno ou um balanceador de carga HTTP(S) interno na rede VPC do produtor de serviço.

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

    Se você estiver usando a VPC compartilhada, crie a sub-rede do Private Service Connect no projeto host e crie o anexo de serviço em um projeto de serviço.

Para se conectar a um serviço publicado, um consumidor de serviços configura um endpoint do Private Service Connect para acessar o serviço na mesma região.

Papéis

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

Antes de começar

  • Para publicar um serviço usando o Private Service Connect, o serviço precisa ser hospedado em back-ends de um dos seguintes balanceadores de carga:

  • Decida como os consumidores de serviço precisam enviar solicitações ao serviço publicado. Recomendamos o uso de nomes de domínio neste formato: REGION.p.DOMAIN. Por exemplo, se o domínio público for example.com, e o serviço publicado estiver em us-west1, recomendamos que você permita que os consumidores de serviço enviem solicitações ao serviço usando nomes do host no domínio us-west1.p.example.com.

    • O balanceador de carga que fornece o serviço precisa aceitar solicitações direcionadas a esses nomes de domínio. Se você estiver usando um balanceador de carga HTTP(S) interno, talvez precise atualizar a configuração do balanceador de carga para refletir os nomes de domínio que você quer que os consumidores de serviço usem. Por exemplo, atualize certificados ou mapas de URL.
  • 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.

Limitações

  • Cada balanceador de carga só pode ser referenciado por um anexo de serviço. Não é possível configurar vários anexos de serviço que usam o mesmo balanceador de carga.

  • Nem todos os recursos do balanceador de carga TCP/UDP interno são compatíveis. Quando o balanceador de carga usa qualquer um desses recursos, não é possível usá-lo para publicar um serviço usando o Private Service Connect.

    Além disso, um anexo de serviço não pode referenciar uma regra de encaminhamento para encaminhamento de protocolo interno.

  • O protocolo PROXY não é compatível com serviços que usam um balanceador de carga HTTP(S) interno.

  • As sub-redes criadas para o Private Service Connect têm as seguintes limitações:

    • Não é possível usar a mesma sub-rede em várias configurações de anexos do serviço.

    • Não é possível atribuir endereços IP de sub-redes do Private Service Connect a recursos.

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

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

Para informações sobre sub-redes do Private Service Connect, consulte Sub-redes do Private Service Connect.

Console

  1. Acesse a página Redes VPC
    Acesse Redes VPC
  2. Clique no nome de uma rede VPC para mostrar a página Detalhes da rede VPC.
  3. Clique em Add subnet. No painel que aparecerá, faça o seguinte:
    1. Forneça um Nome.
    2. Selecione uma Região.
    3. Na seção Finalidade, selecione Private Service Connect.
    4. Digite um Intervalo de endereço IP. Por exemplo, 10.10.10.0/24.
    5. Clique em Add.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME --region=REGION \
    --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.

  • SUBNET_RANGE: o intervalo de endereços IP a ser usado para a 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",
}

Substitua:

  • PROJECT_ID: o projeto da sub-rede.

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

  • NETWORK_NAME: o nome da rede VPC da nova 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 IP a ser usado para a sub-rede. Por exemplo, 10.10.10.0/24.

Como publicar um serviço com aprovação automática de projeto

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 do projeto.

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. O protocolo PROXY é compatível apenas com serviços que usam um balanceador de carga TCP/UDP interno, e não com serviços que usam um balanceador de carga HTTP(S) interno. Para mais informações sobre o protocolo PROXY, consulte Como visualizar informações de conexão 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: Balanceador de carga TCP/UDP interno ou Balanceador de carga HTTP(S) interno.

  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.

  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 para o serviço. 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. 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 conexões automaticamente para todos os projetos.

  11. 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 \
    [ --enable-proxy-protocol ]

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.

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

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",
  ],
}

Substitua:

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

  • 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_URI: o nome da regra de encaminhamento associada ao serviço que você está publicando.

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

Como publicar um serviço com aprovação explícita de projeto

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

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ê adicionar um projeto às listas de aceitação e negação, as solicitações de conexão desse projeto serão rejeitadas.

Se você quiser visualizar as informações de conexão do consumidor, ative o protocolo PROXY. O protocolo PROXY é compatível apenas com serviços que usam um balanceador de carga TCP/UDP interno, e não com serviços que usam um balanceador de carga HTTP(S) interno. Para mais informações sobre o protocolo PROXY, consulte Como visualizar informações de conexão 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: Balanceador de carga TCP/UDP interno ou Balanceador de carga HTTP(S) interno.

  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.

  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 para o serviço.

    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. 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 a caixa de seleção Protocolos.

  10. Selecione Aceitar conexões para projetos selecionados.

  11. Clique em Adicionar projeto aceito e insira os detalhes dos projetos que você quer permitir que se conectem a este serviço:

    • Nome do projeto: nome do projeto para permitir conexões.
    • Limite de conexão: o número de conexões a permitir neste projeto.
  12. 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_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --enable-proxy-protocol ]

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.

  • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os projetos a serem aceitos. --consumer-accept-list é 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 do Private Service Connect do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

  • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os projetos a serem rejeitados. --consumer-reject-list é opcional e pode conter um ou mais projetos.

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

API

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",
  ],
  "consumerRejectList": [
    "REJECTED_PROJECT_1",
    "REJECTED_PROJECT_2",
  ],
  "consumerAcceptList": [
    "consumerProjectLimit": {
      "projectId": "ACCEPTED_PROJECT_1",
      "connectionsLimit": "LIMIT_2",
    },
    "consumerProjectLimit": {
      "projectId": "ACCEPTED_PROJECT_2",
      "connectionsLimit": "LIMIT_2",
    },
  ],
}

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.

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

  • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os projetos a serem rejeitados. consumerRejectList é opcional e pode conter um ou mais projetos.

  • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os projetos a serem aceitos. consumerAcceptList é 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 do Private Service Connect do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

Como visualizar as informações de conexão do consumidor

Por padrão, o Private Service Connect converte o endereço IP de origem do consumidor para um endereço em uma das sub-redes do Private Service Connect na rede VPC do fornecedor de serviços. Se você quiser ver o endereço IP original de origem do consumidor, ative o protocolo PROXY.

O protocolo PROXY é compatível apenas com serviços que usam um balanceador de carga TCP/UDP interno, e não com serviços que usam um balanceador de carga HTTP(S) interno.

Se o protocolo PROXY estiver ativado, é possível conseguir o endereço IP de origem e o ID da conexão do PSC (pscConnectionId) do consumidor no cabeçalho do protocolo PROXY.

Se você ativar o protocolo PROXY, verifique a documentação do software do servidor da Web de back-end para ver informações sobre como analisar e processar cabeçalhos de protocolo PROXY recebidos nos payloads TCP de conexão do cliente. Se o protocolo PROXY estiver ativado no anexo do serviço, mas o servidor da Web de back-end não estiver configurado para processar cabeçalhos de protocolo PROXY, as solicitações da Web poderão estar malformadas. Se as solicitações estiverem incorretas, o servidor não poderá interpretá-las.

O Private Service Connect é compatível com o protocolo PROXY apenas para serviços TCP. Mesmo que os serviços UDP não sejam compatíveis, você não está impedido de ativar o protocolo PROXY para serviços UDP.

O pscConnectionId é codificado no cabeçalho do protocolo PROXY no formato Type-Length-Value (TLV, na sigla em inglês).

Campo Comprimento do campo Valor do campo
Tipo 1 byte 0xE0 (PP2_TYPE_GCP)
Duração 2 bytes 0x8 (8 bytes)
Valor 8 bytes O pscConnectionId de 8 bytes na ordem de rede

Visualize o pscConnectionId de 8 bytes da regra de encaminhamento do consumidor ou do anexo de serviço do produtor.

O pscConnectionId é globalmente exclusivo para todas as conexões ativas em um determinado momento. No entanto, com o tempo, é possível reutilizar um pscConnectionId nestes cenários:

  • Em uma determinada rede VPC, se você excluir um endpoint do Private Service Connect (regra de encaminhamento) e criar um novo endpoint usando o mesmo endereço IP, o mesmo pscConnectionId poderá ser usado.

  • Se você excluir uma rede VPC que continha endpoints do Private Service Connect (regras de encaminhamento), após um período de espera de sete dias, o pscConnectionId usado para esses endpoints poderá ser usado para outro endpoint em outra rede VPC.

Use pscConnectionId para depurar e rastrear a origem dos pacotes.

Além disso, um ID do anexo de PSC de 16 bytes está disponível no anexo de serviço do produtor. O ID do anexo do PSC é um ID exclusivo globalmente que identifica um anexo de serviço do Private Service Connect. É possível usar o ID do anexo do PSC para visualizar e depurar. O ID do anexo PSC não está incluído no cabeçalho do protocolo PROXY.

Como gerenciar solicitações de acesso a um serviço publicado

Se você publicou um serviço com aprovação explícita do projeto, aceite ou rejeite as solicitações de conexão nos projetos do consumidor.

Se você adicionar um projeto às listas de aceitação e negação, as solicitações de conexão desse projeto serão rejeitadas.

Depois que uma conexão de endpoint do consumidor é aceita para um serviço, o endpoint pode se conectar ao serviço até que o anexo de serviço seja excluído. Isso se aplica se o projeto foi aceito explicitamente ou se o endpoint do consumidor se conectou quando a preferência de conexão foi definida para aceitar conexões automaticamente.

  • Se você remover um projeto da lista de aceitação, todos os endpoints do consumidor aceitos anteriormente nesse projeto poderão se conectar ao serviço. As conexões a partir de novos endpoints do consumidor nesse projeto precisam ser aceitas para que o endpoint possa se conectar.

  • Se você adicionar um projeto à lista de rejeições, todos os endpoints do consumidor aceitos anteriormente nesse projeto poderão se conectar ao serviço. As conexões a partir de novos endpoints do consumidor nesse projeto são rejeitadas para se conectar ao serviço.

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

  4. Na seção Projetos conectados, os projetos que tentaram se conectar a esse serviço são listados. Marque a caixa de seleção ao lado de um ou mais projetos e clique em Aceitar ou Rejeitar.

gcloud

  1. Descreva o anexo de serviço que você quer alterar.

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

    A resposta será semelhante a: Se houver conexões de consumidores pendentes, elas serão listadas com o status PENDING.

    Neste exemplo de saída, o projeto CONSUMER_PROJECT_1 está na lista de aceitação. Portanto, ENDPOINT_1 é aceito e pode se conectar ao serviço. O projeto CONSUMER_PROJECT_2 não está na lista de aceitação, portanto, ENDPOINT_2 está pendente. Depois que CONSUMER_PROJECT_2 é adicionado à lista de aceitação, o status de ENDPOINT_2 é alterado para ACCEPTED e o endpoint pode se conectar ao serviço.

    connectedEndpoints:
    - endpoint: https://www.googleapis.com/compute/v1/projects/CONSUMER_PROJECT_1/regions/REGION_1/forwardingRules/ENDPOINT_1
      pscConnectionId: 'ENDPOINT_1_ID'
      status: ACCEPTED
    - endpoint: https://www.googleapis.com/compute/v1/projects/CONSUMER_PROJECT_2/regions/REGION_2/forwardingRules/ENDPOINT_2
      pscConnectionId: 'ENDPOINT_2_ID'
      status: PENDING
    connectionPreference: ACCEPT_MANUAL
    consumerAcceptLists:
    - connectionLimit: LIMIT_1
      projectIdOrNum: CONSUMER_PROJECT_1
    creationTimestamp: 'TIMESTAMP'
    description: 'DESCRIPTION'
    enableProxyProtocol: false
    fingerprint: FINGERPRINT
    id: 'ID'
    kind: compute#serviceAttachment
    name: NAME
    natSubnets:
    - https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION/subnetworks/PSC_SUBNET
    pscServiceAttachmentId:
      high: 'PSC_ATTACH_ID_HIGH'
      low: 'PSC_ATTACH_ID_LOW'
    region: https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION
    selfLink: https://www.googleapis.com/compute/v1/projects/projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    targetService: https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION/forwardingRules/PRODUCER_FWD_RULE
    
  2. Aceitar ou rejeitar projetos do consumidor.

    É possível especificar --consumer-accept-list, --consumer-reject-list ou ambos. É possível especificar vários valores em --consumer-accept-list e --consumer-reject-list.

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=ACCEPTED_PROJECT_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2 \
        --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2
    

    Substitua:

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

    • REGION: a região em que o anexo de serviço está localizado.

    • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os projetos a serem aceitos. consumerAcceptList é 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 do Private Service Connect do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

    • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os projetos a serem rejeitados. --consumer-reject-list é opcional e pode conter um ou mais projetos.

API

  1. Descreva o anexo de serviço que você quer alterar.

    Se houver conexões de consumidores pendentes, elas serão listadas com o status PENDING.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    
  2. Aceite ou rejeite os projetos do consumidor.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    
    {
      ...
      "consumerAcceptLists": [
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_1"
          "connectionLimit": "LIMIT_1",
        },
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_2"
          "connectionLimit": "LIMIT_2",
        }
      ],
      "consumerRejectLists": [
        "REJECTED_PROJECT_1",
        "REJECTED_PROJECT_2",
      ],
      ...
    }
    

    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.

    • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os projetos a serem rejeitados. consumerRejectList é opcional e pode conter um ou mais projetos.

    • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os projetos a serem aceitos. consumerAcceptList é 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 do Private Service Connect do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

Como alterar a preferência de conexão de um serviço publicado

É possível alternar entre aceitação automática e explícita de projeto para um serviço publicado.

Alterar a aceitação automática para a aceitação explícita não afeta os endpoints do consumidor que se conectaram ao serviço antes dessa alteração. Os endpoints existentes do consumidor podem se conectar ao serviço publicado até que o anexo de serviço seja excluído. Novos endpoints de consumidor precisam ser aceitos antes de se conectarem ao serviço. Para mais informações, consulte Como gerenciar solicitações de acesso a um serviço publicado.

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 atualizar e em Editar.

  4. Selecione a preferência de conexão desejada:

    • Aceitar conexões para os projetos selecionados
    • Aceitar conexões automaticamente para todos os projetos
  5. Se você estiver mudando para Aceitar conexões para projetos selecionados, você pode informar detalhes dos projetos que quer permitir ou adicioná-las posteriormente.

    1. Clique em Adicionar projeto aceito.
    2. Insira o projeto e o limite de conexão.
  6. Clique em Save.

gcloud

  • Altere a preferência de conexão do anexo de serviço de ACCEPT_AUTOMATIC para ACCEPT_MANUAL.

    Controle quais projetos podem se conectar ao seu serviço usando --consumer-accept-list e --consumer-reject-list. É possível configurar as listas de aceitação e rejeição quando alterar a preferência de conexão ou atualizar as listas posteriormente.

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --connection-preference=ACCEPT_MANUAL \
        [ --consumer-accept-list=ACCEPTED_PROJECT_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2] \
        [ --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2 ]
    
    • ATTACHMENT_NAME: o nome do anexo de serviço.

    • REGION: a região em que o anexo de serviço está localizado.

    • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os projetos a serem aceitos. --consumer-accept-list é 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 do Private Service Connect do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

    • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os projetos a serem rejeitados. --consumer-reject-list é opcional e pode conter um ou mais projetos.

  • Altere a preferência de conexão do anexo de serviço de ACCEPT_MANUAL para ACCEPT_AUTOMATIC.

    Se você tiver valores na lista de aceitação ou rejeição, defina-os como vazios quando alterar a preferência de conexão ("").

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --connection-preference=ACCEPT_AUTOMATIC \
         --consumer-accept-list="" \
         --consumer-reject-list=""
    
    • ATTACHMENT_NAME: o nome do anexo de serviço.

    • REGION: a região em que o anexo de serviço está localizado.

API

  • Altere a preferência de conexão do anexo de serviço de ACCEPT_AUTOMATIC para ACCEPT_MANUAL.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

{
  ...
  "connectionPreference": "ACCEPT_MANUAL",
  "consumerAcceptLists": [
    {
      "projectIdOrNum": "ACCEPTED_PROJECT_1"
      "connectionLimit": "LIMIT_1",
    },
    {
      "projectIdOrNum": "ACCEPTED_PROJECT_2"
      "connectionLimit": "LIMIT_2",
    }
  ],
  "consumerRejectLists": [
    "REJECTED_PROJECT_1",
    "REJECTED_PROJECT_2",
  ],
  ...
}

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.

  • REJECTED_PROJECT_1 e REJECTED_PROJECT_2: os projetos a serem rejeitados. consumerRejectList é opcional e pode conter um ou mais projetos.

  • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os projetos a serem aceitos. consumerAcceptList é 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 do Private Service Connect do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

  • Altere a preferência de conexão do anexo de serviço de ACCEPT_MANUAL para ACCEPT_AUTOMATIC.

    Se os campos consumerAcceptLists ou consumerRejectLists especificarem algum projeto, defina-os como vazios quando você alterar a preferência de conexão para ACCEPT_AUTOMATIC.

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

{
  ...
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "consumerAcceptLists": [ ],
  "consumerRejectLists": [ ],
  ...
}

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.

Como modificar as sub-redes associadas a um serviço

É possível modificar quais sub-redes do Private Service Connect são usadas com um serviço publicado.

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 atualizar e em Editar.

  4. Modifique as sub-redes usadas para este serviço.

    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. Digite o Intervalo de IP a ser usado para a sub-rede e clique em Adicionar.
  5. Clique em Save.

gcloud

Atualize as sub-redes do Private Service Connect usadas para este anexo de serviço. Se você precisar criar uma nova sub-rede, consulte Como criar uma sub-rede do Private Service Connect.

gcloud compute service-attachments update ATTACHMENT_NAME \
    --region=REGION \
    --nat-subnets=PSC_SUBNET_LIST

Substitua:

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

  • REGION: a região em que o anexo de serviço está localizado.

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

API

Atualize as sub-redes do Private Service Connect usadas para este anexo de serviço. Se você precisar criar uma nova sub-rede, consulte Como criar uma sub-rede do Private Service Connect.

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

{
  ...
  "natSubnets": [
    "PSC_SUBNET1_URI",
    "PSC_SUBNET2_URI",
  ],
  ...
}

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.

  • PSC_SUBNET1_URI e PSC_SUBNET2_URI: URIs das sub-redes que você quer usar com este anexo de serviço. Especifique uma ou mais subredes.

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

Como ver detalhes de um serviço publicado

É possível ver os detalhes de configuração de um serviço publicado. Também é possível ver alguns detalhes de configuração no Console do Cloud, por exemplo, o URI do anexo de serviço que os consumidores precisam para se conectar ao seu serviço. Para visualizar todos os detalhes, incluindo os valores de pscConnectionId para os consumidores do anexo de serviço, use a ferramenta de linha de comando gcloud 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.

Como 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, mas o tráfego de consumidor não é mais enviado ao balanceador de carga.

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.

Logging

É possível ativar os registros de fluxo de VPC nas sub-redes que contêm as VMs de back-end. Os registros mostram fluxos entre as VMs de back-end e os endereços IP na sub-rede do Private Service Connect.

Problemas conhecidos

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