Configurando Azure ARC com Private Link.

  • Thread starter Thread starter LeandroBarbosa
  • Start date Start date
L

LeandroBarbosa

O Azure Arc facilita o gerenciamento em ambientes híbridos e multi-cloud por meio de um único painel. Com o Azure Arc, é possivel aplicar os recursos de gerenciamento e segurança do Azure aos seus recursos de outras nuvens, e on-premises, como servidores, clusters Kubernetes e serviços de dados.

Gerenciar recursos do Azure Arc em diferentes redes e firewalls pode apresentar alguns desafios como por exemplo precisar expor pontos de extremidade públicos para seus recursos, o que pode aumentar o risco de acesso não autorizado e ataques maliciosos.

Desta forma, o Azure Arc Private Links é uma solução que facilita e segura a conexão entre seus recursos do Azure Arc e o Azure. Com o Azure Arc Private Links, é possiível criar pontos de extremidade privados para seus recursos do Azure Arc dentro de uma rede virtual do Azure e acessá-los usando endereços IP privados e assim evitar expor pontos de extremidade públicos e proteger seus recursos de riscos de rede. Você também pode diminuir a latência e os custos de largura de banda da rede, direcionando o tráfego pela rede principal do Azure.

Ao utilizar extensões de VM que funcionam com os servidores no Azure Arc, como por exemolo : Gerenciamento de Atualizações, Automação do Azure ou o Azure Monitor, esses recursos se conectam a outros recursos do Azure, como o Workspace do Log Analytics, Conta de Automação do Azure, Cofre de Chave do Azure e o Armazenamento de Blobs que também devem ter seus próprios links privados.

No entanto, até o momento deste artigo, existem algumas restrições em que o tráfego ainda precisa ser realizadas para URLS públicas, como por exemplo, para acesso ao Entra ID, Azure Resource Manager, Windows Admin Center e SSH. A figura abaixo apresenta este fluxo de conexão.



large?v=v2&px=999.png



Objetivo

O propósito deste artigo é demostrar em um ambiente de laboratório como configurar o Azure ARC com private link e ajustar o agente do azure arc para acessar as urls públicas por meio de um proxy.

O ambiente de laborátorio consiste em:

On-premises

  • Servidor Active Directory - Domain Controller (ADDS) : 10.168.101.4
  • Servidor (para onboard no arc) com Windows Sever 2022 : VM01
  • Proxy Server ( Pfsense/squid) : 192.168.101.1
  • VPN Site to Site

Azure

  • Vnet Hub com :
    • Servidor Active Directory - Domain Controller (ADDS) : 10.10.0.4
    • VPN Gateway



Arquitetura do ambiente de laboratório.





large?v=v2&px=999.png



Criando o ARC Private Scope

No portal do Azure , pesquise por Azure ARC e selecione “Private link scopes” e depois em “Create”



large?v=v2&px=999.png



Insira a subscription , resource goup , região e o nome para o Private link Scope.



large?v=v2&px=999.png



Selecione “Create” para criar o Private Endpoint e complete as informações a direita. Utilizarei uma já existente chamada “Vnet-Arc” e Mantenha habilitada a opção de DNS Integration



large?v=v2&px=999.png



Valide as informações e depois ir em “create”.



large?v=v2&px=999.png



Valide os recursos criados no RG.



510x181?v=v2.png



Realizando Link do Private DNS Zone.

Ao acessar a zona de DNS privada que foi criada, é possível ver que o link com a Vnet-Arc já foi feito automaticamente. Como meu servidor de DNS (Controlador de Domínio) está em uma vnet diferente, eu também preciso criar o link com ela.



large?v=v2&px=999.png





large?v=v2&px=999.png



large?v=v2&px=999.png





Integração DNS do Private Endpoint

Para integração de dns com private endpoint existem vários modelos : Azure Private Endpoint DNS integration | Microsoft Learn

No meu caso utilizarei o modelo de integração com custom DNS, pois já tenho um Domain Controller no Azure. Assim, vou usar encaminhadores condicionais, conforme descrito em: PrivateLink/DNS-Integration-Scenarios at master · dmauser/PrivateLink.

Para isso irei configurar encaminhadores no meu DC on-premisses e também no Azure.



DNS do Domain Controller on-premises.


No meu Domain Controller on-premises estarei criando o Encaminahdor Condicional : his.arc.azure.com e guestconfiguration.azure.com apontando para meu Domain Controller no Azure (10.10.0.4).



medium?v=v2&px=400.png





medium?v=v2&px=400.png





DNS do Domain Controller no Azure

No servidor Domain Controller do Azure eu crios os mesmos Contional Forwarders his.arc.azure.com e guestconfiguration.azure.com , porém apontando para o Ip do Azure DNS (168.63.129.16) .

medium?v=v2&px=400.png



Validando a Resolução de nomes.

Vou testar com nslookup a resolução dos endereços gbl.his.arc.azure.com e gbl.privatelink.his.arc.azure.com, o resultado esperado é o ip 10.13.0.10 conforme abaixo.

large?v=v2&px=999.png



A partir do servidor on-premises, o resultado é conforme esperado.

large?v=v2&px=999.png



large?v=v2&px=999.png



Conectando no ARC

Para fazer o onboarding no ARC vou gerar um o Script de Configuração.

Pesquisar por ARC , na coluna selecione “Machines” , depois em add/create .



large?v=v2&px=999.png



Para este lab criarei o script para somente um servidor.



large?v=v2&px=999.png



Selecione o Método de conectividade como Private Endpoint e selecione o Link Scope criado anteriormente e “Download and run”



large?v=v2&px=999.png



Será apresentado o script para copiar ou fazer o download.



large?v=v2&px=999.png



Instalação do Agente no Servidor on-premises.

Conforme Documentação oficial mesmo com private link algumas URLS, públicas ainda precisam ser liberadas.



large?v=v2&px=999.png



Azure Arc network requirements - Azure Arc



Após a liberação das URLs no servidor proxy realizei a configuração de proxy settings na máquina onde irei rodar o script, inclusive inserindo as urls do private endpoint para o não uso de proxy.

319x349?v=v2.png



Porém ao executar o script de onboarding recebi o erro: “The remote server returned an error: (504) Gateway Timeout”

large?v=v2&px=999.png



Devido este cenário de "rede dividida", em que algumas URLs, como a autenticação para o Entra ID, devem ir pela internet via proxy, mas o tráfego para os endpoints privados do ARC não, será preciso definir para o agente do ARC os serviços que devem usar o proxy e os que devem ignorá-lo.

Para isto pode-se configurador dois parâmetros.

  • config set proxy.url : Endereço do Proxy.
  • config set proxy.bypass : Valor conforme tabela abaixo da URls privadas



large?v=v2&px=999.png



Desta forma, vou fazer a instalação do agente de forma manual direto pelo link https://aka.ms/AzureConnectedMachineAgent , (em um ambiente Entreprise poderia ser via SCCM, Gpo ,Intune, etc.

Ao realizar um check de conectividade com o comando :

*Altere o parâmetro “location” conforme foi região onde foi criado o private link. No meu caso é EastUS



azcmagent check --location "eastus" --enable-pls-check



É possível observar no resultado que os endpoints privados estão sendo alcançados, porém os públicos não.



large?v=v2&px=999.png



No script de onboarding gerado anteriormente vou comentar as linhas que fazem a instalação do agente ( já instalado) e adicionar as linhas a seguir com os parâmetros para o proxy.

& “$env:ProgramW6432\AzureConnectedMachineAgent\azcmagent.exe" config set proxy.url "http://192.168.101.1:3128"

& "$env:ProgramW6432\AzureConnectedMachineAgent\azcmagent.exe" config set proxy.bypass "Arc"






large?v=v2&px=999.png



Ao executar novamente o script recebo o prompt para logim e insiro as credenciais.



large?v=v2&px=999.png



medium?v=v2&px=400.png



Realizando a verificação de conectividade novamente pelo comando :



azcmagent check --location "eastus" --enable-pls-check





É possível observar que agora todos os endpoints estão alcançáveis. E os endereços públicos estão com o proxy configurado ( set) e realizando o bypass para o endereços privados.



large?v=v2&px=999.png



Ao acessar o portal do azure é possível que a máquina está com o status de conectada no ARC.



large?v=v2&px=999.png



Referências


Continue reading...
 
Back
Top