Configurar o tráfego de rede de saída para clusters do Azure HDInsight usando o firewall
Este artigo fornece as etapas para proteger o tráfego de saída do seu cluster do HDInsight usando o Firewall do Azure. As etapas a seguir pressupõem que você está configurando um Firewall do Azure para um cluster existente. Se você estiver implantando um novo cluster atrás de um firewall, primeiro crie seu cluster e sub-rede do HDInsight. Depois, execute as etapas deste guia.
Os clusters do HDInsight normalmente são implantados em uma rede virtual. O cluster tem dependências em serviços fora dessa rede virtual.
O tráfego de gerenciamento de entrada não pode ser enviado por meio de um dispositivo de firewall. Você pode usar marcas de serviço NSG para o tráfego de entrada conforme documentado aqui.
As dependências de tráfego de saída do HDInsight são quase totalmente definidas com FQDNs. E elas não têm endereços IP estáticos por trás. A falta de endereços estáticos significa que os NSGs (Grupos de Segurança de Rede) não podem ser usados para bloquear o tráfego de saída de um cluster. Os endereços de IP mudam com frequência suficiente para que não seja possível configurar regras com base na resolução de nomes e uso.
Proteja os endereços de saída com um firewall que pode controlar o tráfego de saída com base em FQDNs. O Firewall do Azure restringe o tráfego de saída com base no FQDN de destino ou nas marcas de FQDN.
Um resumo das etapas para bloquear a saída do HDInsight existente com o Firewall do Azure:
- Crie uma sub-rede.
- Crie um firewall.
Add application
regras para o firewall.- Adicione regras de rede ao firewall.
- Crie uma tabela de roteamento.
Crie uma sub-rede chamada AzureFirewallSubnet na rede virtual em que o cluster existe.
Crie um firewall chamado Test-FW01 usando as etapas em Implantar o firewall em Tutorial: Implantar e configurar o Firewall do Azure usando o portal do Azure.
Crie uma coleção de regras de aplicativo que permita que o cluster envie e receba comunicações importantes.
Selecione o novo firewall Test-FW01 do portal do Azure.
Navegue até a Configurações>Regras>Coleção de regras do aplicativo>+
Add application rule collection
.Na tela
Add application rule collection
, forneça as seguintes informações:Seção superior
Propriedade Valor Nome FwAppRule Prioridade 200 Ação Allow Seção de marcas de FQDN
Nome Endereço de origem Marca FQDN Observações Rule_1 * WindowsUpdate e HDInsight Exigido para serviços HDIs Seção de FQDNs de destino
Nome Endereços de origem Protocolo: Porta FQDNs de destino Observações Rule_2 * https:443 login.windows.net Permite a atividade de logon do Windows Rule_3 * https:443 login.microsoftonline.com Permite a atividade de logon do Windows Rule_4 * https:443 storage_account_name.blob.core.windows.net Substitua storage_account_name
pelo nome da conta de armazenamento real. Verifique se a "transferência segura necessária" está habilitada na conta de armazenamento. Caso esteja usando um ponto de extremidade privado para acessar contas de armazenamento, essa etapa não será necessária e o tráfego de armazenamento não será encaminhado para o firewall.Rule_5 * http:80 azure.archive.ubuntu.com Permite que as atualizações de segurança do Ubuntu sejam instaladas no cluster Rule_6 * https:443 pypi.org, pypi.python.org, files.pythonhosted.org Permite instalações de pacote do Python para monitoramento do Azure Selecione Adicionar.
Crie as regras de rede para configurar corretamente o cluster do HDInsight.
Continuando da etapa anterior, navegue até Coleção de regras de rede>
+ Add network rule collection
.Na tela
Add network rule collection
, forneça as seguintes informações:Seção superior
Propriedade Valor Nome FwNetRule Prioridade 200 Ação Allow Seção de marcas de serviço
Nome Protocolo Endereços de Origem Marcas de serviço Portas de destino Observações Rule_6 TCP * SQL 1433, 11000-11999 Caso esteja usando os SQL Servers padrão fornecidos pelo HDInsight, configure uma regra de rede na seção marcas de serviço para SQL que permitirá que você registre e audite o tráfego do SQL. A menos que você tenha configurado pontos de extremidade de serviço para SQL Server na sub-rede do HDInsight, que ignorará o firewall. Caso esteja usando o SQL servidor para Ambari, Oozie, metastore do Hive e Ranger, você só precisará permitir o tráfego para seus próprios Servidores SQL personalizados. Consulte o banco de dados SQL do Azure e a arquitetura de conectividade do Azure Synapse Analytics para ver por que o intervalo de porta 11000-11999 também é necessário, além de 1433. Rule_7 TCP * Azure Monitor * (Opcional) Os clientes que planejam usar o recurso de dimensionamento automático devem adicionar essa regra. Selecione Adicionar.
Crie uma tabela de rotas com as seguintes entradas:
Todos os endereços IP de Serviços de integridade e gerenciamento com um tipo do próximo salto de Internet. Ele deve incluir 4 IPs de regiões genéricas, bem como 2 IPs para sua região específica. Essa regra só será necessária se o ResourceProviderConnection estiver definido como Entrada. Se o ResourceProviderConnection for definido como Saída, esses IPs não serão necessários no UDR.
Uma rota da Solução de Virtualização para o endereço IP 0.0.0.0/0 com o próximo salto sendo seu endereço IP privado do Firewall do Azure.
Por exemplo, para configurar a tabela de rotas para um cluster criado na região dos EUA "Leste dos EUA", use as seguintes etapas:
Selecione o firewall Test-FW01 do Azure. Copie o endereço IP privado listado na página Visão geral. Para este exemplo, usaremos um endereço de exemplo de 10.0.2.4.
Em seguida, navegue até Todos os serviços>Rede>Tabelas de rede e Criar Tabela de Rotas.
Em sua nova rota, navegue até Configurações>Rotas>+ Adicionar. Adicione as seguintes rotas:
Nome da rota | Prefixo de endereço | Tipo do próximo salto | Endereço do próximo salto |
---|---|---|---|
168.61.49.99 | 168.61.49.99/32 | Internet | NA |
23.99.5.239 | 23.99.5.239/32 | Internet | NA |
168.61.48.131 | 168.61.48.131/32 | Internet | NA |
138.91.141.162 | 138.91.141.162/32 | Internet | NA |
13.82.225.233 | 13.82.225.233/32 | Internet | NA |
40.71.175.99 | 40.71.175.99/32 | Internet | NA |
0.0.0.0 | 0.0.0.0/0 | Solução de virtualização | 10.0.2.4 |
Conclua a configuração da tabela de rotas:
Atribua a tabela de rotas que você criou à sub-rede do HDInsight selecionando Sub-redes em Configurações.
Selecione + Associar.
Na tela Associar sub-rede, selecione a rede virtual na qual o cluster foi criado. E a Sub-rede usada para o cluster do HDInsight.
Selecione OK.
As etapas acima permitirão que o cluster opere sem problemas. Você ainda precisa configurar dependências para acomodar seus aplicativos personalizados em execução nos nós de borda, se aplicável.
As dependências de aplicativo precisam ser identificadas e adicionadas ao Firewall do Azure ou à tabela de rotas.
As rotas precisam ser criadas para o tráfego de aplicativo a fim de evitar problemas de roteamento assimétrico.
Se os seus aplicativos tiverem outras dependências, eles precisarão ser adicionados ao Firewall do Azure. Crie regras de aplicativo para permitir o tráfego HTTP/HTTPS e regras de Rede para todo o resto.
O Firewall do Azure pode enviar logs para alguns sistemas de armazenamento diferentes. Para obter instruções sobre como configurar o registro em log para o firewall, siga as etapas em Tutorial: monitorar os logs e as métricas do Firewall do Azure.
Depois de concluir a configuração do registro em log, se você estiver usando Log Analytics, poderá exibir o tráfego bloqueado com uma consulta, como:
AzureDiagnostics | where msg_s contains "Deny" | where TimeGenerated >= ago(1h)
A integração do Firewall do Azure aos logs do Azure Monitor é útil ao colocar um aplicativo para ser executado pela primeira vez. Especialmente quando você não está ciente de todas as dependências do aplicativo. Saiba mais sobre os logs do Azure Monitor em Analisar dados de log no Azure Monitor
Para saber mais sobre os limites de escala do Firewall do Azure e solicitar aumentos, confira este documento ou consulte as Perguntas frequentes.
Depois de configurar o firewall com êxito, você poderá usar o ponto de extremidade interno (https://CLUSTERNAME-int.azurehdinsight.net
) para acessar o Ambari de dentro da rede virtual.
Para usar o ponto de extremidade público (https://CLUSTERNAME.azurehdinsight.net
) ou o ponto de extremidade SSH (CLUSTERNAME-ssh.azurehdinsight.net
), verifique se você tem as rotas certas na tabela de rotas e as regras de NSG para evitar o problema de roteamento assimétrico explicado aqui. Especificamente nesse caso, você precisa permitir o endereço IP do cliente nas regras de NSG de entrada e também adicioná-lo à tabela de rotas definida pelo usuário com o próximo salto definido como internet
. Se o roteamento não estiver configurado corretamente, você verá um erro de tempo limite.