Sécurité - Tests de charge distribués sur AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Sécurité

Lorsque vous créez des systèmes sur l'infrastructure AWS, les responsabilités en matière de sécurité sont partagées entre vous et AWS. Ce modèle de responsabilité partagée réduit votre charge opérationnelle car AWS exploite, gère et contrôle les composants, notamment le système d'exploitation hôte, la couche de virtualisation et la sécurité physique des installations dans lesquelles les services fonctionnent. Pour plus d'informations sur la sécurité AWS, rendez-vous sur AWS Cloud Security.

Rôles IAM

Les rôles AWS Identity and Access Management (IAM) permettent aux clients d'attribuer des politiques d'accès et des autorisations détaillées aux services et aux utilisateurs sur le cloud AWS. Cette solution crée des rôles IAM qui accordent aux fonctions AWS Lambda de la solution l'accès pour créer des ressources régionales.

Amazon CloudFront

Cette solution déploie une interface utilisateur Web hébergée dans un compartiment Amazon S3, distribué par Amazon CloudFront. Afin de réduire le temps de latence et d'améliorer la sécurité, cette solution inclut une CloudFront distribution dotée d'une identité d'accès d'origine, à savoir un CloudFront utilisateur fournissant un accès public au contenu du bucket du site Web de la solution. Par défaut, la CloudFront distribution utilise le protocole TLS 1.2 pour appliquer le plus haut niveau de protocole de sécurité. Pour plus d'informations, reportez-vous à la section Restreindre l'accès à une origine Amazon S3 dans le manuel Amazon CloudFront Developer Guide.

CloudFront active des mesures de sécurité supplémentaires pour ajouter des en-têtes de sécurité HTTP à chaque réponse du spectateur. Pour plus d'informations, reportez-vous à la section Ajout ou suppression d'en-têtes HTTP dans les CloudFront réponses.

Cette solution utilise le CloudFront certificat par défaut, dont le protocole de sécurité minimum pris en charge est TLS v1.0. Pour imposer l'utilisation de TLS v1.2 ou TLS v1.3, vous devez utiliser un certificat SSL personnalisé au lieu du certificat par défaut. CloudFront Pour plus d'informations, reportez-vous à Comment configurer ma CloudFront distribution pour utiliser un SSL/TLS certificat.

Amazon API Gateway

Cette solution déploie des points de terminaison Amazon API Gateway optimisés RESTful APIs pour les périphériques afin de fournir la fonctionnalité de test de charge en utilisant le point de terminaison API Gateway par défaut plutôt qu'un domaine personnalisé. Pour une optimisation en périphérie à APIs l'aide du point de terminaison par défaut, API Gateway utilise la politique de sécurité TLS-1-0. Pour plus d'informations, reportez-vous à la section Working with REST APIs du manuel Amazon API Gateway Developer Guide.

Cette solution utilise le certificat API Gateway par défaut, dont le protocole de sécurité minimum pris en charge est TLS v1.0. Pour imposer l'utilisation de TLS v1.2 ou TLS v1.3, vous devez utiliser un domaine personnalisé avec un certificat SSL personnalisé au lieu du certificat API Gateway par défaut. Pour plus d'informations, reportez-vous à la section Configuration de noms de domaine personnalisés pour REST APIs.

Groupe de sécurité AWS Fargate

Par défaut, cette solution ouvre la règle sortante du groupe de sécurité AWS Fargate au public. Si vous souhaitez empêcher AWS Fargate d'envoyer du trafic partout, remplacez la règle sortante par un routage interdomaine sans classe (CIDR) spécifique.

Ce groupe de sécurité inclut également une règle entrante qui autorise le trafic local sur le port 50 000 à destination de toute source appartenant au même groupe de sécurité. Ceci est utilisé pour permettre aux conteneurs de communiquer entre eux.

Amazon VPC

VPC : un cloud privé virtuel (VPC) basé sur le service Amazon VPC vous fournit un réseau privé et logiquement isolé dans le cloud AWS.

Vous pouvez spécifier votre propre VPC dans les CloudFormation paramètres AWS lors du déploiement. Le VPC est utilisé exclusivement par les tâches ECS qui génèrent de la charge ; la console Web et l'API ne sont pas déployées au sein de ce VPC. Si vous ne spécifiez aucun VPC existant, la solution créera un nouveau VPC avec la configuration réseau requise. Si vous choisissez d'utiliser un VPC existant, celui-ci doit répondre aux exigences suivantes pour exécuter correctement les tâches de test de charge.

Exigences du VPC

Les exigences minimales pour qu'un VPC soit utilisé dans le cadre de tests de charge distribués sur AWS sont répertoriées ci-dessous.

  • Le VPC doit contenir au moins deux AZs

  • Le VPC doit contenir au moins deux sous-réseaux, chacun dans un AZ distinct

  • Les sous-réseaux VPC peuvent être publics ou privés, mais ils doivent utiliser la même configuration (publique OU privée)

  • Le VPC doit fournir un accès aux points de terminaison pour ECR, CloudWatch Logs, S3 et IoT Core.

  • Le VPC doit fournir un accès au (x) service (s) ciblé (s) par les tests de charge.

Note

Si aucun VPC ne répond à ces critères, vous pouvez créer rapidement un VPC à l'aide de l'assistant VPC. Pour plus d’informations, consultez Création d’un VPC.

Les sous-réseaux publics peuvent répondre à ces exigences en incluant les éléments suivants :

  • Une passerelle Internet attachée au VPC

  • Une route vers la passerelle Internet (0.0.0.0/0)

Les sous-réseaux privés peuvent répondre à ces exigences grâce à l'utilisation de passerelles NAT ou de points de terminaison VPC, comme décrit ci-dessous.

Option 1 : passerelle NAT

  • Déployez une passerelle NAT dans chaque AZ avec des sous-réseaux privés

  • Configurer des tables de routage pour acheminer le trafic Internet (0.0.0.0/0) via la passerelle NAT

Option 2 : points de terminaison VPC

Créez les points de terminaison VPC suivants dans votre VPC :

  • Point de terminaison de l'API Amazon ECR : com.amazonaws.<region>.ecr.api

  • Point de terminaison Amazon ECR DKR : com.amazonaws.<region>.ecr.dkr

  • Point de terminaison Amazon CloudWatch Logs : com.amazonaws.<region>.logs

  • Point de terminaison Amazon S3 Gateway : com.amazonaws.<region>.s3

  • Point de terminaison AWS IoT Core (obligatoire si vous utilisez les graphiques de données en temps réel) com.amazonaws.<region>.iot.data

D'autres configurations VPC peuvent également fonctionner.

Important

Le groupe de sécurité attaché à chaque interface de point de terminaison VPC doit autoriser le trafic TCP entrant sur le port 443 en provenance du groupe de sécurité des tâches ECS.

Configuration du groupe de sécurité

Pendant le déploiement, la solution créera un groupe de sécurité au sein de votre VPC pour autoriser le trafic suivant avec des tâches dans le cluster ECS :

  • Tout le trafic sortant

  • Trafic entrant sur le port 50000 en provenance d'autres tâches du même groupe de sécurité, afin de faciliter la coordination entre les tâches du travailleur et du responsable.

Test de stress du réseau

Vous êtes responsable de l'utilisation de cette solution dans le cadre de la politique relative aux tests de stress du réseau. Cette politique couvre les situations telles que lorsque vous prévoyez d'exécuter des tests réseau à volume élevé directement depuis vos EC2 instances Amazon vers d'autres sites, tels que d'autres EC2 instances Amazon, des propriétés/services AWS ou des points de terminaison externes. Ces tests sont parfois appelés tests de stress, tests de charge ou tests Gameday. La plupart des tests clients ne sont pas concernés par cette politique ; toutefois, référez-vous à cette politique si vous pensez que vous allez générer un trafic qui soutiendra, au total, pendant plus d'une minute, plus de 1 Gbit/s (1 milliard de bits par seconde) ou plus de 1 Gbit/s (1 milliard de paquets par seconde).

Restreindre l'accès à l'interface utilisateur publique

Pour restreindre l'accès à l'interface utilisateur destinée au public au-delà des mécanismes d'authentification et d'autorisation fournis par IAM et Amazon Cognito, utilisez la solution d'automatisation de sécurité AWS WAF (pare-feu d'applications Web).

Cette solution déploie automatiquement un ensemble de règles AWS WAF qui filtrent les attaques Web courantes. Les utilisateurs peuvent choisir parmi les fonctionnalités de protection préconfigurées qui définissent les règles incluses dans une liste de contrôle d'accès Web (ACL Web) AWS WAF.

Sécurité du serveur MCP (facultatif)

Si vous déployez l'intégration optionnelle du serveur MCP, la solution utilise AWS AgentCore Gateway pour fournir un accès sécurisé aux données de test de charge pour les agents d'intelligence artificielle. AgentCore Gateway valide les jetons d'authentification Amazon Cognito pour chaque demande, garantissant ainsi que seuls les utilisateurs autorisés peuvent accéder au serveur MCP. La fonction Lambda du serveur MCP implémente des modèles d'accès en lecture seule, empêchant les agents d'intelligence artificielle de modifier les configurations ou les résultats des tests. Toutes les interactions avec le serveur MCP utilisent les mêmes limites d'autorisation et les mêmes contrôles d'accès que ceux de la console Web.