Gerenciar serviços publicados

Nesta página, descrevemos como gerenciar solicitações de acesso a um serviço publicado, alterar a preferência de conexão de um serviço publicado e configurar a reconciliação de conexão.

Cada anexo de serviço tem uma preferência de conexão que especifica se as solicitações de conexão são aceitas automaticamente. Há três opções:

  • Aceitar automaticamente todas as conexões. O anexo de serviço aceita automaticamente todas as solicitações de conexão de entrada de qualquer consumidor. A aceitação automática pode ser substituída por uma política da organização que bloqueie as conexões de entrada.
  • Aceitar as conexões das redes selecionadas. O anexo de serviço só aceitará solicitações de conexão de entrada se a rede VPC do consumidor estiver na lista de aceitação do consumidor do anexo de serviço.
  • Aceitar conexões para os projetos selecionados. O anexo de serviço só aceitará solicitações de conexão de entrada se o projeto de consumidor estiver na lista de aceitação do consumidor de anexo de serviço.

Recomendamos que você aceite conexões para redes ou projetos selecionados. A aceitação automática de todas as conexões pode ser apropriada se você controla o acesso do consumidor por outros meios e quer ativar o acesso permissivo ao serviço.

Para mais informações sobre como publicar um serviço, consulte Publicar um serviço.

Papéis

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

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

Se você publicou um serviço com aprovação explícita, pode aceitar ou rejeitar solicitações de conexão de projetos de consumidores ou redes VPC.

Se você adicionar um projeto ou uma rede à lista de aceitação e à lista de proibições, as solicitações de conexão desse projeto ou rede 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 consumidor for aceito explicitamente ou porque 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 ou uma rede da lista de aceitação, precisará aceitar novos endpoints do consumidor nesse projeto antes que o endpoint possa se conectar. No entanto, todos os endpoints do consumidor aceitos anteriormente nesse projeto ou rede ainda podem se conectar ao serviço.

  • Se você adicionar um projeto ou uma rede à lista de rejeição, as conexões de novos endpoints do consumidor nesse projeto ou rede serão rejeitadas para conexão com o serviço. No entanto, os endpoints do consumidor aceitos anteriormente nesse projeto ou rede ainda podem 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 projeto ou Rejeitar projeto.

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 ou redes de consumidores.

    É 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. É possível incluir projetos ou redes VPC, mas não uma combinação de projetos e redes.

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --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
    

    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_OR_NETWORK_1 e ACCEPTED_PROJECT_OR_NETWORK_2: os IDs do projeto, nomes dos projetos ou URLs 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 para os projetos ou as redes. O limite de conexão é o número de endpoints 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 URLs 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.

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. Aceitar ou rejeitar projetos ou redes do consumidor. É possível alternar entre aceitar e rejeitar consumidores por projeto ou rede VPC, mas não é possível incluir uma combinação de projetos e redes.

    • Para aceitar ou rejeitar consumidores com base no projeto, envie a seguinte solicitação PATCH:

      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.

      • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os códigos ou números dos 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 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 IDs ou números dos projetos a serem rejeitados. consumerRejectList é opcional e pode conter um ou mais projetos.

    • Para aceitar ou rejeitar consumidores com base na rede VPC, envie a seguinte solicitação PATCH:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
      
      {
        ...
        "consumerAcceptLists": [
          {
            "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/network/ACCEPTED_NETWORK_1",
            "connectionLimit": "LIMIT_1"
          },
          {
            "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/network/ACCEPTED_NETWORK_2",
            "connectionLimit": "LIMIT_2"
          }
        ],
        "consumerRejectLists": [
          "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1",
          "projects/REJECTED_PROJECT_ID_2/global/network/REJECTED_NETWORK_2"
        ],
        ...
      }
      

      Substitua:

      • 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 do consumidor que podem se conectar a esse serviço. Cada rede aceita precisa ter um limite de conexão configurado.
      • 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.

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 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 depois em Editar detalhes do serviço.

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

    • Aceitar conexões para os projetos selecionados
    • Aceitar conexões com as redes selecionadas
    • Aceitar automaticamente todas as conexões
  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. Opcional: se você estiver alternando para Aceitar conexões para redes selecionadas, poderá fornecer detalhes das redes que quer permitir ou adicioná-las mais tarde.

    1. Clique em Adicionar rede aceita.
    2. Insira o projeto, rede, e o limite de conexão.
  7. 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_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 ]
    

    Substitua:

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

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

    • ACCEPTED_PROJECT_OR_NETWORK_1 e ACCEPTED_PROJECT_OR_NETWORK_2: os IDs do projeto, nomes dos projetos ou URLs 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. O limite de conexão é o número de endpoints do consumidor que podem se conectar a esse serviço. Cada projeto aceito precisa ter um limite de conexão configurado.

    • REJECTED_PROJECT_OR_NETWORK_1 e REJECTED_PROJECT_OR_NETWORK_2: os IDs, nomes ou URLs 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.

  • 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=""
    

    Substitua:

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

    • Para atualizar as listas de aceitação e rejeição do consumidor com base no projeto, faça a seguinte solicitação:

      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.

      • ACCEPTED_PROJECT_1 e ACCEPTED_PROJECT_2: os códigos ou números dos 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 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 IDs ou números dos projetos a serem rejeitados. consumerRejectList é opcional e pode conter um ou mais projetos.

    • Para atualizar as listas de aceitação e rejeição do consumidor com base na rede VPC, faça a seguinte solicitação:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
      
      {
        ...
        "connectionPreference": "ACCEPT_MANUAL",
        "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"
          }
        ],
        "consumerRejectLists": [
          "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1",
          "projects/REJECTED_PROJECT_ID_2/global/network/REJECTED_NETWORK_2"
        ],
        ...
      }
      

      Substitua:

      • 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 do consumidor que podem se conectar a esse serviço. Cada rede aceita precisa ter um limite de conexão configurado.
      • 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.
  • 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.

Configurar a reconciliação de conexão

É possível ativar ou desativar a reconciliação de conexão para anexos de serviço que já existem.

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 depois em Editar detalhes do serviço.

  4. Marque ou desmarque a caixa de seleção Ativar reconciliação de conexão e depois clique em Salvar.

gcloud

  • Para ativar a reconciliação de conexão, use o seguinte comando:

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --reconcile-connections
    

    Substitua:

    • ATTACHMENT_NAME: o nome do anexo de serviço.
    • REGION: a região do anexo de serviço.
  • Para desativar a reconciliação de conexão, use o seguinte comando:

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --no-reconcile-connections
    

API

  • Para ativar a reconciliação de conexão, envie uma solicitação PATCH e inclua o seguinte:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    
    {
      ...
      "reconcileConnections": true
      ...
    }
    

    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.
  • Para desativar a reconciliação de conexão, envie uma solicitação PATCH e inclua o seguinte:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    
    {
     ...
     "reconcileConnections": false
      ...
    }
    

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

É possível editar um serviço publicado para adicionar sub-redes do Private Service Connect.

Por exemplo, talvez seja necessário disponibilizar mais endereços IP para um serviço atual. Para adicionar mais endereços, siga um destes procedimentos:

Da mesma forma, é possível editar um serviço publicado para remover sub-redes do Private Service Connect. No entanto, se algum dos endereços IP da sub-rede estiver sendo usado para executar o SNAT do Private Service Connect, a remoção da sub-rede falhará.

Se você alterar a configuração da sub-rede, atualize as regras de firewall para permitir que as solicitações das novas sub-redes alcancem as VMs de back-end.

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.

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.

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.