Pour renforcer la sécurité dans le cloud, vous pouvez contrôler l'accès à vos instances NLB par protocole, port ou adresse IP à l'aide de groupes de sécurité. Contrairement au Classic Load Balancer (CLB) qui utilise des listes de contrôle d'accès (ACL), le NLB s'appuie sur des groupes de sécurité pour offrir un contrôle d'accès plus granulaire, basé sur les protocoles et les ports, à l'échelle de l'instance. Cette rubrique explique comment configurer des groupes de sécurité afin de gérer l'accès à chaque listener d'une instance NLB.
Scénarios
Si aucune association n'existe entre une instance NLB et un groupe de sécurité, tout le trafic vers les ports des listeners NLB est autorisé par défaut.
Lorsqu'une instance NLB est associée à un groupe de sécurité ne comportant aucune règle de refus, tout le trafic vers les ports des listeners NLB reste autorisé par défaut. Pour restreindre l'accès à certaines adresses IP uniquement, veillez à ajouter une règle de refus comme option de repli.
Pour maîtriser le trafic entrant vers votre instance NLB, associez-lui des groupes de sécurité et définissez des règles adaptées à vos besoins métier.
Le trafic sortant de l'équilibreur de charge correspond aux paquets de réponse envoyés aux clients. Afin de garantir le bon fonctionnement des services, le groupe de sécurité NLB ne filtre pas ce trafic sortant. Il est donc inutile de configurer des règles sortantes pour ce groupe.
-
Dès la création d'une instance NLB, le système génère automatiquement un groupe de sécurité géré dans le VPC hébergeant cette instance. Ce groupe de sécurité géré est contrôlé par l'instance NLB elle-même ; vous n'y disposez que d'un accès en lecture seule. Il contient deux types de règles :
-
Règle de priorité 1 : autorise par défaut le trafic provenant de l'IP locale de l'instance, permettant ainsi la communication avec les serveurs backend et les vérifications d'état.
Lors de l'ajout de règles de groupe de sécurité, évitez de créer des règles de refus de priorité 1 ciblant l'IP locale du NLB. De telles règles risquent d'entrer en conflit avec les politiques du groupe de sécurité géré et de perturber les communications entre le NLB et vos services backend. Consultez la page de détails de l'instance dans la console NLB pour identifier l'IP locale.
-
Règle de priorité 100 : autorise par défaut le trafic depuis toutes les adresses IP. Par conséquent, si une instance NLB est associée à un groupe de sécurité sans règle de refus explicite, l'ensemble du trafic vers les ports des listeners NLB demeure autorisé.
Les règles implicites d'un groupe de sécurité basique ou avancé incluent une règle refusant tout autre trafic. Toutefois, la règle d'autorisation par défaut du groupe de sécurité géré par le NLB prévaut dans ce cas.
-
Cette rubrique présente trois scénarios illustrant le contrôle d'accès à une instance NLB via un groupe de sécurité. Les exemples s'appuient sur une instance NLB dotée d'un listener TCP sur le port 80 et d'un second sur le port 81.
Scénario | Règle de groupe de sécurité | Résultat attendu | Procédure associée |
1 : L'instance NLB n'est associée à aucun groupe de sécurité. | Par défaut, les ports des listeners NLB autorisent tout le trafic. | Cet exemple utilise une instance NLB avec des listeners TCP sur les ports 80 et 81.
| Étape 2 : Créer une instance NLB et configurer les listeners |
2 : L'instance NLB est associée à un groupe de sécurité. | Refuser l'accès au port TCP 81. Remarque Seules les règles de groupe de sécurité pertinentes pour cette rubrique sont listées. Les règles par défaut ne sont pas affichées. |
| Étape 4 : Ajouter l'instance NLB à un groupe de sécurité et vérifier le résultat |
3 : Le groupe de sécurité associé à l'instance NLB est modifié. |
Remarque Seules les règles de groupe de sécurité pertinentes pour cette rubrique sont listées. Les règles par défaut ne sont pas affichées. |
| Étape 5 : Modifier le groupe de sécurité et vérifier le résultat |
Limites
|
Élément |
Détails |
|
Types de groupes de sécurité pris en charge |
Groupe de sécurité basique, groupe de sécurité avancé |
|
Type de groupe de sécurité non pris en charge |
Groupe de sécurité géré |
|
VPC identique requis |
Le groupe de sécurité et l'instance NLB doivent appartenir au même VPC |
|
Nombre maximal de groupes de sécurité |
Jusqu'à 4 groupes de sécurité par instance NLB |
|
Mixité des types interdite |
Tous les groupes de sécurité associés à une instance NLB doivent être du même type. Pour passer d'un groupe basique à un groupe avancé, retirez d'abord l'instance NLB du groupe basique. Pour passer d'un groupe avancé à un groupe basique, retirez d'abord l'instance NLB du groupe avancé |
|
Calcul du quota |
Emplacements disponibles pour les groupes de sécurité = quota de groupes de sécurité ENI pour ECS − 1 (réservé au groupe de sécurité géré) |
|
Quota de règles de groupe de sécurité |
Emplacements disponibles pour les règles = quota de règles de groupe de sécurité ENI pour ECS − nombre de règles dans le groupe de sécurité géré |
|
Instances anciennes |
Les instances NLB créées avant le 30 septembre 2022 (durant la préversion publique) ne peuvent pas être ajoutées à des groupes de sécurité. Remplacez ces instances ou achetez-en de nouvelles pour utiliser cette fonctionnalité |
Pour plus de détails sur les différences entre les groupes de sécurité basiques et avancés, consultez Groupes de sécurité basiques et avancés.
Prérequis
Vous avez créé un VPC nommé VPC1. Pour plus d'informations, consultez Créer et gérer un VPC.
-
Vous avez créé deux instances ECS, ECS01 et ECS02, dans VPC1 pour servir de serveurs backend à l'instance NLB. Des services applicatifs sont déployés sur ces deux instances ECS.
Pour plus d'informations sur la création d'une instance ECS, consultez Créer une instance à l'aide de l'assistant.
-
Cette rubrique utilise les déploiements d'applications suivants sur ECS01 et ECS02 :
Vous avez enregistré un nom de domaine, effectué le dépôt ICP et configuré un enregistrement CNAME pour l'instance NLB.
Étape 1 : Créer un groupe de serveurs
Connectez-vous à la console NLB.
Dans la barre de navigation supérieure, sélectionnez la région où le groupe de serveurs est déployé. Dans cet exemple, China (Hangzhou) est sélectionné.
Dans le volet de navigation de gauche, choisissez NLB > Server Groups.
Sur la page Server Groups, cliquez sur Create Server Group.
-
Dans la boîte de dialogue Create Server Group, configurez les paramètres suivants et cliquez sur Create.
Cette section décrit uniquement les paramètres pertinents pour cette rubrique. Vous pouvez conserver les valeurs par défaut pour les autres paramètres. Pour plus d'informations, consultez Créer un groupe de serveurs.
Paramètre
Description
Server Group Type
Sélectionnez un type de groupe de serveurs. Dans cet exemple, Server est sélectionné.
Server Group Name
Saisissez un nom pour le groupe de serveurs. Dans cet exemple, RS01 est utilisé.
VPC
Sélectionnez un VPC dans la liste déroulante. Dans cet exemple, VPC1 est sélectionné.
Backend Server Protocol
Sélectionnez un protocole pour les serveurs backend. Dans cet exemple, TCP est sélectionné.
Scheduling Algorithm
Sélectionnez un algorithme de planification. Dans cet exemple, Weighted Round-Robin est sélectionné.
Dans la boîte de dialogue The server group is created, cliquez sur Add Backend Server.
Dans le panneau Add Backend Server, sélectionnez les instances ECS01 et ECS02 que vous avez créées, puis cliquez sur Next.
Définissez les ports et les poids pour les serveurs ajoutés, puis cliquez sur OK.
Étape 2 : Créer une instance NLB et configurer les listeners
Connectez-vous à la console NLB.
Dans la barre de navigation supérieure, sélectionnez la région où l'instance NLB est déployée. Dans cet exemple, China (Hangzhou) est sélectionné.
Sur la page Instances, cliquez sur Create NLB.
-
Sur la page d'achat Create NLB(Pay-As-You-Go), configurez les paramètres suivants et cliquez sur Create.
Cette section décrit uniquement les paramètres pertinents pour cette rubrique. Pour plus d'informations sur les autres paramètres, consultez Créer une instance NLB.
Sélectionnez une région. Dans cet exemple, China (Hangzhou) est sélectionné.
Network Type : Dans cet exemple, Private est sélectionné.
VPC : Dans cet exemple, VPC1 est sélectionné.
Retournez à la page Instances, localisez l'instance NLB créée, puis cliquez sur l'ID de l'instance NLB.
-
Cliquez sur l'onglet Listener. Sous l'onglet Listener, cliquez sur Quick Create Listener. Dans la boîte de dialogue Quick Create Listener, configurez les paramètres suivants pour créer un listener TCP sur le port 80, puis cliquez sur OK.
Configuration du listener
Description
Listener Protocol
Sélectionnez un protocole de listener. Dans cet exemple, TCP est sélectionné.
Listener Port
Saisissez un port de listener. Dans cet exemple, le port 80 est utilisé.
Server Group
Sélectionnez un Server et un groupe de serveurs sous Server.
Dans cet exemple, le groupe de serveurs RS01 créé lors de l'Étape 1 : Créer un groupe de serveurs est sélectionné.
-
Sous l'onglet Listener, cliquez sur Quick Create Listener. Dans la boîte de dialogue Quick Create Listener, configurez les paramètres suivants pour créer un listener TCP sur le port 81, puis cliquez sur OK.
Configuration du listener
Description
Listener Protocol
Sélectionnez un protocole de listener. Dans cet exemple, TCP est sélectionné.
Listener Port
Saisissez un port de listener. Dans cet exemple, le port 81 est utilisé.
Server Group
Sélectionnez le Server et le groupe de serveurs backend sous Server.
Dans cet exemple, le groupe de serveurs RS01 créé lors de l'Étape 1 : Créer un groupe de serveurs est sélectionné.
-
Vérifiez l'accessibilité de l'instance NLB avant son association à un groupe de sécurité.
Connectez-vous à un client Linux disposant d'un accès Internet. Si vous utilisez un système CentOS et que Telnet n'est pas installé, exécutez la commande
yum install -y telnetpour l'installer.-
Exécutez la commande
telnet <domain_name> 80pour tester si le client peut accéder au port TCP 80 de l'instance NLB.La réponse suivante indique que la connexion a réussi.
Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.Saisissez le nom de domaine et le numéro de port, par exemple
http://<domain_name>:80, dans votre navigateur. Une page similaire à celle illustrée ci-dessous confirme que l'instance NLB transfère correctement les requêtes aux serveurs backend.
-
Exécutez la commande
telnet <domain_name> 81pour tester si le client peut accéder au port TCP 81 de l'instance NLB.Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.Saisissez le nom de domaine et le numéro de port, par exemple
http://<domain_name>:81, dans votre navigateur. Une page similaire à celle illustrée ci-dessous confirme que l'instance NLB transfère correctement les requêtes aux serveurs backend.
Les résultats du test montrent que lorsque l'instance NLB n'est associée à aucun groupe de sécurité, les clients peuvent accéder aussi bien au listener TCP sur le port 80 qu'au listener TCP sur le port 81.
Étape 3 : Créer un groupe de sécurité
Avant d'ajouter une instance NLB à un groupe de sécurité, vous devez d'abord créer ce groupe dans la console ECS.
Connectez-vous à la console ECS.
Dans le volet de navigation de gauche, sous Network & Security, cliquez sur Security Groups.
Dans la barre de navigation supérieure, sélectionnez la région où vous souhaitez créer le groupe de sécurité. Dans cet exemple, China (Hangzhou) est sélectionné.
Sur la page Security Groups, cliquez sur Create Security Group.
-
Sur la page Create Security Group, configurez les paramètres de la section Basic Information.
Cette section décrit uniquement les paramètres pertinents pour cette rubrique. Pour plus d'informations sur les autres paramètres, consultez Créer un groupe de sécurité.
Network : Dans cet exemple, le VPC nommé VPC1 est sélectionné.
Security Group Type : Dans cet exemple, Basic Security Group est sélectionné.
-
Sur la page Create Security Group, configurez les paramètres de la section Rules.
Cliquez sur Add Rule. Sur la page Create Security Group Rule, ajoutez une règle entrante pour refuser l'accès au port 81 en fonction des paramètres suivants. Ajoutez ensuite une seconde règle entrante pour autoriser l'accès au port 80 avec la même priorité. Cliquez sur Submit.
Paramètre
Description
Traffic Direction
Sélectionnez Inbound.
Action
Sélectionnez Deny.
Priority
Conservez la valeur par défaut 1.
Protocol
Sélectionnez Custom TCP.
Source
Sélectionnez
0.0.0.0/0.Port Range
Saisissez le numéro de port 81.
Description
Saisissez une description pour la règle du groupe de sécurité.
Étape 4 : Associer l'instance NLB et vérifier
Associez l'instance NLB au groupe de sécurité créé lors de l'Étape 3 : Créer un groupe de sécurité, puis vérifiez que les règles du groupe de sécurité s'appliquent correctement à l'instance NLB.
Connectez-vous à la console NLB.
Dans la barre de navigation supérieure, sélectionnez la région où l'instance NLB est déployée. Dans cet exemple, China (Hangzhou) est sélectionné.
Sur la page NLB Instances, localisez l'instance NLB créée lors de l'Étape 2 : Créer une instance NLB et configurer des écouteurs, puis cliquez sur l'ID de l'instance. Sous l'onglet Instance Details, cliquez sur l'onglet Security Groups.
Sous l'onglet Security Groups, cliquez sur Create Security Group. Dans la boîte de dialogue Add NLB Instance to Security Group, sélectionnez le groupe de sécurité créé lors de l'Étape 3 : Créer un groupe de sécurité, puis cliquez sur OK.
-
Dans la liste de gauche, cliquez sur l'ID du groupe de sécurité cible. Cliquez ensuite sur l'onglet Inbound ou Outbound pour consulter les règles du groupe de sécurité.
Seules les règles entrantes pertinentes du groupe de sécurité sont affichées ici. Les règles du groupe de sécurité associé à l'instance NLB sont les suivantes :
Action
Priorité
Type de protocole
Plage de ports
Source
Allow
1
Custom TCP
Destination: 80/80Source: 0.0.0.0/0Deny
1
Custom TCP
Destination: 81/81Source: 0.0.0.0/0 -
Vérifiez les résultats d'accès après avoir associé l'instance NLB au groupe de sécurité.
Connectez-vous à un client Linux disposant d'un accès Internet.
-
Exécutez la commande
telnet <domain_name> 80pour tester si le client peut accéder à l'écouteur TCP sur le port 80 de l'instance NLB.La réponse suivante indique que la connexion a réussi.
Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'.Saisissez le nom de domaine et le numéro de port, par exemple
http://<domain_name>:80, dans votre navigateur. Une page similaire à celle illustrée dans la figure suivante indique que l'instance NLB peut transférer les requêtes vers les serveurs back-end.
-
Exécutez la commande
telnet <domain_name> 81pour tester si le client peut accéder à l'écouteur TCP sur le port 81 de l'instance NLB.Si vous recevez un message de réponse comme indiqué ci-dessous, cela signifie que le client ne peut pas accéder au port 81 de l'écouteur TCP de l'instance NLB. Cela confirme également que le groupe de sécurité auquel l'instance NLB est ajoutée applique bien le contrôle d'accès sur l'instance NLB.
Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed out Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed outSaisissez le nom de domaine et le numéro de port dans votre navigateur, par exemple
http://domain_name:81. Si la page web est inaccessible, cela indique que les clients ne peuvent pas accéder au port 81 de l'écouteur TCP de l'instance NLB, et que le contrôle d'accès du groupe de sécurité auquel l'instance NLB est ajoutée a pris effet sur l'instance NLB.
Étape 5 : Modifier le groupe de sécurité et vérifier
Modifiez les règles du groupe de sécurité et vérifiez que les règles mises à jour pour l'instance NLB sont effectives.
Retournez sur la page NLB Instances, localisez l'instance NLB créée lors de l'Étape 2 : Créer une instance NLB et configurer des écouteurs, puis cliquez sur l'ID de l'instance. Sous l'onglet Instance Details, cliquez sur l'onglet Security Groups.
Sous l'onglet Security Groups, cliquez sur ECS Console.
-
Sur la page Security Group Details, localisez la règle qui autorise l'accès au port TCP 80. Dans la colonne Actions, cliquez sur Edit, puis changez l'Action en Deny.
Seules les règles pertinentes du groupe de sécurité sont affichées ici. Les règles modifiées du groupe de sécurité sont les suivantes :
Action
Priorité
Type de protocole
Plage de ports
Source
Deny
1
Custom TCP
Destination: 80/80Source: 0.0.0.0/0Deny
1
Custom TCP
Destination: 81/81Source: 0.0.0.0/0ImportantAprès la modification ou l'ajout de règles de groupe de sécurité, le système peut ajouter automatiquement des règles de groupe de sécurité à haute priorité, telles que des règles Allow pour tout le trafic All TCP provenant de 192.168.0.0/16 avec une Priority 1. Ces règles générées par le système ont une priorité supérieure aux règles définies par l'utilisateur et peuvent remplacer vos règles Deny configurées manuellement.
Avant de vérifier les résultats du contrôle d'accès, nous vous recommandons de vérifier les règles du groupe de sécurité et de supprimer ou d'ajuster toute règle générée par le système susceptible d'entrer en conflit avec vos politiques de contrôle d'accès prévues.
-
Vérifiez les résultats d'accès après avoir modifié les règles du groupe de sécurité pour l'instance NLB.
Connectez-vous à un client Linux disposant d'un accès Internet.
-
Exécutez la commande
telnet <domain_name> 80pour tester si le client peut accéder à l'écouteur TCP sur le port 80 de l'instance NLB.Un message de réponse comme indiqué ci-dessous signifie que le client ne peut pas accéder au port 80 de l'écouteur TCP de l'instance NLB. Cela confirme que le contrôle d'accès de la règle modifiée du groupe de sécurité pour l'instance NLB a pris effet.
Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed out Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed outSaisissez le nom de domaine et le numéro de port dans un navigateur, par exemple
http://domain_name:80. Si la page web est inaccessible, cela indique que le client ne peut pas accéder au port 80 de l'écouteur TCP de l'instance NLB et que le contrôle d'accès du groupe de sécurité auquel l'instance NLB est ajoutée a pris effet sur l'instance NLB. -
Exécutez la commande
telnet <domain_name> 81pour tester si le client peut accéder à l'écouteur TCP sur le port 81 de l'instance NLB.Si vous recevez le message de réponse indiqué ci-dessous, cela signifie que le client ne peut pas accéder au port 81 de l'écouteur TCP de l'instance NLB et que la règle modifiée du groupe de sécurité pour le contrôle d'accès sur l'instance NLB a pris effet.
Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed out Trying *.*.*.*... telnet: connect to address *.*.*.*: Connection timed outSaisissez le nom de domaine et le numéro de port dans votre navigateur, par exemple
http://domain_name:81. Si la page web est inaccessible, cela indique que le client ne peut pas accéder au port 81 de l'écouteur TCP de l'instance NLB, et que le contrôle d'accès du groupe de sécurité pour l'instance NLB a pris effet sur l'instance NLB.
Rubriques connexes
Pour savoir comment associer une instance NLB à un groupe de sécurité ou l'en dissocier, consultez Associer une instance NLB à un groupe de sécurité.
Pour autoriser ou refuser l'accès depuis des adresses IP spécifiques à une instance NLB, consultez Utiliser des groupes de sécurité comme listes d'autorisation ou de blocage.
Pour plus d'informations sur les groupes de sécurité, consultez Groupes de sécurité.
LoadBalancerJoinSecurityGroup : Associe un groupe de sécurité à une instance NLB.
LoadBalancerLeaveSecurityGroup : Dissocie un groupe de sécurité d'une instance NLB.