Protéger AWS API Gateway à l’aide du pare-feu d’applications Web NetScaler
Vous pouvez déployer une appliance NetScaler devant votre AWS API Gateway et sécuriser la passerelle API contre les menaces externes. Le pare-feu d’applications Web (WAF) NetScaler peut défendre votre API contre les 10 principales menaces OWASP et les attaques zero-day. Le pare-feu d’applications Web NetScaler utilise une base de code unique pour tous les facteurs de forme ADC. Par conséquent, vous pouvez appliquer et faire respecter de manière cohérente les politiques de sécurité dans n’importe quel environnement. Le pare-feu d’applications Web NetScaler est facile à déployer et est disponible sous forme de licence unique. Le pare-feu d’applications Web NetScaler vous offre les fonctionnalités suivantes :
- Configuration simplifiée
- Gestion des bots
- Visibilité holistique
- Collecter des données de plusieurs sources et les afficher sur un écran unifié
En plus de la protection de la passerelle API, vous pouvez également utiliser les autres fonctionnalités NetScaler. Pour plus d’informations, consultez la documentation NetScaler. En outre, pour éviter les basculements de centre de données et minimiser les temps d’arrêt, vous pouvez placer l’ADC en haute disponibilité au sein ou entre les zones de disponibilité. Vous pouvez également utiliser ou configurer le clustering avec la fonction Autoscale.
Auparavant, AWS API Gateway ne prenait pas en charge les protections nécessaires pour sécuriser les applications qui se trouvaient derrière. Sans les protections du pare-feu d’applications Web (WAF), les API étaient sujettes aux menaces de sécurité.
Déployer l’appliance NetScaler devant la passerelle API AWS
Dans l’exemple suivant, une appliance NetScaler est déployée devant la passerelle API AWS.

Supposons qu’il y ait une requête API authentique pour le service AWS Lambda. Cette requête peut concerner n’importe lequel des services API mentionnés dans la documentation Amazon API Gateway. Comme indiqué dans le diagramme précédent, le flux de trafic est le suivant :
- Le client envoie une requête à la fonction AWS Lambda (XYZ). Cette requête client est envoyée au serveur virtuel NetScaler (192.168.1.1).
- Le serveur virtuel inspecte le paquet et vérifie tout contenu malveillant.
- L’appliance NetScaler déclenche une politique de réécriture pour modifier le nom d’hôte et l’URL dans une requête client. Par exemple, vous souhaitez modifier
https://restapi.citrix.com/default/LamdaFunctionXYZenhttps://citrix.execute-api.<region>.amazonaws.com/default/LambdaFunctionXYZ. - L’appliance NetScaler transfère cette requête à la passerelle API AWS.
- La passerelle API AWS envoie ensuite la requête au service Lambda et appelle la fonction Lambda « XYZ ».
- En même temps, si un attaquant envoie une requête API avec un contenu malveillant, la requête malveillante arrive sur l’appliance NetScaler.
- L’appliance NetScaler inspecte les paquets et supprime les paquets en fonction de l’action configurée.
Configurer l’appliance NetScaler avec WAF activé
Pour activer WAF sur une appliance NetScaler, procédez comme suit :
- Ajoutez un serveur virtuel de commutation de contenu ou d’équilibrage de charge. Supposons que l’adresse IP du serveur virtuel est 192.168.1.1, qui se résout en un nom de domaine (restapi.citrix.com).
- Activez la stratégie WAF sur le serveur virtuel NetScaler. Pour plus d’informations, consultez Configuration du pare-feu d’application Web.
- Activez la stratégie de réécriture pour modifier le nom de domaine. Supposons que vous souhaitiez que la requête entrante vers l’équilibreur de charge au nom de domaine « restapi.citrix.com » soit réécrite vers la passerelle API AWS de back-end au nom de domaine « citrix.execute-api.
<region>.amazonaws ». -
Activez le mode L3 sur l’appliance NetScaler pour qu’elle agisse comme un proxy. Utilisez la commande suivante :
enable ns mode L3 <!--NeedCopy-->
À l’étape 3 de l’exemple précédent, disons que l’administrateur du site Web souhaite que l’appliance NetScaler remplace le nom de domaine « restapi.citrix.com » par « citrix.execute-api.<region>.amazonaws.com » et l’URL par « default/lambda/XYZ ».
La procédure suivante décrit comment modifier le nom d’hôte et l’URL dans une requête client à l’aide de la fonction de réécriture :
- Connectez-vous à l’appliance NetScaler à l’aide de SSH.
-
Ajoutez des actions de réécriture.
add rewrite action rewrite_host_hdr_act replace "HTTP.REQ.HEADER(\"Host\")" "\"citrix.execute-api.<region>.amazonaws.com\"" add rewrite action rewrite_url_act replace HTTP.REQ.URL.PATH_AND_QUERY "\"/default/lambda/XYZ\"" <!--NeedCopy--> -
Ajoutez des stratégies de réécriture pour les actions de réécriture.
add rewrite policy rewrite_host_hdr_pol "HTTP.REQ.HEADER(\"Host\").CONTAINS(\"restapi.citrix.com\") "rewrite_host_hdr_act add rewrite policy rewrite_url_pol "HTTP.REQ.HEADER(\"Host\").CONTAINS(\"restapi.citrix.com\") "rewrite_url_act <!--NeedCopy--> -
Lier les stratégies de réécriture à un serveur virtuel.
bind lb vserver LB_API_Gateway -policyName rewrite_host_hdr_pol -priority 10 -gotoPriorityExpression 20 -type REQUEST bind lb vserver LB_API_Gateway -policyName rewrite_url_pol -priority 20 -gotoPriorityExpression END -type REQUEST <!--NeedCopy-->
Pour plus d’informations, consultez Configurer la réécriture pour modifier le nom d’hôte et l’URL dans la requête client sur l’appliance NetScaler.
Fonctionnalités et capacités de NetScaler
L’appliance NetScaler, en plus de sécuriser le déploiement, peut également améliorer la requête en fonction des exigences de l’utilisateur. L’appliance NetScaler offre les fonctionnalités clés suivantes.
-
Équilibrage de charge de la passerelle API : Si vous avez plusieurs passerelles API, vous pouvez équilibrer la charge de plusieurs passerelles API à l’aide de l’appliance NetScaler et définir le comportement de la requête API.
-
Différentes méthodes d’équilibrage de charge sont disponibles. Par exemple, la méthode de la connexion la moins utilisée évite la surcharge de la limite de la passerelle API, la méthode de charge personnalisée maintient une charge spécifique sur une passerelle API particulière, et ainsi de suite. Pour plus d’informations, consultez Algorithmes d’équilibrage de charge.
- Le déchargement SSL est configuré sans interrompre le trafic.
- Le mode Utiliser l’adresse IP source (USIP) est activé pour préserver l’adresse IP du client.
- Paramètres SSL définis par l’utilisateur : Vous pouvez avoir votre propre serveur virtuel SSL avec vos propres certificats et algorithmes signés.
- Serveur virtuel de sauvegarde : Si la passerelle API n’est pas accessible, vous pouvez envoyer la requête à un serveur virtuel de sauvegarde pour des actions ultérieures.
- De nombreuses autres fonctionnalités d’équilibrage de charge sont disponibles. Pour plus d’informations, consultez Équilibrer le trafic sur une appliance NetScaler.
-
-
Authentification, autorisation et audit : Vous pouvez définir vos propres méthodes d’authentification comme LDAP, SAML, RADIUS, et autoriser et auditer les requêtes API.
-
Répondeur : Vous pouvez rediriger les requêtes API vers une autre passerelle API pendant la période d’arrêt.
-
Limitation de débit : Vous pouvez configurer la fonction de limitation de débit pour éviter la surcharge d’une passerelle API.
-
Meilleure disponibilité : Vous pouvez configurer une appliance NetScaler dans une configuration haute disponibilité ou une configuration de cluster pour offrir une meilleure disponibilité à votre trafic API AWS.
-
API REST : Prend en charge l’API REST, qui peut être utilisée pour automatiser le travail dans les environnements de production cloud.
-
Surveillance des données : Surveille et enregistre les données à des fins de référence.
L’appliance NetScaler offre de nombreuses autres fonctionnalités qui peuvent être intégrées à la passerelle API AWS. Pour plus d’informations, consultez la documentation NetScaler.