Usar pontos de extremidade privados para o Serviço do Azure SignalR

Você pode usar pontos de extremidade privados para seu Serviço do Azure SignalR e permitir que clientes em uma VNet (rede virtual) acessem dados com segurança por meio de um Link Privado. O ponto de extremidade privado usa um endereço IP do espaço de endereço da VNet para o Serviço do Azure SignalR. O tráfego de rede entre os clientes na VNet e o Serviço do Azure SignalR atravessa um link privado na rede principal da Microsoft, eliminando a exposição à Internet pública.

O uso de pontos de extremidade privados para o Serviço do Azure SignalR permite que você:

  • Proteja seu Serviço do Azure SignalR usando o controle de acesso à rede para bloquear todas as conexões no ponto de extremidade público do Serviço do Azure SignalR.
  • Aumente a segurança da VNet (rede virtual) permitindo que você bloqueie o vazamento de dados da VNet.
  • Conecte-se com segurança a Serviço do Azure SignalR a partir de redes locais que se conectam à VNet usando VPN ou ExpressRoutes com emparelhamento privado.

Este artigo mostra como usar pontos de extremidade privados para seu Serviço do Azure SignalR.

Visão geral conceitual

Overview of private endpoints for Azure SignalR Service

Um ponto de extremidade privado é uma interface de rede especial para um serviço do Azure em sua Rede Virtual (VNet). Quando você cria um ponto de extremidade privado para seu Serviço do Azure SignalR, ele fornece conectividade segura entre os clientes na sua VNet e o seu serviço. O ponto de extremidade privado recebe um endereço IP do intervalo de endereços IP de sua VNet. A conexão entre o ponto de extremidade privado e o Serviço do Azure SignalR usa um link privado seguro.

Os aplicativos na VNet podem se conectar diretamente ao Serviço do Azure SignalR por meio do ponto de extremidade privado, usando as mesmas cadeias de conexão e mecanismos de autorização que eles já usariam normalmente. Pontos de extremidade privados podem ser usados com todos os protocolos compatíveis com o Serviço do Azure SignalR, incluindo API REST.

Quando você cria um ponto de extremidade privado para um Serviço do Azure SignalR em sua VNet, uma solicitação de consentimento é enviada para aprovação para o proprietário do Serviço do Azure SignalR. Se o usuário que solicita a criação do ponto de extremidade privado também for um proprietário do Serviço do Azure SignalR, essa solicitação de consentimento será aprovada automaticamente.

Os proprietários do Serviço do Azure SignalR podem gerenciar as solicitações de consentimento e os pontos de extremidade privados na guia 'Pontos de extremidade privados' para o Serviço do Azure SignalR no Portal do Azure.

Dica

Se você quiser restringir o acesso a seu Serviço do Azure SignalR somente por meio do ponto de extremidade privado, configure o Controle de Acesso à Rede para negar ou controlar o acesso por meio do ponto de extremidade público.

Conectar-se a pontos de extremidade privados

Os clientes em uma VNet que usam o ponto de extremidade privado devem usar a mesma cadeia de conexão para o Serviço do Azure SignalR, como clientes que se conectam ao ponto de extremidade público. Confiamos na resolução DNS para rotear automaticamente as conexões da VNet para o Serviço do Azure SignalR por meio de um link privado.

Importante

Use a mesma cadeia de conexão para se conectar ao Serviço do Azure SignalR usando pontos de extremidade privados, como você usaria se não fosse o caso. Não se conecte ao Serviço do Azure SignalR usando sua privatelink URL de subdomínio.

Criamos uma zona DNS privada anexada à VNet com as atualizações necessárias para os pontos de extremidade privados, por padrão. No entanto, se você estiver usando seu servidor DNS, talvez seja necessário fazer alterações adicionais na configuração do DNS. A seção Alterações no DNS para pontos de extremidade privados descreve as atualizações necessárias para pontos de extremidade privados.

Alterações no DNS para pontos de extremidade privados

Quando você cria um ponto de extremidade privado, o registro de recurso DNS CNAME para seu Serviço do Azure SignalR é atualizado para um alias em um subdomínio com o prefixo privatelink. Por padrão, também criamos uma zona DNS privada, correspondente ao subdomínio privatelink, com os registros de recurso DNS A para os pontos de extremidade privados.

Quando você resolve o nome de domínio do Serviço do Azure SignalR de fora da VNet com o ponto de extremidade privado, ele é resolvido para o ponto de extremidade público do Serviço do Azure SignalR. Quando resolvido da VNet que hospeda o ponto de extremidade privado, o nome de domínio é resolvido para o endereço IP do ponto de extremidade privado.

No exemplo ilustrado, os registros de recurso de DNS para o “foobar” do Serviço do Azure SignalR, quando resolvidos de fora da VNet que hospeda o ponto de extremidade privado, serão:

Nome Tipo Valor
foobar.service.signalr.net CNAME foobar.privatelink.service.signalr.net
foobar.privatelink.service.signalr.net Um <Endereço IP público do Serviço do Azure SignalR>

Conforme mencionado anteriormente, você pode negar ou controlar o acesso dos clientes de fora da VNet por meio do ponto de extremidade público usando o controle de acesso à rede.

Os registros de recurso DNS para “foobar”, quando resolvido por um cliente na VNet que hospeda o ponto de extremidade privado, serão:

Nome Tipo Valor
foobar.service.signalr.net CNAME foobar.privatelink.service.signalr.net
foobar.privatelink.service.signalr.net Um 10.1.1.5

Essa abordagem habilita o acesso ao Serviço do Azure SignalR com a mesma cadeia de conexão para os clientes na VNet que hospedam os pontos de extremidade privados e os clientes fora da VNet.

Caso estiver usando um servidor DNS personalizado em sua rede, os clientes devem resolver o FQDN para o ponto de extremidade do Serviço do Azure SignalR para o endereço IP do ponto de extremidade privado. Configure o servidor DNS para delegar seu subdomínio de link privado à zona DNS privada para a VNet ou configure os registros A para foobar.privatelink.service.signalr.net com o endereço IP do ponto de extremidade privado.

Dica

Ao usar um servidor DNS personalizado ou local, você deve configurar seu servidor DNS para resolver o nome do Serviço do Azure SignalR no subdomínio privatelink para o endereço IP do ponto de extremidade privado. Você pode fazer isso delegando o subdomínio privatelink à zona DNS privada da VNet ou configurando a zona DNS em seu servidor DNS e adicionando os registros do DNS A.

O nome de zona DNS recomendado para pontos de extremidade privados para o Serviço do Azure SignalR é: privatelink.service.signalr.net.

Para saber mais sobre como configurar seu servidor DNS para ter compatibilidade com pontos de extremidade privados, veja os seguintes artigos:

Criar um ponto de extremidade privado

Criar um ponto de extremidade privado junto com um novo Serviço do Azure SignalR no portal do Azure

  1. Ao criar um novo Serviço do Azure SignalR, selecione a guia Rede. Escolha Ponto de extremidade privado como método de conectividade.

    Create Azure SignalR Service - Networking tab

  2. Selecione Adicionar. Preencha a assinatura, o grupo de recursos, o local e o nome do novo ponto de extremidade privado. Escolha uma rede virtual e sub-rede.

    Create Azure SignalR Service - Add private endpoint

  3. Selecione Examinar + criar.

Criar um ponto de extremidade privado para um Serviço do Azure SignalR existente no portal do Azure

  1. Vá até o Serviço do Azure SignalR.

  2. Selecione o menu configurações chamado Conexões de ponto de extremidade privado.

  3. Clique no botão + ponto de extremidade privado na parte superior.

    Private endpoint connections blade

  4. Insira a assinatura, o grupo de recursos, o nome do recurso e a região para o novo ponto de extremidade privado.

    Create private endpoint - Basics

  5. Escolher recurso de destino do Serviço do Azure SignalR.

    Create private endpoint - Resource

  6. Escolha a rede virtual de destino

    Create private endpoint - Configuration

  7. Selecione Examinar + criar.

Criar um ponto de extremidade privado usando a CLI do Azure

  1. Faça logon na CLI do Azure
    az login
    
  2. Definir sua Assinatura do Azure
    az account set --subscription {AZURE SUBSCRIPTION ID}
    
  3. Criar um novo Grupo de Recursos
    az group create -n {RG} -l {AZURE REGION}
    
  4. Registrar Microsoft.SignalRService como um provedor
    az provider register -n Microsoft.SignalRService
    
  5. Criar um novo Serviço SignalR do Azure
    az signalr create --name {NAME} --resource-group {RG} --location {AZURE REGION} --sku Standard_S1
    
  6. Criar uma rede virtual
    az network vnet create --resource-group {RG} --name {vNet NAME} --location {AZURE REGION}
    
  7. Adicionar uma sub-rede
    az network vnet subnet create --resource-group {RG} --vnet-name {vNet NAME} --name {subnet NAME} --address-prefixes {addressPrefix}
    
  8. Desabilitar diretivas de rede virtual
    az network vnet subnet update --name {subnet NAME} --resource-group {RG} --vnet-name {vNet NAME} --disable-private-endpoint-network-policies true
    
  9. Adicionar uma zona DNS privada
    az network private-dns zone create --resource-group {RG} --name privatelink.service.signalr.net
    
  10. Vincular zona DNS privada à rede virtual
    az network private-dns link vnet create --resource-group {RG} --virtual-network {vNet NAME} --zone-name privatelink.service.signalr.net --name {dnsZoneLinkName} --registration-enabled true
    
  11. Criar um ponto de extremidade privado (aprovar automaticamente)
    az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.SignalRService/SignalR/{NAME}" --group-ids signalr --connection-name {Private Link Connection Name} --location {AZURE REGION}
    
  12. Criar um ponto de extremidade privado (solicitar aprovação manualmente)
    az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.SignalRService/SignalR/{NAME}" --group-ids signalr --connection-name {Private Link Connection Name} --location {AZURE REGION} --manual-request
    
  13. Mostrar status da conexão
    az network private-endpoint show --resource-group {RG} --name {Private Endpoint Name}
    

Preços

Para obter detalhes de preço, confira Preço do Link Privado do Azure.

Problemas conhecidos

Tenha em mente os seguintes problemas conhecidos sobre pontos de extremidade privados para Serviço do Azure SignalR

Camada gratuita

Não é possível criar nenhum ponto de extremidade privado para a camada gratuita do Serviço do Azure SignalR.

Restrições de acesso para clientes em VNets com pontos de extremidade privados

Os clientes em VNets com pontos de extremidade privados existentes enfrentam restrições ao acessar outras instâncias de Serviço do Azure SignalR que têm pontos de extremidade privados. Por exemplo:

  • Quando a rede virtual N1 tem um ponto de extremidade privado para uma instância S1 do Serviço SignalR do Azure
    • Se o S2 do Serviço do Azure SignalR tiver um ponto de extremidade privado em uma VNet N2, os clientes na VNet N1 também deverão acessar o S2 do Serviço do Azure SignalR com um ponto de extremidade privado.
    • Se o S2 do Serviço do Azure SignalR não tiver nenhum ponto de extremidade privado, os clientes na VNet N1 poderão acessar o Serviço do Azure SignalR nessa conta sem um ponto de extremidade privado.

Essa restrição é um resultado das alterações de DNS feitas quando o Serviço do Azure SignalR S2 cria um ponto de extremidade privado.

Próximas etapas