Integrar o Azure Relay com o Azure Private Link

O Serviço de Link Privado do Azure permite que você acesse os serviços do Azure (por exemplo, Azure Relay, Azure Service Bus, Hubs de Eventos do Azure, Armazenamento do Azure e Azure Cosmos DB) e os serviços de cliente/parceiro hospedados do Azure em um ponto de extremidade privado em sua rede virtual. Para obter mais informações, consulte O que é o Azure Private Link?

Um ponto de extremidade privado é uma interface de rede que permite que suas cargas de trabalho em execução em uma rede virtual se conectem de forma privada e segura a um serviço que tenha um recurso de link privado (por exemplo, um namespace de retransmissão). O ponto final privado utiliza um endereço IP privado da VNet, para que possa aceder ao serviço de forma eficaz através da VNet. Todo o tráfego para o serviço pode ser roteado através do ponto de extremidade privado, portanto, nenhum gateway, dispositivos NAT, ExpressRoute, conexões VPN ou endereços IP públicos são necessários. O tráfego entre a rede virtual e o serviço percorre a rede de backbone da Microsoft, eliminando a exposição da Internet pública. Você pode fornecer um nível de granularidade no controle de acesso permitindo conexões com namespaces específicos do Azure Relay.

Nota

Se você usar o ouvinte de retransmissão em um link privado, abra as portas 9400-9599 para comunicação de saída junto com as portas de retransmissão padrão. Observe que você precisa fazer essa etapa apenas para o ouvinte de retransmissão.

Adicionar um ponto de extremidade privado usando o portal do Azure

Pré-requisitos

Para integrar um namespace do Azure Relay ao Azure Private Link, você precisa das seguintes entidades ou permissões:

  • Um namespace do Azure Relay.
  • Uma rede virtual do Azure.
  • Uma sub-rede na rede virtual.
  • Permissões de proprietário ou colaborador na rede virtual.

O ponto final privado e a rede virtual têm de estar na mesma região. Quando você seleciona uma região para o ponto de extremidade privado usando o portal, ele filtra automaticamente apenas as redes virtuais que estão nessa região. Seu namespace pode estar em uma região diferente.

Seu ponto de extremidade privado usa um endereço IP privado em sua rede virtual.

Configurar o acesso privado para um namespace de retransmissão

O procedimento a seguir fornece instruções passo a passo para desabilitar o acesso público a um namespace de retransmissão e, em seguida, adicionar um ponto de extremidade privado ao namespace.

  1. Inicie sessão no portal do Azure.

  2. Na barra de pesquisa, digite Relés.

  3. Selecione o namespace na lista ao qual você deseja adicionar um ponto de extremidade privado.

  4. No menu à esquerda, selecione a guia Rede em Configurações.

  5. Na página Rede, para Acesso à rede pública, selecione Desabilitado se desejar que o namespace seja acessado somente por meio de pontos de extremidade privados.

  6. Em Permitir que serviços confiáveis da Microsoft ignorem esse firewall, selecione Sim se quiser permitir que serviços confiáveis da Microsoft ignorem esse firewall.

    Captura de ecrã da página Rede com acesso à rede pública como Desativado.

  7. Selecione a guia Private endpoint connections na parte superior da página

  8. Selecione o botão + Ponto Final Privado na parte superior da página.

    Captura de tela mostrando a seleção do botão Adicionar ponto de extremidade privado na guia Conexões de ponto de extremidade privado da página Rede.

  9. Na página Noções básicas, siga estas etapas:

    1. Selecione a assinatura do Azure na qual você deseja criar o ponto de extremidade privado.

    2. Selecione o grupo de recursos para o recurso de ponto de extremidade privado.

    3. Insira um nome para o ponto de extremidade privado.

    4. Insira um nome para a interface de rede.

    5. Selecione uma região para o ponto de extremidade privado. Seu ponto de extremidade privado deve estar na mesma região que sua rede virtual, mas pode estar em uma região diferente do namespace do Azure Relay ao qual você está se conectando.

    6. Selecione Next: Resource > button na parte inferior da página.

      Captura de ecrã a mostrar a página Noções básicas do assistente Criar um ponto de extremidade privado.

  10. Revise as configurações na página Recurso e selecione Avançar: Rede Virtual.

    Captura de ecrã a mostrar a página Recurso do assistente Criar um ponto de extremidade privado.

  11. Na página Rede Virtual, selecione a rede virtual e a sub-rede onde deseja implantar o ponto de extremidade privado. Apenas as redes virtuais na subscrição e localização atualmente selecionadas estão listadas na lista pendente.

    Captura de ecrã a mostrar a página Rede Virtual do assistente Criar um ponto de extremidade privado.

    Você pode configurar se deseja alocar dinamicamente um endereço IP ou alocar estaticamente um endereço IP para o ponto de extremidade privado

    Você também pode associar um grupo de segurança de aplicativo novo ou existente ao ponto de extremidade privado.

  12. Selecione Next: DNS para navegar até a página DNS do assistente. Na página DNS, a configuração Integrar com zona DNZ privada está habilitada por padrão (recomendado). Você tem uma opção para desativá-lo.

    Captura de ecrã a mostrar a página DNS do assistente Criar um ponto final privado.

    Para estabelecer ligação de forma privada ao ponto final privado, precisa de um registo DNS. Recomendamos que integre o seu ponto de extremidade privado com uma zona DNS privada. Você também pode utilizar seus próprios servidores DNS ou criar registros DNS usando os arquivos host em suas máquinas virtuais. Para obter mais informações, consulte Configuração de DNS do Ponto de Extremidade Privado do Azure.

  13. Selecione Next: Tags > botão na parte inferior da página.

  14. Na página Etiquetas, crie quaisquer etiquetas (nomes e valores) que pretenda associar ao ponto de extremidade privado e à zona DNS privada (se tiver ativado a opção). Em seguida, selecione o botão Rever + criar na parte inferior da página.

  15. Em Rever + criar, reveja todas as definições e selecione Criar para criar o ponto de extremidade privado.

  16. Na página Ponto de extremidade privado, você pode ver o status da conexão de ponto de extremidade privado. Se você for o proprietário do namespace Relay ou tiver o acesso gerenciado sobre ele e tiver selecionado a opção Conectar a um recurso do Azure em meu diretório para o método Connection, a conexão de ponto de extremidade deverá ser aprovada automaticamente. Se estiver no estado pendente, consulte a seção Gerenciar pontos de extremidade privados usando o portal do Azure.

    Captura de ecrã a mostrar a página Ponto de extremidade privado no portal do Azure.

  17. Navegue de volta para a página Rede do namespace e alterne para a guia Conexões de ponto de extremidade privadas. Você deve ver o ponto de extremidade privado que você criou.

    Captura de ecrã a mostrar o separador Ligações de ponto de extremidade privado da página Rede com o ponto de extremidade privado que acabou de criar.

Adicionar um ponto de extremidade privado usando o PowerShell

O exemplo a seguir mostra como usar o Azure PowerShell para criar uma conexão de ponto de extremidade privada com um namespace do Azure Relay.

O ponto final privado e a rede virtual têm de estar na mesma região. Seu namespace do Azure Relay pode estar em uma região diferente. Além disso, seu ponto de extremidade privado usa um endereço IP privado em sua rede virtual.


$rgName = "<RESOURCE GROUP NAME>"
$vnetlocation = "<VNET LOCATION>"
$vnetName = "<VIRTUAL NETWORK NAME>"
$subnetName = "<SUBNET NAME>"
$namespaceLocation = "<NAMESPACE LOCATION>"
$namespaceName = "<NAMESPACE NAME>"
$peConnectionName = "<PRIVATE ENDPOINT CONNECTION NAME>"

# create resource group
New-AzResourceGroup -Name $rgName -Location $vnetLocation 

# create virtual network
$virtualNetwork = New-AzVirtualNetwork `
                    -ResourceGroupName $rgName `
                    -Location $vnetlocation `
                    -Name $vnetName `
                    -AddressPrefix 10.0.0.0/16

# create subnet with endpoint network policy disabled
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
                    -Name $subnetName `
                    -AddressPrefix 10.0.0.0/24 `
                    -PrivateEndpointNetworkPoliciesFlag "Disabled" `
                    -VirtualNetwork $virtualNetwork

# update virtual network
$virtualNetwork | Set-AzVirtualNetwork

# create a relay namespace
$namespaceResource = New-AzResource -Location $namespaceLocation -ResourceName $namespaceName -ResourceGroupName $rgName -Properties @{} -ResourceType "Microsoft.Relay/namespaces" 

# create a private link service connection
$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
                                -Name $peConnectionName `
                                -PrivateLinkServiceId $namespaceResource.ResourceId `
                                -GroupId "namespace"

# get subnet object that you'll use in the next step                                
$virtualNetwork = Get-AzVirtualNetwork -ResourceGroupName  $rgName -Name $vnetName
$subnet = $virtualNetwork | Select -ExpandProperty subnets `
                                | Where-Object  {$_.Name -eq $subnetName}  
   
# now, create private endpoint   
$privateEndpoint = New-AzPrivateEndpoint -ResourceGroupName $rgName  `
                                -Name $vnetName   `
                                -Location $vnetlocation `
                                -Subnet  $subnet   `
                                -PrivateLinkServiceConnection $privateEndpointConnection

(Get-AzResource -ResourceId $namespaceResource.ResourceId -ExpandProperties).Properties


Gerenciar pontos de extremidade privados usando o portal do Azure

Quando você cria um ponto de extremidade privado, a conexão deve ser aprovada. Se o recurso (namespace de retransmissão) para o qual você está criando um ponto de extremidade privado estiver em seu diretório, você poderá aprovar a solicitação de conexão desde que tenha gerenciado privilégios sobre o namespace de retransmissão. Se você estiver se conectando a um namespace de Retransmissão para o qual não tem o acesso de gerenciamento, deverá aguardar que o proprietário desse recurso aprove sua solicitação de conexão.

Há quatro estados de provisionamento:

Ação do serviço Estado do ponto de extremidade privado do consumidor do serviço Description
None Pendente A conexão é criada manualmente e está pendente de aprovação do proprietário do namespace do Azure Relay.
Aprovar Aprovado A conexão foi aprovada automática ou manualmente e está pronta para ser usada.
Rejeitar Rejeitado A conexão foi rejeitada pelo proprietário do namespace do Azure Relay.
Remover Desligado A conexão foi removida pelo proprietário do namespace do Azure Relay, o ponto de extremidade privado torna-se informativo e deve ser excluído para limpeza.

Aprovar, rejeitar ou remover uma conexão de ponto de extremidade privada

  1. Inicie sessão no portal do Azure.
  2. Na barra de pesquisa, digite Retransmissão.
  3. Selecione o namespace que você deseja gerenciar.
  4. Selecione o separador Rede.
  5. Vá para a seção apropriada abaixo com base na operação que você deseja: aprovar, rejeitar ou remover.

Aprovar uma conexão de ponto de extremidade privada

  1. Se houver conexões pendentes, você verá uma conexão listada com Pendente no estado de provisionamento.

  2. Selecione o ponto de extremidade privado que deseja aprovar

  3. Selecione o botão Aprovar .

    Captura de tela mostrando o botão Aprovar na barra de comandos do ponto de extremidade privado selecionado.

  4. Na página Aprovar conexão, insira um comentário opcional e selecione Sim. Se você selecionar Não, nada acontece.

    Captura de ecrã a mostrar a página Aprovar ligação a pedir a sua confirmação.

  5. Você verá o status da conexão na lista alterada para Aprovado.

Rejeitar uma conexão de ponto de extremidade privada

  1. Se houver alguma conexão de ponto de extremidade privada que você deseja rejeitar, seja uma solicitação pendente ou uma conexão existente que foi aprovada anteriormente, selecione a conexão de ponto de extremidade e selecione o botão Rejeitar .

    Captura de tela mostrando o botão Rejeitar na barra de comandos do ponto de extremidade privado selecionado.

  2. Na página Rejeitar conexão, insira um comentário opcional e selecione Sim. Se você selecionar Não, nada acontece.

    Captura de ecrã a mostrar a página Rejeitar ligação a pedir a sua confirmação.

  3. Você deve ver o status da conexão na lista alterada Rejeitado.

Remover uma conexão de ponto de extremidade privada

  1. Para remover uma conexão de ponto de extremidade privada, selecione-a na lista e selecione Remover na barra de ferramentas.

    Captura de tela mostrando o botão Remover na barra de comandos do ponto de extremidade privado selecionado.

  2. Na página Excluir conexão, selecione Sim para confirmar a exclusão do ponto de extremidade privado. Se você selecionar Não, nada acontece.

    Captura de ecrã a mostrar a página Eliminar ligação a pedir-lhe a confirmação.

  3. Você verá o status alterado para Desconectado. Em seguida, você não verá o ponto de extremidade na lista.

Você deve validar se os recursos dentro da rede virtual do ponto de extremidade privado estão se conectando ao seu namespace do Azure Relay por meio de seu endereço IP privado.

Para este teste, crie uma máquina virtual seguindo as etapas em Criar uma máquina virtual do Windows no portal do Azure

Na guia Rede:

  1. Especifique Rede virtual e Sub-rede. Selecione a Rede Virtual na qual você implantou o ponto de extremidade privado.
  2. Especifique um recurso IP público.
  3. Para o grupo de segurança de rede NIC, selecione Nenhum.
  4. Para Balanceamento de carga, selecione Não.

Conecte-se à VM, abra a linha de comando e execute o seguinte comando:

nslookup <your-relay-namespace-name>.servicebus.windows.net

Você verá um resultado semelhante ao seguinte.

Non-authoritative answer:
Name:    <namespace-name>.privatelink.servicebus.windows.net
Address:  10.0.0.4 (private IP address associated with the private endpoint)
Aliases:  <namespace-name>.servicebus.windows.net

Limitações e considerações de design

Considerações de design

  • Para obter informações sobre preços, consulte Preços do Link Privado do Azure.

Limitações

  • Número máximo de pontos de extremidade privados por namespace do Azure Relay: 64.
  • Número máximo de namespaces do Azure Relay com pontos de extremidade privados por assinatura: 64.
  • As regras do NSG (Grupo de Segurança de Rede) e as Rotas Definidas pelo Usuário não se aplicam ao Ponto de Extremidade Privado. Para obter mais informações, consulte Serviço de Link Privado do Azure: Limitações

Serviços fidedignos da Microsoft

Quando você habilita a configuração Permitir que serviços confiáveis da Microsoft ignorem esse firewall , os seguintes serviços recebem acesso aos recursos do Azure Relay:

Serviço de confiança Cenários de utilização suportados
Azure Machine Learning O AML Kubernetes usa o Azure Relay para facilitar a comunicação entre os serviços AML e o cluster Kubernetes. O Azure Relay é um serviço totalmente gerenciado que fornece comunicação bidirecional segura entre aplicativos hospedados em redes diferentes. Isso o torna ideal para uso em ambientes de link privado, onde a comunicação entre os recursos do Azure e os recursos locais é restrita.
Azure Arc Os serviços habilitados para Arco do Azure associados aos Provedores de Recursos acima poderão se conectar às conexões híbridas em seu namespace de Retransmissão do Azure como remetente sem serem bloqueados pelas regras de firewall IP definidas no namespace de Retransmissão do Azure. Microsoft.Hybridconnectivity service cria as conexões híbridas em seu namespace do Azure Relay e fornece as informações de conexão para o serviço Arc relevante com base no cenário. Esses serviços se comunicam somente com seu namespace do Azure Relay se você estiver usando o Azure Arc, com os seguintes Serviços do Azure:

- Azure Kubernetes
- Azure Machine Learning
- Microsoft Purview

Os outros serviços confiáveis para o Azure Relay podem ser encontrados abaixo:

  • Grelha de Eventos do Azure
  • Hub IoT do Azure
  • Azure Stream Analytics
  • Azure Monitor
  • API Management do Azure
  • Azure Synapse
  • Azure Data Explorer
  • Azure IoT Central
  • Serviços de Dados de Saúde do Azure
  • Azure Digital Twins

Nota

Na versão 2021-11-01 ou mais recente do SDK do Microsoft Relay, a propriedade "trustedServiceAccessEnabled" está disponível nas propriedades Microsoft.Relay/namespaces/networkRuleSets para habilitar o Acesso a Serviços Confiáveis.

Para permitir serviços confiáveis em modelos do Azure Resource Manager, inclua esta propriedade em seu modelo:

"trustedServiceAccessEnabled": "True"

Por exemplo, com base no modelo ARM fornecido acima, podemos modificá-lo para incluir esta propriedade Conjunto de Regras de Rede para a habilitação de Serviços Confiáveis:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespaces_name": {
            "defaultValue": "contosorelay0215",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Relay/namespaces",
            "apiVersion": "2021-11-01",
            "name": "[parameters('namespaces_name')]",
            "location": "East US",
            "sku": {
                "name": "Standard",
                "tier": "Standard"
            },
            "properties": {}
        },
        {
            "type": "Microsoft.Relay/namespaces/authorizationrules",
            "apiVersion": "2021-11-01",
            "name": "[concat(parameters('namespaces_sprelayns0215_name'), '/RootManageSharedAccessKey')]",
            "location": "eastus",
            "dependsOn": [
                "[resourceId('Microsoft.Relay/namespaces', parameters('namespaces_sprelayns0215_name'))]"
            ],
            "properties": {
                "rights": [
                    "Listen",
                    "Manage",
                    "Send"
                ]
            }
        },
        {
            "type": "Microsoft.Relay/namespaces/networkRuleSets",
            "apiVersion": "2021-11-01",
            "name": "[concat(parameters('namespaces_sprelayns0215_name'), '/default')]",
            "location": "East US",
            "dependsOn": [
                "[resourceId('Microsoft.Relay/namespaces', parameters('namespaces_sprelayns0215_name'))]"
            ],
            "properties": {
                "trustedServiceAccessEnabled": "True",
                "publicNetworkAccess": "Enabled",
                "defaultAction": "Deny",
                "ipRules": [
                    {
                        "ipMask": "172.72.157.204",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "10.1.1.1",
                        "action": "Allow"
                    },
                    {
                        "ipMask": "11.0.0.0/24",
                        "action": "Allow"
                    }
                ]
            }
        }
    ]
}

Passos Seguintes