Mise en route avec les services de périphérie AWS

Des didacticiels pratiques et du contenu couvrant les concepts de base.

Services de périphérie AWS

Une région AWS est un emplacement physique où AWS regroupe des centres de données et gère des services régionaux, tels que EC2 et S3. Dans le cas spécifique des applications en ligne, le trafic utilisateur peut traverser plusieurs réseaux publics pour atteindre une infrastructure régionale. Si vous souhaitez remédier aux inconvénients liés à la traversée de réseaux non contrôlés en termes de performances, de fiabilité et de sécurité, vous devez envisager d'ajouter des services de périphérie AWS à votre architecture. Les services de périphérie AWS tels qu'Amazon CloudFront et AWS Global Accelerator fonctionnent sur des centaines de points de présence (PoP) répartis dans le monde entier en dehors des régions AWS. Les utilisateurs sont desservis à partir de ces PoP en 20 à 30 millisecondes en moyenne et, si nécessaire, leur trafic est renvoyé vers votre infrastructure régionale via le réseau mondial AWS au lieu de passer par l'Internet public. L'infrastructure mondiale AWS est une infrastructure privée spécialisée, hautement disponible et à faible latence construite sur un réseau de fibre optique métropolitain mondial entièrement redondant qui est relié par des câbles terrestres et transocéaniques à travers le monde.

Diffusez du contenu en toute sécurité avec une faible latence et des vitesses de transfert élevées.

Protégez vos applications Web contre les exploits courants.

Optimisez la disponibilité et la réactivité des applications grâce à la protection contre les DDoS.

Configurez et gérez les règles de pare-feu de manière centralisée sur l'ensemble de vos comptes.

Améliorez la disponibilité de l'application, les performances et la sécurité à l'aide du réseau mondial AWS.

Amazon CloudFront, le CDN d'AWS

CloudFront est le réseau de livraison de contenu (CDN) d'Amazon. CloudFront est utilisé pour accélérer les applications Web basées sur HTTP(S) et améliorer leur disponibilité et leur sécurité. CloudFront peut être utilisé dans des cas d'utilisation tels que la livraison complète de sites Web, la protection et l'accélération des API, le streaming vidéo adaptatif et le téléchargement de logiciels. Pour utiliser ce service, créez une distribution CloudFront, configurez votre origine (toute origine dont le nom de domaine est accessible au public), émettez et joignez un certificat TLS valide à l'aide d'Amazon Certificate Manager, puis configurez votre serveur DNS de référence pour qu'il pointe le nom de domaine de votre application Web vers le nom de domaine généré par la distribution (xyz.cloudfront.net). Pendant la phase de résolution DNS, lorsque les utilisateurs accèdent à votre application Web, une demande HTTP(S) est acheminée dynamiquement vers le meilleur PoP CloudFront en termes de latence et de disponibilité. Une fois le PoP sélectionné, l'utilisateur met fin à la connexion TCP, y compris à l'établissement de contacts TLS, sur l'un des serveurs du PoP, puis envoie la demande HTTP. Si le contenu est mis en cache dans l'une des couches de cache de CloudFront, la demande sera traitée localement par CloudFront. Dans le cas contraire, la demande est transmise à l'origine. L'infrastructure de CloudFront comporte deux couches. La première couche est basée sur les emplacements périphérique, où les connexions des utilisateurs sont interrompues et où les attaques DDoS de couche 3/4 sont atténuées. Ils fournissent des fonctionnalités de mise en cache et, s'ils sont configurés, exécutent les fonctions CloudFront et appliquent les règles WAF. La deuxième couche est basée sur les caches périphériques régionaux, hébergés dans les régions AWS. Il permet de prolonger la durée de conservation du cache, d'améliorer les taux d'accès au cache et d'exécuter les fonctions Lambda@Edge lorsqu'elles sont configurées. CloudFront optimise dynamiquement l'utilisation de ces couches pour chaque HTTP en fonction de sa nature. Par exemple, les demandes HTTP marquées comme dynamiques (par exemple, mise en cache désactivée, demandes POST/PUT/DELETE, demandes concernant des objets marqués comme ne pouvant pas être mis en cache à l'aide de l'en-tête de réponse Cache-Control, etc.) ignorent les couches de mise en cache et sont donc envoyées depuis les emplacements périphériques directement à votre origine.
Enfin, CloudFront exécute la logique dans un ordre spécifique. CloudFront exécute d'abord ses contrôles de sécurité natifs (par exemple, politique TLS, redirection HTTP vers HTTPS, géoblocage, URL signées), puis il exécute les règles d'une WebACL AWS WAF si elle est configurée, ensuite il exécute le code d'une fonction en périphérie si elle est configurée lors d'un événement de demande de l'utilisateur, après il vérifie son cache si la demande peut être mise en cache, puis il exécute le code de Lambda@Edge s'il est configuré sur l'événement de demande d'origine, et enfin il transmet le demander à l'origine si nécessaire. Pour en savoir plus sur le cycle de vie d'une demande HTTP au sein des couches de CloudFront, regardez la conférence re:Invent suivante. Notez que la fonctionnalité Fonctions CloudFront n'était pas lancée au moment de l'enregistrement de cette conférence.

AWS WAF pour protéger les applications Web au niveau de la couche 7

AWS WAF est un pare-feu d'applications Web qui peut être utilisé pour protéger les applications Web contre les menaces au niveau des applications. Les menaces au niveau des applications sont notamment les suivantes :

  • Les attaques DDoS (par exemple les inondations HTTP) qui visent à consommer les ressources de votre application afin de la rendre inaccessible aux utilisateurs légitimes. 
  • Les attaques qui tentent d'exploiter les vulnérabilités au niveau des applications, puis mènent des activités malveillantes, telles que le vol de données ou l'utilisation non autorisée de vos ressources, comme le minage de bitcoin. 
  • Les attaques menées par des robots automatisés qui peuvent nuire à votre entreprise de différentes manières, comme la prise de contrôle de compte et le scraping de contenu. 

Pour utiliser AWS WAF, créez des règles dans une WebACL, puis associez-la aux ressources qui ont besoin d'être protégées. Les WebACL globales peuvent être associées aux distributions CloudFront, et les WebACL régionales peuvent être associées à des ressources de la même région, comme des ALB et des passerelles API. Lorsqu'une WebACL WAF est associée à une ressource, le service sous-jacent de la ressource (par exemple CloudFront ou ALB) transmet une copie de la demande HTTP au service AWS WAF afin d'évaluer les règles configurées en l'espace d'une milliseconde. Sur la base de l'évaluation des règles, le service AWS WAF indique au service sous-jacent comment traiter la demande (par exemple, bloquer, transférer, contester, etc.). Notez que la logique AWS WAF est uniquement basée sur les attributs de demande HTTP (par rapport aux attributs de réponse).

Une WebACL WAF récemment créée contient uniquement une règle par défaut autorisant toutes les demandes, à laquelle vous pouvez ajouter plusieurs règles de différents types. Tout d'abord, vous pouvez créer des règles personnalisées en fonction des attributs (par exemple, IP, en-têtes, cookies, URL, etc.) de la demande HTTP inspectée. Les règles peuvent également être regroupées en groupes de règles pour faciliter leur gestion. Ensuite, vous pouvez ajouter des règles gérées provenant d'AWS ou de fournisseurs sur AWS Marketplace, qui sont ajoutées sous forme de groupes de règles configurables à votre WebACL. Par exemple, vous pouvez ajouter des groupes gérés par AWS tels que l'ensemble de règles de base et la liste d'adresses IP anonymes. Des règles gérées plus avancées, telles que le contrôle des bots et la prévention de la prise de contrôle de compte, nécessitent l'intégration du SDK côté client. Les règles peuvent être configurées avec les actions suivantes en cas de correspondance : Autoriser et Compter (avec la possibilité d'envoyer des en-têtes en amont), Bloquer (avec la possibilité de répondre par une réponse personnalisée), Limiter le débit et enfin Contester à l'aide du CAPTCHA ou des contestations silencieuses. Les règles, telles que les règles gérées AWS, émettent des étiquettes qui peuvent être utilisées dans la logique des règles suivantes si elles sont atteintes par l'évaluation WAF. Vous pouvez configurer vos propres règles pour émettre des étiquettes, qui seront disponibles dans les enregistrements du journal WAF.

AWS Global Accelerator, une accélération au niveau du réseau

AWS Global Accelerator est un service réseau qui améliore les performances, la fiabilité et la sécurité de vos applications en ligne grâce à l'infrastructure mondiale AWS. Comme AWS Global Accelerator fonctionne au niveau de la couche 4 du modèle OSI, il peut être utilisé avec n'importe quelle application TCP/UDP. Voici quelques exemples de cas d'utilisation : Jeux multijoueurs basés sur UDP/TCP, voix et vidéo sur IP, IoT, ingestion vidéo et téléchargements FTP, et d'autres cas d'utilisation tels que les enchères VPN, Git, et AdTech. 

AWS Global Accelerator peut être déployé devant vos Network Load Balancers, Application Load Balancers, instances AWS EC2 et adresses IP élastiques, qui peuvent tous servir de points de terminaison régionaux pour votre application. Pour utiliser ce service, créez un accélérateur qui fournit deux adresses IPv4 anycast statiques globales qui font office de point d'entrée fixe pour votre application. Avec Global Accelerator, plusieurs points de terminaison d'applications peuvent être présents dans une ou plusieurs régions AWS, mais ils sont tous accessibles par la même adresse IP anycast. Vous configurez ensuite votre serveur DNS de référence pour qu'il pointe le nom de domaine de votre application Web vers les adresses IP statiques dédiées de l'accélérateur. Ces adresses IP anycast sont annoncées sur tous les PoP Global Accelerator afin d'acheminer le trafic des utilisateurs vers le PoP le plus proche, puis de le rediriger vers le point de terminaison régional via le réseau mondial AWS.

Ressources de formation pour les développeurs

  • Priorité
1

Cette page vous a-t-elle été utile ?