Activer Private Link sur un cluster HDInsight

Cet article explique comment tirer parti d’Azure Private Link pour vous connecter à votre cluster HDInsight de manière privée dans des réseaux sur le réseau principal de Microsoft. Cet article est une extension de l’article Restreindre la connectivité du cluster dans Azure HDInsight qui se concentre sur la restriction de la connectivité publique. Si vous souhaitez de la connectivité publique à oudans vos clusters HDInsight et ressources dépendantes, envisagez de restreindre la connectivité de votre cluster en suivant les instructions fournies dans Contrôler le trafic réseau dans Azure HDInsight.

Vous pouvez tirer parti de Private Link dans des scénarios inter-réseaux virtuels où l’appairage de réseaux virtuels n’est pas disponible ou activé.

Notes

La restriction de la connectivité publique est une condition préalable à l’activation de Private Link et ne doit pas être considérée comme la même capacité.

L’utilisation d’un lien privé pour se connecter à un cluster HDInsight est une fonctionnalité facultative qui est désactivée par défaut. La fonctionnalité est disponible uniquement quand la propriété de réseau resourceProviderConnection est définie sur sortant, comme décrit dans l’article Restreindre la connectivité du cluster dans Azure HDInsight.

Lorsque privateLink est défini comme activé, des équilibreurs de charge standard (SLB) internes sont créés et un service Azure Private Link est provisionné pour chaque SLB. Le service Azure Private Link vous permet d’accéder au cluster HDInsight à partir de points de terminaison privés.

La création réussie d’un cluster Private Link nécessite de nombreuses étapes, que nous avons décrites ici. Suivez chacune des étapes ci-dessous pour vous assurer que tout est correctement configuré.

Étape 1 : Créer les composants requis

Pour commencer, déployez les ressources suivantes si vous ne les avez pas déjà créées. Vous devez avoir au moins un groupe de ressources, deux réseaux virtuels et un groupe de sécurité réseau à attacher au sous-réseau dans lequel le cluster HDInsight sera déployé, comme indiqué ci-dessous.

Type Nom Objectif
Resource group hdi-privlink-rg Utilisé pour conserver les ressources communes ensemble
Réseau virtuel hdi-privlink-cluster-vnet Réseau virtuel sur lequel le cluster sera déployé
Réseau virtuel hdi-privlink-client-vnet Réseau virtuel à partir duquel les clients se connecteront au cluster
Un groupe de sécurité réseau hdi-privlink-cluster-vnet-nsg Groupe de sécurité réseau par défaut requis pour le déploiement du cluster

Notes

Le groupe de sécurité réseau (NSG) peut simplement être déployé, mais il n’est pas nécessaire de modifier les règles du NSG pour le déploiement du cluster.

Étape 2 : Configurer le sous-réseau HDInsight

  • Désactivez privateLinkServiceNetworkPolicies sur le sous-réseau. Lorsque vous choisissez une adresse IP source pour votre service Private Link, vous devez configurer un paramètre de désactivation privateLinkServiceNetworkPolicies explicite dans le sous-réseau. Suivez les instructions ici pour désactiver les stratégies réseau pour les services Private Link.
  • Activez les points de terminaison de service sur le sous-réseau. Pour le déploiement réussi d’un cluster HDInsight Private Link, nous vous recommandons d’ajouter les points de terminaison de services Microsoft.SQL, Microsoft.Storage et Microsoft.KeyVault à votre sous-réseau avant le déploiement du cluster. Les points de terminaison de services acheminent le trafic de service directement à partir de votre réseau virtuel vers le service sur le réseau principal de Microsoft Azure. La conservation du trafic sur le réseau principal d’Azure vous permet de continuer l’audit et la surveillance du trafic Internet sortant à partir de vos réseaux virtuels, via le tunneling forcé, sans affecter le trafic de service.

Étape 3 : Déployer une passerelle NAT ou un pare-feu

Les équilibreurs de charge standard ne fournissent pas automatiquement de NAT sortante publique comme le font les équilibreurs de charge de base. Étant donné que les clusters Private Link utilisent des équilibreurs de charge standard, vous devez fournir votre propre solution NAT, telle qu’une passerelle NAT, ou la traduction d’adresses réseau (NAT) fournie par votre pare-feu pour vous connecter aux dépendances HDInsight publiques sortantes.

Déployer une passerelle NAT (option 1)

Vous pouvez choisir d’utiliser une passerelle NAT si vous ne souhaitez pas configurer un pare-feu ou une appliance virtuelle réseau (appliance virtuelle réseau) pour NAT. Pour commencer, ajoutez une passerelle NAT (avec une nouvelle adresse IP publique dans votre réseau virtuel) au sous-réseau configuré de votre réseau virtuel. Cette passerelle assume la conversion de votre adresse IP interne privée en adresses publiques lorsque le trafic doit être placé en dehors de votre réseau virtuel.

Pour initier une installation de base :

  1. Recherchez « Passerelles NAT » dans le portail Azure, puis cliquez sur Créer.

  2. Utilisez les configurations suivantes dans la passerelle NAT. (Nous n’incluons pas toutes les configurations ici. Vous pouvez donc utiliser les valeurs par défaut.)

    Config Valeur
    Nom de la passerelle NAT hdi-privlink-nat-gateway
    Préfixes d’adresses IP publiques Créer un préfixe d’IP publique
    Nom du préfixe d’IP publique hdi-privlink-nat-gateway-prefix
    Taille de préfixe d’adresse IP publique /28 (16 adresses)
    Réseau virtuel hdi-privlink-cluster-vnet
    Nom du sous-réseau default
  3. Une fois le déploiement de la passerelle NAT terminé, vous êtes prêt à passer à l’étape suivante.

Configuration d’un pare-feu (option 2)

Pour initier une installation de base :

  1. Ajoutez un nouveau sous-réseau nommé AzureFirewallSubnet à votre réseau virtuel.
  2. Utilisez le nouveau sous-réseau pour configurer un nouveau pare-feu et ajouter vos stratégies de pare-feu.
  3. Utilisez l’adresse IP privée du nouveau pare-feu comme valeur nextHopIpAddress dans votre table de routage.
  4. Ajoutez cette table de routage au sous-réseau configuré de votre réseau virtuel.

Votre cluster HDInsight doit toujours avoir accès à ses dépendances sortantes. Si ces dépendances sortantes ne sont pas autorisées, la création du cluster peut échouer. Pour plus d’informations sur la configuration d’un pare-feu, consultez Contrôler le trafic réseau dans Azure HDInsight.

Étape 4 : Déployer un cluster Private Link

À ce stade, tous les prérequis doivent être remplis et vous êtes prêt à déployer le cluster Private Link. Le diagramme suivant montre un exemple de configuration de mise en réseau requise avant de créer le cluster. Dans cet exemple, tout le trafic sortant est forcé vers le pare-feu Azure via un itinéraire défini par l’utilisateur. Les dépendances sortantes requises doivent être autorisées sur le pare-feu avant la création du cluster. Pour les clusters Pack Sécurité Entreprise,l’appairage de réseaux virtuels peut permettre la connectivité réseau à Microsoft Entra Domain Services.

Diagramme de l’environnement de liaison privée avant la création du cluster.

Créer le cluster

L’extrait de code JSON suivant comprend les deux propriétés réseau que vous devez configurer dans votre modèle Azure Resource Manager pour créer un cluster HDInsight privé :

networkProperties: {
    "resourceProviderConnection": "Outbound",
    "privateLink": "Enabled"
}

Pour obtenir un modèle complet avec de nombreuses fonctionnalités de sécurité d’entreprise HDInsight, notamment Azure Private Link, consultez Modèle de sécurité d’entreprise HDInsight.

Pour créer un cluster à l’aide de PowerShell, consultez l'exemple.

Pour créer un cluster à l’aide d’Azure CLI, consultez l'exemple.

Étape 5 : Créer des points de terminaison privés

Azure crée automatiquement un service Private Link pour les équilibreurs de charge Ambari et SSH pendant le déploiement du cluster Private Link. Une fois le cluster déployé, vous devez créer deux points de terminaison privés sur les VNET client, un pour Ambari et l’autre pour l’accès SSH. Ensuite, liez-les aux services Private Link qui ont été créés dans le cadre du déploiement du cluster.

Pour créer les points de terminaison privés :

  1. Ouvrez le portail Azure et recherchez « liaison privée ».

  2. Dans les résultats, cliquez sur l’icône de liaison privée.

  3. Cliquez sur « Créer un point de terminaison privé » et utilisez les configurations suivantes pour configurer le point de terminaison privé Ambari :

    Config Valeur
    Nom hdi-privlink-cluster
    Type de ressource Microsoft.Network/privateLinkServices
    Ressource gateway-* (Cette valeur doit correspondre à l’ID de déploiement HDI de votre cluster, par exemple gateway-4eafe3a2a67e4cd88762c22a55fe4654)
    Réseau virtuel hdi-privlink-client-vnet
    Subnet default

    Diagramme de l’onglet de base Private Link.Diagramme de l’onglet Ressource Private Link.Diagramme de l’onglet de réseau virtuel Private Link.Diagramme de l’onglet de point de terminaison dns Private Link.Diagramme de l’onglet de balise Private Link.Diagramme de l’onglet d’évaluation Private Link.

  4. Répétez le processus pour créer un autre point de terminaison privé pour l’accès SSH en utilisant les configurations suivantes :

    Config Valeur
    Nom hdi-privlink-cluster-ssh
    Type de ressource Microsoft.Network/privateLinkServices
    Ressource headnode-* (Cette valeur doit correspondre à l’ID de déploiement HDI de votre cluster, par exemple headnode-4eafe3a2a67e4cd88762c22a55fe4654)
    Réseau virtuel hdi-privlink-client-vnet
    Subnet default

Important

Si vous utilisez le cluster HDInsight KafkaRestProxy, suivez cette étape supplémentaire pour activer les points de terminaison privés.

Une fois les points de terminaison privés créés, cette phase de la configuration est terminée. Si vous n’avez pas pris note des adresses IP privées attribuées aux points de terminaison, procédez comme suit :

  1. Ouvrez le réseau virtuel client dans le portail Azure.
  2. Cliquez sur l’onglet « Points de terminaison privés ».
  3. Vous devez voir les interfaces réseau Ambari et SSH listées.
  4. Cliquez sur chacune d’elles et accédez au panneau « Configuration DNS » pour afficher l’adresse IP privée.
  5. Prenez note de ces adresses IP, car elles sont requises pour se connecter au cluster et configurer correctement DNS.

Étape 6 : Configurer DNS pour se connecter via des points de terminaison privés

Pour accéder aux clusters privés, vous pouvez configurer la résolution DNS par le biais de zones DNS privées. Les entrées Azure Private Link créées dans la zone DNS publique gérée par Azure azurehdinsight.net sont les suivantes :

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

L’illustration suivante montre un exemple des entrées DNS privées configurées pour permettre l’accès à un cluster à partir d’un réseau virtuel qui n’est pas appairé ou qui ne dispose pas d’une ligne de vue directe sur le cluster. Vous pouvez utiliser une zone privée Azure DNS pour remplacer les noms de domaine complets (FQDN) *.privatelink.azurehdinsight.net et résoudre les adresses IP de points de terminaison privés dans le réseau du client. La configuration vaut uniquement pour <clustername>.azurehdinsight.net dans l’exemple, mais elle s’étend également à d’autres points de terminaison de cluster.

Diagramme de l’architecture Private Link.

Pour configurer la résolution DNS via une zone DNS privée :

  1. Créez une zone DNS privée Azure. (Nous n’incluons pas toutes les configurations ici. Toutes les autres configurations sont laissées avec les valeurs par défaut.)

    Config Valeur
    Nom privatelink.azurehdinsight.net

    Diagramme de la zone dns privée.

  2. Ajoutez un jeu d’enregistrements à la zone DNS privée pour Ambari.

    Config Valeur
    Nom YourPrivateLinkClusterName
    Type A : enregistrement d’alias sur l’adresse IPv4
    TTL 1
    Unité de durée de vie Heures
    Adresse IP Adresse IP privée du point de terminaison privé pour l’accès Ambari

    Diagramme de l’enregistrement d’ajout de zone dns privée.

  3. Ajoutez un jeu d’enregistrements à la zone DNS privée pour SSH.

    Config Valeur
    Nom YourPrivateLinkClusterName-ssh
    Type A : enregistrement d’alias sur l’adresse IPv4
    TTL 1
    Unité de durée de vie Heures
    Adresse IP Adresse IP privée du point de terminaison privé pour l’accès SSH

    Diagramme de l’enregistrement d’ajout de zone dns private link.

Important

Si vous utilisez le cluster HDInsight KafkaRestProxy, suivez cette étape supplémentaire afin de Configurer DNS pour vous connecter via un point de terminaison privé.

  1. Associez la zone DNS privée au réseau virtuel client en ajoutant une liaison de réseau virtuel.

    1. Ouvrez la zone DNS privée dans le portail Azure.
    2. Cliquez sur l’onglet « Liaisons de réseau virtuel ».
    3. Cliquez sur le bouton « Ajouter ».
    4. Renseignez les détails : nom de la liaison, abonnement et réseau virtuel (votre client VNET)
    5. Cliquez sur Enregistrer.

    Diagramme de liaison-réseau-virtuel.

Étape 7 : Vérifier la connectivité du cluster

La dernière étape consiste à tester la connectivité au cluster. Comme ce cluster est isolé ou privé, nous ne pouvons pas y accéder en utilisant une adresse IP publique ou un nom de domaine complet. Au lieu de cela, nous avons deux options :

  • Configurer un accès VPN au réseau virtuel client à partir de votre réseau local
  • Déployer une machine virtuelle sur le réseau virtuel client et accéder au cluster à partir de cette machine virtuelle

Pour cet exemple, nous allons déployer une machine virtuelle dans le réseau virtuel client en utilisant la configuration suivante pour tester la connectivité.

Config Valeur
Nom de la machine virtuelle hdi-privlink-client-vm
Image Windows 10 Professionnel, version 2004 – Gen1
Aucun port d’entrée public Autoriser les ports sélectionnés
Sélectionner des ports d’entrée RDP (3389)
Je confirme que je dispose d’une licence Windows 10 éligible… Activée
Réseau virtuel hdi-privlink-client-vnet
Subnet default

Une fois que la machine virtuelle cliente est déployée, vous pouvez tester l’accès Ambari et SSH.

Pour tester l’accès Ambari :

  1. Ouvrez un navigateur web sur la machine virtuelle.
  2. Accédez au nom de domaine complet normal de votre cluster : https://<clustername>.azurehdinsight.net.
  3. Si l’interface utilisateur Ambari se charge, la configuration est correcte pour l’accès Ambari.

Pour tester l’accès SSH :

  1. Ouvrez une invite de commande pour obtenir une fenêtre de terminal.
  2. Dans la fenêtre du terminal, essayez de vous connecter à votre cluster avec SSH : ssh sshuser@<clustername>.azurehdinsight.net (remplacez « sshuser » par l’utilisateur SSH que vous avez créé pour votre cluster).
  3. Si vous pouvez vous connecter, la configuration est correcte pour l’accès SSH.

Gérer des points de terminaison privés pour HDInsight

Vous pouvez utiliser des points de terminaison privés pour vos clusters Azure HDInsight afin de permettre aux clients d’un réseau virtuel d’accéder en toute sécurité à votre cluster via une liaison privée. Le trafic réseau entre les clients sur le réseau virtuel et le cluster HDInsight passe par le réseau principal Microsoft, éliminant ainsi l’exposition à partir de l’Internet public.

Diagramme de l’expérience de gestion de point de terminaison privé.

L’utilisateur du service Private Link peut choisir entre deux méthodes d’approbation des connexions (par exemple, Azure Data Factory) :

  • Automatique : Si l’utilisateur du service a des autorisations du contrôle d’accès en fonction du rôle Azure sur la ressource HDInsight, il peut choisir la méthode d’approbation automatique. Dans ce cas, lorsque la demande atteint la ressource HDInsight, celle-ci n’a rien à faire, car la connexion est automatiquement approuvée.
  • Manuelle : si l’utilisateur du service ne dispose pas d’autorisations de RBAC Azure sur la ressource HDInsight, il peut choisir la méthode d’approbation manuelle. Dans ce cas, la demande de connexion apparaît En attente sur les ressources HDInsight. La demande doit être approuvée manuellement par la ressource HDInsight avant que des connexions puissent être établies.

Pour gérer les points de terminaison privés, dans votre vue de cluster dans le portail Azure, sous Sécurité + mise en réseau, accédez à la section Mise en réseau. Vous pourrez voir ici toutes les connexions existantes, les états de connexion et les détails du point de terminaison privé.

Vous pouvez également approuver, rejeter ou supprimer des connexions existantes. Lorsque vous créez une connexion privée, vous pouvez spécifier la sous-ressource HDInsight (par exemple, le nœud principal ou la passerelle) à laquelle vous souhaitez également vous connecter.

Le tableau suivant montre les différentes actions de ressource HDInsight et les états de connexion qui en résultent pour les points de terminaison privés. Une ressource HDInsight peut également modifier l’état de la connexion de point de terminaison privé ultérieurement sans intervention de l’utilisateur. Chaque action met à jour l’état du point de terminaison côté client.

Action du fournisseur de services État du point de terminaison privé de l’utilisateur du service Description
None Pending La connexion a été créée manuellement et est en attente de l’approbation du propriétaire de la ressource Private Link.
Approbation Approved La connexion a été approuvée automatiquement ou manuellement et est prête à être utilisée.
Rejeter Rejeté La connexion a été rejetée par le propriétaire de la ressource Private Link.
Supprimer Déconnecté La connexion a été supprimée par le propriétaire de la ressource Private Link. Private Endpoint devient informatif et doit être supprimé pour le nettoyage.

Étapes suivantes