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

Você pode usar pontos de extremidade privados para seu Serviço SignalR do Azure para permitir que clientes em uma rede virtual (VNet) 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 VNet para seu Serviço Azure SignalR. O tráfego de rede entre os clientes na VNet e no Serviço Azure SignalR atravessa um link privado na rede de backbone da Microsoft, eliminando a exposição da Internet pública.

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

  • Proteja seu Serviço Azure SignalR usando o controle de acesso à rede para bloquear todas as conexões no ponto de extremidade público para o Serviço Azure SignalR.
  • Aumente a segurança da rede virtual (VNet), permitindo que você bloqueie a exfiltração de dados da VNet.
  • Conecte-se com segurança aos Serviços SignalR do Azure 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 Azure SignalR.

Descrição geral conceptual

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 Azure SignalR, ele fornece conectividade segura entre clientes em sua rede virtual e seu serviço. O ponto de extremidade privado recebe um endereço IP do intervalo de endereços IP da sua rede virtual. A conexão entre o ponto de extremidade privado e o Serviço SignalR do Azure usa um link privado seguro.

Os aplicativos na VNet podem se conectar ao Serviço SignalR do Azure pelo ponto de extremidade privado perfeitamente, usando as mesmas cadeias de conexão e mecanismos de autorização que usariam de outra forma. Os pontos de extremidade privados podem ser usados com todos os protocolos suportados pelo Serviço SignalR do Azure, incluindo a API REST.

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

Os proprietários do Serviço Azure SignalR podem gerenciar solicitações de consentimento e os pontos de extremidade privados, por meio da guia 'Pontos de extremidade privados' para o Serviço Azure SignalR no portal do Azure.

Gorjeta

Se você quiser restringir o acesso ao seu Serviço 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.

Ligação a terminais privados

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

Importante

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

Criamos uma zona DNS privada anexada à rede virtual com as atualizações necessárias para os pontos de extremidade privados, por padrão. No entanto, se estiver a utilizar o seu próprio servidor DNS, poderá ter de fazer outras alterações à sua configuração de DNS. A seção Alterações de DNS para pontos de extremidade privados descreve as atualizações necessárias para pontos de extremidade privados.

Alterações de DNS para pontos de extremidade privados

Quando você cria um ponto de extremidade privado, o registro de recurso DNS CNAME para seu Serviço 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 privatelink subdomínio, com os registros de recursos DNS A para os pontos de extremidade privados.

Quando você resolve seu nome de domínio do Serviço Azure SignalR de fora da VNet com o ponto de extremidade privado, ele é resolvido para o ponto de extremidade público do Serviço Azure SignalR. Quando resolvido a partir 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 recursos DNS para o Serviço SignalR do Azure 'foobar', 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 A <Endereço IP público do Serviço Azure SignalR>

Como mencionado anteriormente, você pode negar ou controlar o acesso para clientes fora da VNet através do ponto de extremidade público usando o controle de acesso à rede.

Os registros de recursos DNS para 'foobar', quando resolvidos 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 A 10.1.1.5

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

Se você estiver usando um servidor DNS personalizado em sua rede, os clientes deverão ser capazes de resolver o FQDN do ponto de extremidade do Serviço Azure SignalR para o endereço IP do ponto de extremidade privado. Você deve configurar seu servidor DNS para delegar seu subdomínio de link privado à zona DNS privada para a rede virtual ou configurar os registros A para foobar.privatelink.service.signalr.net com o endereço IP do ponto de extremidade privado.

Gorjeta

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

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

Para obter mais informações sobre como configurar seu próprio servidor DNS para oferecer suporte a pontos de extremidade privados, consulte os seguintes artigos:

Criar um ponto final privado

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

  1. Ao criar um novo Serviço 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 assinatura, grupo de recursos, local, nome do novo ponto de extremidade privado. Escolha uma rede virtual e uma sub-rede.

    Create Azure SignalR Service - Add private endpoint

  3. Selecione Rever + criar.

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

  1. Vá para o Serviço Azure SignalR.

  2. Selecione no menu de configurações chamado Private endpoint connections.

  3. Selecione o botão + Ponto final privado na parte superior.

    Private endpoint connections blade

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

    Create private endpoint - Basics

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

    Create private endpoint - Resource

  6. Escolha a rede virtual de destino

    Create private endpoint - Configuration

  7. Selecione Rever + criar.

Criar um ponto de extremidade privado usando a CLI do Azure

  1. Iniciar sessão na CLI do Azure
    az login
    
  2. Definir a sua Subscrição 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 Azure SignalR
    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. Desativar políticas 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ços, consulte Preços do Azure Private Link.

Problemas Conhecidos

Lembre-se dos seguintes problemas conhecidos sobre pontos de extremidade privados para o Serviço Azure SignalR:

Escalão gratuito

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

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

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

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

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

Próximos passos