Sobre como controlar o acesso a serviços publicados
Nesta página, descrevemos os recursos que podem ser usados para controlar o acesso a serviços publicados com o Private Service Connect.
Preferências de conexão
Cada anexo de serviço tem uma preferência de conexão que controla se as conexões são aceitas automaticamente.
- Aceitar automaticamente todas as conexões. O anexo de serviço aceita automaticamente todas as solicitações de conexão vindas de qualquer consumidor.
- Aceitar explicitamente as conexões dos consumidores selecionados. O anexo de serviço só aceita solicitações de conexão de entrada se o consumidor estiver na lista de aceitação do consumidor do anexo de serviço. É possível especificar consumidores por projeto, rede VPC ou endpoint individual do Private Service Connect (prévia). Não é possível incluir diferentes tipos de consumidores na mesma lista de aceitação ou rejeição.
Para qualquer preferência de conexão, as conexões aceitas podem ser substituídas e rejeitadas por uma política da organização que bloqueie as conexões de entrada.
Recomendamos que você aceite conexões explicitamente para consumidores selecionados. A aceitação automática de todas as conexões pode ser apropriada quando você controla o acesso do consumidor por outros meios e quer ativar o acesso permissivo ao serviço.
Listas de aceitação e rejeição do consumidor
As listas de aceitação e listas de rejeição do consumidor são um recurso de segurança dos anexos de serviço. Com elas, os produtores de serviços especificam quais consumidores podem estabelecer conexões do Private Service Connect com os serviços deles. Quando um anexo de serviço é configurado para aprovação explícita, uma nova conexão só é aceita se o consumidor estiver na lista de aceitação e não na lista de rejeição. As atualizações nas listas de consumidores afetam apenas novas conexões, a menos que a reconciliação de conexão esteja ativada.
Com as listas de aceitação e rejeição do consumidor, é possível especificar consumidores de uma das seguintes maneiras:
- Projeto
- Rede VPC
Endpoint do Private Service Connect (prévia)
Esse método não se aplica a back-ends do Private Service Connect.
Se você adicionar o mesmo consumidor às listas de aceitação e rejeição, ele será bloqueado e não poderá se conectar ao anexo de serviço. Não é possível especificar consumidores por pasta.
As duas listas de consumidores de um anexo de serviço precisam conter o mesmo tipo de consumidor. Por exemplo, se você adicionar um projeto a uma lista de aceitação, não poderá adicionar uma rede VPC ou um URI de endpoint a nenhuma das listas, a menos que substitua o projeto na lista de aceitação pelo novo tipo de consumidor.
Se quiser publicar um serviço que aceite diferentes tipos de consumidores, crie vários anexos de serviço que se conectem ao mesmo serviço. Cada anexo de serviço pode ser configurado com uma preferência de conexão e listas de consumidores próprias.
É possível mudar o tipo de consumidor em listas de consumidores sem interromper as conexões, mas você precisa fazer a mudança em uma única atualização. Caso contrário, a operação vai falhar.
Há limites para o número de consumidores que podem ser adicionados às listas de aceitação e rejeição:
- É possível adicionar no máximo 5.000 valores à lista de aceitação do consumidor.
- É possível adicionar no máximo 64 valores à lista de rejeição do consumidor.
As listas de consumidores controlam se um endpoint ou back-end pode se conectar a um serviço publicado, mas não controlam quem pode enviar solicitações a esse endpoint. Por exemplo, digamos que um consumidor tenha uma rede VPC compartilhada com dois projetos de serviço anexados. Se um serviço publicado tiver service-project1 na lista de aceitação do consumidor e service-project2 na lista de rejeição do consumidor, o seguinte vai acontecer:
-
Um consumidor em
service-project1poderá criar um endpoint que se conecte ao serviço publicado. -
Um consumidor em
service-project2não poderá criar um endpoint que se conecte ao serviço publicado. -
Um cliente em
service-project2poderá enviar solicitações ao endpoint emservice-project1, se não houver regras ou políticas de firewall impedindo esse tráfego.
Para informações sobre como as listas de aceitação do consumidor interagem com as políticas da organização, consulte Interação entre listas de aceitação do consumidor e políticas da organização.
Limites de lista de aceitação do consumidor
As listas de aceitação do consumidor têm limites de conexão. Esses limites definem o número total de conexões de endpoint do Private Service Connect que um anexo de serviço pode aceitar do projeto de consumidor especificado ou da rede VPC.
Os produtores podem usar esses limites de conexões para evitar que consumidores individuais consumam endereços IP ou cotas de recursos na rede VPC do produtor. Cada conexão do Private Service Connect aceita é subtraída do limite configurado do projeto de consumidor ou da rede VPC. Os limites são definidos ao criar ou atualizar listas de aceitação do consumidor. É possível conferir as conexões de um anexo de serviço ao descrever o anexo.
Por exemplo, considere um caso em que um anexo de serviço tenha uma lista de aceitação do consumidor que inclua project-1 e project-2, ambos com um limite de uma conexão. O projeto project-1 solicita duas conexões, project-2 solicita uma conexão e project-3 solicita uma conexão. Como project-1 tem um limite de uma conexão, a primeira é aceita e a segunda permanece pendente.
A conexão de project-2 é aceita, e a conexão de project-3 permanece pendente. Para aceitar a segunda conexão de project-1, é preciso aumentar o limite de project-1. Se
project-3 for adicionado à lista de aceitação do consumidor, essa conexão mudará de
pendente para aceita.
Reconciliação de conexão
A reconciliação de conexão determina se as atualizações nas listas de aceitação ou rejeição de um anexo de serviço podem afetar as conexões atuais do Private Service Connect. Se a reconciliação de conexão estiver ativada, a atualização de listas de aceitação ou rejeição poderá encerrar as conexões atuais. As conexões que foram rejeitadas anteriormente podem se tornar aceitas. Se a reconciliação de conexão estiver desativada, a atualização das listas de aceitação ou rejeição afetará apenas as conexões novas e pendentes.
Por exemplo, considere um anexo de serviço que tenha várias conexões aceitas de Project-A. Project-A está na lista de aceitação do anexo de serviço. O anexo de serviço é atualizado removendo Project-A da
lista de aceitação.
Se a reconciliação de conexão estiver ativada, todas as conexões existentes de Project-A farão a transição para PENDING, o que encerra a conectividade de rede entre as duas redes VPC e interrompe imediatamente o tráfego de rede.
Se a reconciliação de conexão estiver desativada, as conexões atuais de
Project-A não serão afetadas. O tráfego de rede ainda pode fluir entre as conexões atuais do Private Service Connect. No entanto, novas conexões do Private Service Connect não são permitidas.
Para informações sobre como configurar a reconciliação de conexão para novos anexos de serviço, consulte Publicar um serviço com aprovação explícita.
Para informações sobre como configurar a reconciliação de conexão para anexos de serviço atuais, consulte Configurar a reconciliação de conexão.
Aceitar ou rejeitar conexões de endpoint do Private Service Connect
É possível aceitar ou rejeitar conexões individuais de endpoints do Private Service Connect adicionando o URI baseado em ID do endpoint a uma das listas de consumidores de um anexo de serviço. Essa abordagem, recomendada para serviços multitenant, oferece o controle mais granular para gerenciar conexões. Aceitar consumidores por endpoint do Private Service Connect se aplica apenas a endpoints do Private Service Connect e não oferece suporte a back-ends do Private Service Connect.
Ao contrário de projetos ou redes VPC, só é possível aceitar ou rejeitar um endpoint individual do Private Service Connect depois que o consumidor o cria. Isso acontece porque o URI exclusivo de um endpoint não é conhecido até que o consumidor crie o endpoint. Para adicionar um endpoint a uma lista de aceitação do consumidor, siga estas etapas:
- O produtor publica um serviço que requer aprovação explícita, sem adicionar valores à lista de aceitação do consumidor.
-
Um consumidor cria um endpoint que se conecta ao serviço publicado. A conexão
fica visível no anexo de serviço com o status
Pending. - Para encontrar o URI baseado em ID do endpoint pendente, o produtor pode descrever o anexo de serviço ou o consumidor pode descrever o endpoint.
-
O produtor adiciona o URI baseado em ID do endpoint à lista de aceitação do consumidor. A conexão é
estabelecida e o status muda para
Accepted.