Pour renforcer la sécurité de votre environnement cloud, vous pouvez contrôler l'accès à vos instances NLB en fonction du protocole, du port ou de l'adresse IP grâce aux 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 à l'échelle de l'instance, basé sur le protocole et le port. Cette rubrique explique comment configurer des groupes de sécurité afin de contrôler l'accès aux écouteurs individuels d'une instance NLB.
Scénarios
Si une instance NLB n'est associée à aucun groupe de sécurité, tout le trafic vers les ports des écouteurs NLB est autorisé par défaut.
Si une instance NLB est associée à un groupe de sécurité mais qu'aucune règle de refus n'est configurée, tout le trafic vers les ports des écouteurs NLB est autorisé par défaut. Si vous souhaitez autoriser uniquement certaines adresses IP à accéder à l'instance NLB, veillez à ajouter une règle de refus par défaut.
Pour contrôler le trafic entrant vers votre instance NLB, associez-lui des groupes de sécurité et configurez les règles de ces groupes selon vos besoins métier.
Le trafic sortant de l'équilibreur de charge se compose des paquets de réponse aux requêtes des clients. Afin de garantir le bon fonctionnement de vos activités, le groupe de sécurité du NLB ne restreint pas le trafic sortant. Vous n'avez pas besoin de configurer de règles sortantes pour ce groupe de sécurité.
-
Après la création d'une instance NLB, le système crée automatiquement un groupe de sécurité géré dans le VPC où réside l'instance. Ce groupe de sécurité géré est contrôlé par l'instance NLB et vous disposez d'un accès en lecture seule. Le groupe de sécurité géré inclut les deux types de règles suivants :
-
Règle de priorité 1 : autorise par défaut le trafic provenant de l'adresse IP locale de l'instance pour permettre la communication avec les serveurs backend et les vérifications d'état.
Lorsque vous ajoutez des règles de groupe de sécurité, évitez d'ajouter des règles de refus avec la priorité 1 pour l'adresse IP locale du NLB. De telles règles pourraient entrer en conflit avec les politiques du groupe de sécurité géré et affecter la communication entre le NLB et vos services backend. Connectez-vous à la console NLB et consultez l'adresse IP locale sur la page des détails de l'instance.
-
Règle de priorité 100 : autorise par défaut le trafic provenant de toutes les adresses IP. Cela signifie que si une instance NLB est associée à un groupe de sécurité mais qu'aucune règle de refus n'est configurée, tout le trafic vers les ports des écouteurs NLB est autorisé.
Les règles implicites d'un groupe de sécurité basique ou avancé contiennent une règle qui refuse tout autre trafic. Dans ce cas, la règle d'autorisation par défaut du groupe de sécurité géré du NLB est prioritaire.
-
Cette rubrique présente trois scénarios illustrant comment contrôler l'accès à une instance NLB à l'aide d'un groupe de sécurité. Les exemples utilisent une instance NLB configurée avec un écouteur TCP sur le port 80 et un autre 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 écouteurs NLB autorisent tout le trafic. | Cet exemple utilise une instance NLB avec des écouteurs TCP sur les ports 80 et 81.
| Étape 2 : Créer une instance NLB et configurer les écouteurs |
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 répertorié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 répertorié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é |
|
Même VPC 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 |
|
Types mixtes non autorisés |
Tous les groupes de sécurité associés à une instance NLB doivent être du même type. Pour passer d'un type basique à un type avancé, retirez d'abord l'instance NLB du groupe de sécurité basique. Pour passer d'un type avancé à un type basique, retirez d'abord l'instance NLB du groupe de sécurité avancé |
|
Calcul du quota |
Emplacements de groupe de sécurité disponibles = Quota de groupes de sécurité ENI pour ECS − 1 (réservé pour le groupe de sécurité géré) |
|
Quota de règles de groupe de sécurité |
Emplacements de règles disponibles = 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 héritées |
Les instances NLB créées avant le 30 septembre 2022 (pendant l'aperçu public) ne peuvent pas être ajoutées aux 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 la section Groupes de sécurité basiques et avancés.
Prérequis
Vous avez créé un VPC nommé VPC1. Pour plus d'informations, consultez la section 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 les deux instances ECS.
Pour plus d'informations sur la création d'une instance ECS, consultez la section Créer une instance à l'aide de l'assistant.
-
Cette rubrique utilise les déploiements d'applications d'exemple suivants sur ECS01 et ECS02 :
Vous avez enregistré un nom de domaine, effectué la déclaration 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 la section 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 écouteurs
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 la section 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é.
Revenez à la page Instances, recherchez l'instance NLB créée et cliquez sur l'ID de l'instance NLB.
-
Cliquez sur l'onglet Listener. Sur 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 écouteur TCP sur le port 80, puis cliquez sur OK.
Configuration de l'écouteur
Description
Listener Protocol
Sélectionnez un protocole d'écouteur. Dans cet exemple, TCP est sélectionné.
Listener Port
Saisissez un port d'écouteur. 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 que vous avez créé à l'Étape 1 : Créer un groupe de serveurs est sélectionné.
-
Sur 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 écouteur TCP sur le port 81, puis cliquez sur OK.
Configuration de l'écouteur
Description
Listener Protocol
Sélectionnez un protocole d'écouteur. Dans cet exemple, TCP est sélectionné.
Listener Port
Saisissez un port d'écouteur. 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 que vous avez créé à l'Étape 1 : Créer un groupe de serveurs est sélectionné.
-
Vérifiez l'accessibilité de l'instance NLB avant de l'associer à 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é, vous pouvez exécuter 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 dans la figure suivante indique que l'instance NLB peut transférer les requêtes vers les serveurs backend.Hello World ! this is ECS01. -
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 dans la figure suivante indique que l'instance NLB peut transférer les requêtes vers les serveurs backend.Hello World ! this is ECS01. 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 à la fois à l'écouteur TCP sur le port 80 et à l'écouteur 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 un groupe de sécurité 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 la section 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. Ensuite, ajoutez une deuxième 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 de groupe de sécurité.
Étape 4 : Associer l'instance NLB et vérifier
Associez l'instance NLB au groupe de sécurité que vous avez créé à l'Étape 3 : Créer un groupe de sécurité et vérifiez que les règles du groupe de sécurité s'appliquent à 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, recherchez l'instance NLB créée à l'Étape 2 : Créer une instance NLB et configurer les écouteurs et cliquez sur l'ID de l'instance. Sur l'onglet Instance Details, cliquez sur l'onglet Security Groups.
Sur 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éé à 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. Vous pouvez ensuite cliquer sur l'onglet Inbound ou Outbound pour afficher 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
Priority
Protocol type
Port range
Source
Autoriser
1
Custom TCP
Destination: 80/80Source: 0.0.0.0/0Refuser
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 backend.Hello World ! this is ECS01. -
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 signifie également que le groupe de sécurité auquel l'instance NLB est ajoutée applique 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.
Revenez à la page NLB Instances, recherchez l'instance NLB créée à l'Étape 2 : Créer une instance NLB et configurer les écouteurs et cliquez sur l'ID de l'instance. Sur l'onglet Instance Details, cliquez sur l'onglet Security Groups.
Sur l'onglet Security Groups, cliquez sur ECS Console.
-
Sur la page Security Group Details, recherchez la règle qui autorise l'accès au port TCP 80. Dans la colonne Actions, cliquez sur Edit et 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
Priority
Protocol type
Port range
Source
Refuser
1
Custom TCP
Destination: 80/80Source: 0.0.0.0/0Refuser
1
Custom TCP
Destination: 81/81Source: 0.0.0.0/0ImportantAprès avoir modifié ou ajouté des 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 le trafic All TCP provenant de 192.168.0.0/16 avec la Priority 1. Ces règles générées par le système ont une priorité plus élevée que les 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 consulter les règles du groupe de sécurité et de supprimer ou d'ajuster toutes les règles générées par le système qui pourraient 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 indique 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 ou dissocier une instance NLB d'un groupe de sécurité, consultez la section Associer une instance NLB à un groupe de sécurité.
Pour autoriser ou refuser l'accès à une instance NLB depuis des adresses IP spécifiques, consultez la section Utiliser des groupes de sécurité comme listes d'autorisation ou de blocage.
Pour plus d'informations sur les groupes de sécurité, consultez la section 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.