Intégration du Cloud Connect emnify dans AWS Transit Gateway

21.11.2022
guide-image

Connectez vos appareils à votre VPC AWS de manière sécurisée, sans utiliser l’internet public


emnify est un fournisseur de services cellulaires sur le cloud. Notre réseau mobile et notre plateforme de gestion sont hébergés sur AWS. Dès lors, emnify protège l’ensemble des données qui arrivent sur le cloud AWS. Ainsi, nos clients dont les applications sont également hébergées sur AWS peuvent bénéficier d’une connexion sécurisée à leurs appareils en connectant directement leur VPC à celui d’emnify.

Aperçu de l’intégration

 

AWS Page Elements-11-1


Pré-requis

Pour configurer l’attachement Transit Gateway avec le Cloud Connect emnify, il faut : 

  • un appareil équipé d’une SIM emnify active
  • l’appareil doit envoyer des données à une application dans une instance EC2-VPC (ex : Python, Node.js, application Java, broker MQTT)
  • sur le portail emnify, la politique de service de l’appareil doit être dotée d’un local breakout configuré sur la même région que le serveur de l’application client (cette configuration peut être effectuée en suivant les étapes indiquées plus bas)
  • les instances EC2 doivent être lancées dans un sous-réseau /22 ou plus petit. Les CIDR plus grands ne sont pas acceptés par le portail emnify, et certains sous-réseaux ne sont pas disponibles.

Avantages

  • les appareils connectés et l’infrastructure applicative sont hébergés dans le même réseau privé
  • les appareils sont accessibles à distance depuis l’infrastructure AWS par telnet ou SSH
  • les données des appareils ne transitent pas par l’internet public
  • les instances EC2-VPC n’ont pas besoin d’adresses IP publiques
  • en optant pour cette solution, vous bénéficiez de la qualité de service AWS, notamment en termes de stabilité et d’évolutivité

Remarque importante

La connexion sécurisée que vous allez configurer est spécifique à un VPC donné, par exemple pour héberger votre propre serveur MQTT, ou une VM permettant d’accéder à distance aux appareils. Si vous ne souhaitez utiliser que la solution AWS IoT, référez-vous au guide de configuration AWS IoT.

Les étapes de configuration

Les étapes ci-dessous décrivent comment créer un attachement à votre VPC à l’aide de Cloud Connect. Si vous préférez les explications en vidéo, vous pouvez consulter notre tutoriel. (NB : seule une plage d’IP emnify est présentée dans cette vidéo).

  1. Sur la plateforme emnify, ouvrez le menu Intégrations. Dans la section Connexion Sécurisée, cliquez sur Ajouter, en bas du bloc AWS Transit Gateway.
  2. Sélectionnez “Transit Gateway”
  3. Complétez les informations relatives au compte AWS de destination, et les adresses CIDR privées. Les CIDR doivent correspondre à des VPC existants ou à des plages d’adresses IPV4 dont le préfixe est compris entre /32 et /22. Si la plage d’IP est déjà utilisée, il vous sera demandé d’en choisir une autre.


    NB : une fois la création de l’attachement terminée, la facturation est déclenchée à la fin du mois, comme spécifié au début de la procédure.

  4. Dans la console AWS, acceptez le partage de ressource en attente dans le Resource Access Manager. Cette étape n’est pas nécessaire si vous avez déjà créé des attachements Cloud Connect avec la Transit Gateway précédemment.

    Une fois le partage de ressource accepté, la plateforme emnify active automatiquement la connexion entre les réseaux privés via la Transit Gateway. Cela peut prendre quelques minutes, mais vous pouvez d’ores et déjà entamer la configuration de la connexion côté client.
  5. Dans le tableau de bord de votre VPC, rendez-vous dans la section Transit Gateways du menu, sélectionnez Transit Gateways Attachments, et vérifiez que la région sélectionnée est la même que lors des étapes précédentes. Créez un Transit Gateway Attachment, et entrez les informations du VPC dans lequel est hébergée votre application. Il est possible de rattacher la Transit Gateway à un ou plusieurs sous-réseaux du VPC. NB : la Transit Gateway ID correspond à l’ID de la ressource partagée.
  6. Pour finaliser la mise en place de la Transit Gateway, il faut configurer la table de routage du VPC et le groupe de sécurité, afin que les données sortantes transitent bien par la passerelle.

    Dans le tableau de bord du VPC, rendez-vous dans Tables de routage, et modifiez les routes utilisées par votre serveur applicatif. Cliquez sur Ajouter une route, entrez les plages d’IP emnify 10.192.0.0/12, 100.64.0.0/10, 10.112.0.0/12, 10.176.0.0/12 (pour autoriser le trafic depuis toutes les plages d’IP reliées à votre compte), et sélectionnez la Transit Gateway que vous venez de créer comme cible.

  7. Astuce: vous trouverez des explications sur les tables de routage et la bonne manière de les configurer dans la documentation AWS.


  8. Il est ensuite nécessaire soit de mettre à jour les groupes de sécurité pré-existants, soit d’en créer un nouveau autorisant la réception de données depuis la Transit Gateway. En termes de bonnes pratiques de sécurité, il est pertinent de circonscrire les règles d’entrée / sortie du groupe de sécurité aux seuls ports et protocoles effectivement utilisés par votre application. La liste précise de ces ports et protocoles dépend de votre use case et du type d’application qu’héberge votre VPC.

Vérification de l’attachement

Si tout s’est bien passé, la section Cloud Connect du portail emnify doit afficher le statut “Actif”. Si jamais la Transit Gateway est “en attente” (d’AWS ou emnify), attendez quelques minutes pour que l’activation se termine.

Si le statut est “En attente du client”, remontez à l’étape 4 pour accepter le partage de ressource depuis AWS.

verify-tgw

Il est possible de tester simplement la connexion mise en place avec l’utilitaire ping. Depuis le portail emnify, vous pouvez accéder à l’adresse IP privée statique d’un appareil. Si cet appareil a par exemple pour IP 1.2.3.4, et qu’il apparaît en ligne, alors vous pouvez opérer la vérification suivante :

  • Une réponse est attendue d’une instance EC2 de votre VPC vers l’IP emnify :
    PING 1.2.3.4
    PING 1.2.3.4: 56 data bytes
    64 bytes from 1.2.3.4: icmp_seq=0 ttl=56 time=16.225 ms
    ...