Openflow BYOC - Configurer une entrée personnalisée

Cette rubrique décrit les considérations relatives et les étapes nécessaires à la configuration d’un déploiement Openflow BYOC avec une solution d’entrée personnalisée gérée au sein de votre propre compte AWS.

Avantages

Une entrée personnalisée pour les déploiements Openflow BYOC fournit à votre organisation les avantages suivants :

  • Une sécurité renforcée avec des restrictions au niveau du réseau qui peuvent limiter l’accès à votre VPN ou à votre réseau privé uniquement.

  • Accès total à l’URL et au certificat TLS utilisé pour accéder à Openflow afin de répondre à vos exigences en matière de sécurité et de conformité.

Considérations

Avec l’entrée gérée par Snowflake, Openflow crée les enregistrements DNS et l’équilibreur de charge public nécessaires, et gère le certificat TLS pour les exécutions Openflow dans votre déploiement BYOC.

Lorsque vous activez une entrée personnalisée, Openflow ne gérera plus automatiquement les enregistrements DNS externes, ne créera pas automatiquement un équilibreur de charge public, et ne gérera plus les certificats pour les environnements d’exécution Openflow. Vous devez gérer ces ressources à l’intérieur de votre propre compte AWS.

Comparaison entre l’entrée gérée par Openflow et l’entrée personnalisée, mettant en évidence les exigences supplémentaires pour les DNS, les équilibreurs de charge et les certificats.

Configurer une entrée personnalisée dans Snowflake Openflow

  1. Activer l’ingress personnalisée lors de la création du déploiement.

    • Lors de la création du déploiement, activez Custom ingress et spécifiez votre nom de domaine pleinement qualifié favori (FQDN) dans le champ Hostname.

    • Vous devez être en mesure de gérer cet enregistrement DNS et créer un certificat TLS pour ce FQDN. N’utilisez pas un sous-domaine de snowflakecomputing.com.

    • Vous ne devez pas inclure le protocole https:// ou une barre oblique de fin / dans le FQDN.

    • Par exemple, si vous spécifiez openflow01.your-domain.org, vous accéderez à une exécution nommée « Mon exécution » à l’adresse suivante https://openflow01.your-domain.org/my-runtime/nifi/.

  2. Téléchargez le modèle CloudFormation. Ce fichier contient tous les paramètres nécessaires à Openflow pour qu’il s’exécute comme votre domaine d’entrée personnalisé.

Configurer une entrée personnalisée dans AWS

Note

{deployment-key} représente l’identificateur unique Openflow appliqué aux ressources Cloud créées et gérées par Openflow pour un déploiement particulier.

Cet identificateur se trouve dans le paramètre DataPlaneKey du modèle CloudFormation, également disponible dans Openflow via l’option de menu View Details pour le déploiement.

  1. Ajoutez la balise suivante aux sous-réseaux privés pour votre déploiement Openflow :

    • Clé : kubernetes.io/role/internal-elb

    • Valeur : 1

  2. Si vos sous-réseaux privés sont utilisés par d’autres clusters EKS, vous devez également les baliser avec le nom du cluster Openflow. Cela permet à Openflow de créer un équilibreur de charge à côté d’autres équilibreurs de charge.

    • Clé : kubernetes.io/cluster/{deployment-key}

    • Valeur : 1

  3. Chargez le modèle CloudFormation. Attendez environ 30 minutes qu’Openflow crée l’équilibreur de charge du réseau interne.

    • Vous pouvez trouver l’équilibreur de charge du réseau interne dans la console AWS sous EC2 » Load Balancers.

    • L’équilibreur de charge sera nommé runtime-ingress-{deployment-key}.

  4. Obtenez l’adresse IP interne de l’équilibreur de charge du réseau interne AWS géré par Openflow.

    • Sous EC2 » Load Balancers, naviguez jusqu’à la page de détails et copiez le DNS name de l’équilibreur de charge.

    • Connectez-vous à votre instance EC2 d’agent (identifiée comme openflow-agent-{deployment-key}) et exécutez la commande nslookup {openflow-load-balancer-dns-name}.

    • Copier les adresses IP de l’équilibreur de charge du réseau interne AWS géré par Openflow. Il s’agit des destinations pour le groupe cible de l’équilibreur de charge que vous allez créer ultérieurement.

  5. Fournissez un certificat TLS.

    • Obtenez un certificat TLS de l’équilibreur de charge qui gérera le trafic vers les UIs de l’environnement d’exécution Openflow. Vous pouvez générer un certificat en utilisant le gestionnaire de certificats AWS (ACM) ou importer un certificat existant.

  6. Créez un équilibreur de charge du réseau qui acheminera le trafic vers l’équilibreur de charge du réseau interne AWS géré par Openflow.

    1. Dans votre compte AWS, créez un équilibreur de charge réseau avec la configuration suivante :

      • Nom : Nous recommandons la convention de dénomination custom-ingress-external-{deployment-key}, où {deployment-key} correspond à la clé de votre déploiement Openflow.

      • Type : Network Load Balancer

      • Schéma : Internal ou Internet-facing, en fonction de vos exigences.

      • VPC : sélectionnez le VPC de votre déploiement

      • Zones de disponibilité : Sélectionnez les deux zones de disponibilité dans lesquelles votre déploiement Openflow est en cours d’exécution.

      • Sous-réseaux : Sélectionner les sous-réseaux privés de votre VPC pour un équilibreur de charge Internal ou les sous-réseaux publics de votre VPC pour un équilibreur de charge Internet-facing.

      • Groupes de sécurité : Sélectionnez ou créez un groupe de sécurité qui autorise le trafic sur le port 443.

      • Certificat de serveur SSL/TLS par défaut : Importer votre certificat SSL/TLS

      • Groupe cible : Créez un nouveau groupe cible avec les paramètres suivants :

        • Type de cible : IP addresses

        • Protocole : TLS

        • Port : 443

        • VPC : Vérifier que le VPC correspond à votre déploiement

        • Tapez l’adresse IP de l’équilibreur de charge du réseau interne créé par Openflow (obtenu à l’étape précédente) comme cible et sélectionnez Include as pending below.

    2. Une fois l’équilibreur de charge créé, copiez le nom DNS de l’équilibreur de charge à utiliser à l’étape suivante.

    3. Pour plus d’informations sur la création d’un équilibreur de charge du réseau, consultez Créer un équilibreur de charge du réseau.

  7. Créez un enregistrement DNS CNAME qui mappe votre FQDN d’entrée personnalisée vers le nom DNS de l’équilibreur de charge AWS.

Vérification

  1. Le déploiement Openflow affiche un état Active dans la page Deployments.

  2. Créez une exécution dans le déploiement Openflow.

  3. Une fois que l’exécution est Active, cliquez sur le nom de l’exécution ou utilisez l’option de menu View canvas pour accéder à l’UI.

  4. Openflow vous dirige vers l’exécution avec le nom d’hôte spécifié lors de la création du déploiement. Par exemple, https://openflow01.your-domain.org/my-runtime/nifi/.

Résolution des problèmes

Les sections suivantes fournissent des étapes de dépannage pour les problèmes courants liés à l’entrée personnalisée. Si vous rencontrez toujours des problèmes après avoir effectué ces contrôles, envoyez un ticket au Support Snowflake.

Contrôle de l’état des cibles de l’équilibreur de charge

Le groupe cible de votre équilibreur de charge réseau doit répertorier les adresses IP de l’équilibreur de charge réseau interne géré par Openflow en tant que cibles. Toutes ces cibles doivent apparaître sous l’état Healthy. Si les cibles sont Unhealthy, utilisez les contrôles suivants pour cibler les régions où le trafic échoue.

  1. Dans la console AWS, ouvrez EC2 » Load Balancers.

  2. Localisez l’équilibreur de charge géré par Openflow qui gère l’entrée vers le cluster Kubernetes. Cet équilibreur de charge est nommé runtime-ingress-{deployment-key}.

  3. Examinez la santé cible de cet équilibreur de charge sous l’onglet Resource map.

  4. Si l’équilibreur de charge géré par Openflow n’est pas actif ou présente des cibles Unhealthy :

    • Le trafic peut être bloqué entre l’équilibreur de charge géré par Openflow et le cluster BYOC, ou un service dans le cluster peut ne pas être prêt.

    • Générez un bundle de diagnostic en exécutant ./diagnostics.sh à partir de l’instance openflow-agent-{deployment-key} EC2 et joignez-le à un ticket du Support Snowflake.

  5. Si l’équilibreur de charge géré par Openflow est actif et possède des cibles saines, vérifiez la santé cible de votre équilibreur de charge.

  6. Si les cibles de votre équilibreur de charge correspondent à Unhealthy, le chemin de votre équilibreur de charge vers l’équilibreur de charge géré par Openflow est le problème le plus probable :

    • Adresses IP incorrectes ou obsolètes dans votre groupe cible. L’équilibreur de charge géré par Openflow expose plusieurs adresses IP qui peuvent changer au fil du temps. Pour obtenir les dernières valeurs, exécutez nslookup avec le DNS name de l’équilibreur de charge géré par Openflow. Mettez à jour les cibles de votre équilibreur de charge si nécessaire.

    • Règles des groupes de sécurité. Confirmez que les règles entrantes sur les groupes de sécurité de l’équilibreur de charge géré par Openflow autorisent le TCP 443 en provenance de votre équilibreur de charge. Le trafic peut échouer si votre équilibreur de charge n’arrive pas à atteindre l’équilibreur de charge Openflow sur le port 443.

Blocage de la sécurité du navigateur

Certains problèmes liés à l’entrée personnalisée sont causés par la sécurité du navigateur d’entreprise, les pare-feu ou les proxy web qui bloquent ou inspectent le trafic vers votre nom d’hôte personnalisé. Ces politiques sont distinctes de la configuration AWS de l’équilibreur de charge. Vous pouvez constater que les utilisateurs ne peuvent pas ouvrir l’UI d’Openflow même si les équilibreurs de charge AWS signalent des cibles saines.

Pour vérifier la connexion des équilibreurs de charge aux services Openflow :

  1. Dans la console AWS, ouvrez EC2 » Load Balancers pour obtenir le nom DNS de l’équilibreur de charge qui sert le trafic et le certificat TLS pour votre nom de domaine d’entrée personnalisé.

    • Il ne s’agit pas de l’équilibreur de charge runtime-ingress-{deployment-key}.

  2. À partir de l’instance openflow-agent-{deployment-key} EC2, vérifiez la connexion entre les équilibreurs de charge et le déploiement Openflow. Exécutez la commande :

    curl -kv https://{your-load-balancer-dns-name}
    
    • Si la commande produit les informations de certificat attendues et une réponse de code d’état 404 réussie, cela signifie que vous avez réussi à vérifier la connexion à votre déploiement Openflow.

    • Si la commande expire ou renvoie une erreur, envoyez un ticket au Support Snowflake et joignez-y un bundle de diagnostic généré en exécutant ./diagnostics.sh à partir de l’instance Openflow Agent.

  3. À partir de l’instance Openflow Agent, vous pouvez également vérifier l’enregistrement DNS CNAME pour le FQDN de votre entrée personnalisée. Exécutez la commande :

    source ~/.env && nslookup $DOMAIN
    
    • Si la commande renvoie les adresses IP de l’équilibreur de charge qui assure la terminaison TLS pour votre nom de domaine d’entrée personnalisé, cela signifie que vous avez réussi à vérifier l’enregistrement DNS CNAME.

    • Si la commande ne renvoie aucun résultat, l’enregistrement DNS CNAME n’est pas configuré correctement. Vérifiez l’enregistrement DNS pour le FQDN de votre entrée personnalisée et assurez-vous qu’il pointe vers le nom DNS de votre équilibreur de charge.

Si Openflow Agent s’est correctement connecté via le DNS de votre équilibreur de charge et que vous avez vérifié l’enregistrement DNS CNAME, il se peut qu’une politique de sécurité ou un pare-feu bloque le trafic de votre navigateur vers le déploiement Openflow BYOC. Collaborez avec votre équipe de sécurité pour autoriser le FQDN de votre entrée personnalisée.