Proteger e isolar clusters do Azure HDInsight com o Link Privado (versão prévia)

Na arquitetura de rede virtual padrão do Azure HDInsight, o RP (provedor de recursos) do HDInsight se comunica com o cluster usando endereços IP públicos. Alguns cenários exigem o isolamento de rede completo sem o uso de endereços IP públicos. Neste artigo, você aprenderá mais sobre os controles avançados que podem ser usados para criar um cluster HDInsight particular. Para obter informações sobre como restringir o tráfego bidirecionalmente no cluster sem o isolamento de rede completo, confira Controlar o tráfego de rede no Azure HDInsight.

Você pode criar clusters HDInsight particulares configurando propriedades de rede específicas em um modelo do ARM (Azure Resource Manager). Há duas propriedades usadas para criar clusters HDInsight particulares:

  • Remova os endereços IP públicos definindo resourceProviderConnection como de saída.
  • Habilite o Link Privado do Azure e use pontos de extremidade privados definindo privateLink como habilitado.

Remover os endereços IP públicos

Por padrão, o RP do HDInsight usa uma conexão de entrada com o cluster por meio de IPs públicos. Quando a propriedade de rede resourceProviderConnection é definida como de saída, ela inverte as conexões com o RP do HDInsight para que elas sejam sempre iniciadas dentro do cluster para o RP. Sem uma conexão de entrada, não há necessidade de marcas de serviço de entrada nem de endereços IP públicos.

Os balanceadores de carga básicos usados na arquitetura de rede virtual padrão fornecem automaticamente a NAT (conversão de endereços de rede) pública para acessar as dependências de saída necessárias, como o RP do HDInsight. Se você quiser restringir a conectividade de saída à Internet pública, poderá configurar um firewall, mas isso não é um requisito.

A configuração de resourceProviderConnection como de saída também permite que você acesse recursos específicos do cluster, como o Azure Data Lake Storage Gen2 ou metastores externos, usando pontos de extremidade privados. O uso de pontos de extremidade privados para esses recursos não é obrigatório, mas se você planeja ter pontos de extremidade privados para esses recursos, precisa configurar os pontos de extremidade privados e as entradas DNS antes de criar o cluster HDInsight. Recomendamos que você crie e forneça todos os bancos de dados SQL externos necessários, como o Apache Ranger, o Ambari, o Oozie e os metastores do Hive, no momento da criação do cluster. O requisito é que todos esses recursos podem ser acessados dentro da sub-rede do cluster, seja por meio de um ponto de extremidade privado próprio ou de outro modo.

Ao se conectar ao Azure Data Lake Storage Gen2 por meio do ponto de extremidade privado, verifique se a conta de armazenamento do Gen2 tem um ponto de extremidade definido como 'blob' e 'dfs'. Para obter mais informações, confira Como criar um ponto de extremidade privado.

O seguinte diagrama mostra a aparência de uma possível arquitetura de rede virtual do HDInsight quando a resourceProviderConnection é definida como de saída:

Diagrama da arquitetura do HDInsight usando uma conexão de provedor de recursos de saída

Depois de criar o cluster, você deve configurar a resolução de DNS adequada. O seguinte registro DNS de CNAME (nome canônico) é criado na zona DNS pública gerenciada pelo Azure: azurehdinsight.net.

<clustername>    CNAME    <clustername>-int

Para acessar o cluster usando FQDNs de cluster, use os IPs privados do balanceador de carga interno diretamente ou sua zona DNS privada para substituir os pontos de extremidade do cluster conforme apropriado para suas necessidades. Por exemplo, você pode ter uma zona DNS privada, azurehdinsight.net. e adicionar seus IPs privados conforme necessário:

<clustername>        A   10.0.0.1
<clustername-ssh>    A   10.0.0.2

O Link Privado, que está desabilitado por padrão, exige vasto conhecimento de rede para configuração correta das UDR (rotas definidas pelo usuário) e das regras de firewall antes da criação de um cluster. O uso dessa configuração é opcional, mas só está disponível quando a propriedade de rede resourceProviderConnection é definida como de saída, conforme descrito na seção anterior.

Quando privateLink é definido como habilitar, os SLB balanceadores de carga padrão internos são criados, e um serviço do Link Privado do Azure é provisionado para cada SLB. O serviço de Link Privado é o que permite acessar o cluster HDInsight em pontos de extremidade privados.

Os balanceadores de carga padrão não fornecem automaticamente a NAT de saída pública, como os balanceadores de carga básicos. Você precisa fornecer uma solução de NAT própria, como a NAT da Rede Virtual ou um firewall, para as dependências de saída. Seu cluster HDInsight ainda precisa acessar as dependências de saída. Se essas dependências de saída não forem permitidas, a criação do cluster poderá falhar.

Prepare o seu ambiente

Para a criação bem-sucedida de serviços de link privado, você precisa desabilitar explicitamente as políticas de rede para o serviço de link privado.

O diagrama a seguir mostra um exemplo da configuração de rede necessária antes da criação de um cluster. Neste exemplo, todo o tráfego de saída é forçado para o Firewall do Azure usando a UDR, e as dependências de saída necessárias devem ser "permitidas" no firewall antes da criação de um cluster. Para os clusters do Enterprise Security Package, a conectividade de rede com o Azure Active Directory Domain Services pode ser fornecida pelo emparelhamento VNET.

Diagrama do ambiente de link privado antes da criação do cluster

Depois de configurar a rede, você poderá criar um cluster com a conexão do provedor de recursos de saída e o link privado habilitado, conforme mostrado na figura a seguir. Nessa configuração, não há IPs públicos, e o serviço de Link Privado é provisionado para cada balanceador de carga padrão.

Diagrama do ambiente de link privado após a criação do cluster

Acessar um cluster privado

Para acessar clusters privados, você pode usar os IPs privados do balanceador de carga interno diretamente ou usar extensões de DNS de Link Privado e pontos de extremidade privados. Quando a configuração privateLink estiver definida como habilitada, você poderá criar pontos de extremidade privados próprios e configurar a resolução DNS por meio de zonas DNS privadas.

As entradas do Link Privado criadas na zona DNS pública azurehdinsight.net gerenciada pelo Azure são as seguintes:

<clustername>        CNAME    <clustername>.privatelink
<clustername>-int    CNAME    <clustername>-int.privatelink
<clustername>-ssh    CNAME    <clustername>-ssh.privatelink

A imagem a seguir mostra um exemplo das entradas DNS privadas necessárias para acessar o cluster de uma rede virtual que não está emparelhada ou que não tem uma linha de visão direta dos balanceadores de carga do cluster. Você pode usar a Zona Privada do Azure para substituir os FQDNs *.privatelink.azurehdinsight.net e fazer a resolução para seus endereços IP de pontos de extremidade privados.

Diagrama da arquitetura de link privado

Como criar clusters?

Usar propriedades do modelo do ARM

O snippet de código JSON a seguir inclui as duas propriedades de rede que você precisa configurar no modelo do ARM para criar um cluster HDInsight privado.

networkProperties: {
    "resourceProviderConnection": "Inbound" | "Outbound",
    "privateLink": "Enabled" | "Disabled"
}

Para obter um modelo completo com muitos dos recursos de segurança empresarial do HDInsight, incluindo o Link Privado, confira Modelo de segurança empresarial do HDInsight.

Usar PowerShell do Azure

Para usar o PowerShell, confira o exemplo descrito aqui.

Usar a CLI do Azure

Para usar a CLI do Azure, confira o exemplo descrito aqui.

Próximas etapas