Pour contrôler l'accès à une instance Application Load Balancer (ALB), configurez un groupe de sécurité. Contrairement aux listes de contrôle d'accès (ACL), les groupes de sécurité ALB prennent en charge le contrôle d'accès par protocole et par port, et fournissent des politiques de contrôle d'accès pour les adresses IPv6.
Scénarios
Si une instance ALB n'est associée à aucun groupe de sécurité, ses ports d'écouteur autorisent toutes les requêtes entrantes par défaut.
-
Lorsqu'une instance ALB est associée à un groupe de sécurité mais qu'aucune politique de refus n'est configurée, les ports de l'ALB écouteur autorisent toutes les requêtes entrantes par défaut. Pour autoriser l'accès uniquement depuis des adresses IP spécifiques, ajoutez une politique de refus en tant que règle de dernier recours.
Pour refuser ou autoriser l'accès à une instance ALB depuis des adresses IP spécifiques, consultez la rubrique Utiliser des groupes de sécurité comme listes noires et listes blanches.
Pour implémenter un contrôle d'accès basé sur le protocole ou le port pour une instance ALB, consultez la rubrique Implémenter un contrôle d'accès au niveau du port avec des groupes de sécurité.
Si votre instance ALB nécessite un contrôle d'accès et que vous souhaitez contrôler le trafic entrant de l'instance ALB, vous pouvez ajouter un groupe de sécurité à l'instance ALB et configurer les règles de groupe de sécurité correspondantes en fonction de vos besoins métier.
Le trafic sortant d'un équilibreur de charge est constitué des réponses aux requêtes des clients. Pour garantir le bon fonctionnement des activités, le groupe de sécurité d'une instance ALB ne restreint pas le trafic sortant. Vous n'avez pas besoin de configurer de règles sortantes pour le groupe de sécurité.
-
Après la création d'une instance ALB, le système génère automatiquement des groupes de sécurité gérés dans le VPC de l'instance. Ce groupe de sécurité est géré par l'instance ALB et vous disposez uniquement d'autorisations en lecture seule. Le groupe de sécurité géré par ALB inclut les règles de groupe de sécurité suivantes :
-
Une règle avec une priorité de 1 : Par défaut, elle autorise le trafic depuis l'adresse IP locale, qui est utilisée pour la communication avec les serveurs backend.
Lors de l'ajout de règles de groupe de sécurité, n'ajoutez pas de politique de refus avec une priorité de 1 pour l'adresse IP locale de l'instance ALB. Cela entrerait en conflit avec la politique du groupe de sécurité géré et perturberait la communication entre l'instance ALB et vos serveurs backend. Vous pouvez trouver l'adresse IP locale sur la page des détails de l'instance dans la console Application Load Balancer (ALB).
-
Une règle avec une priorité de 100 : Par défaut, elle autorise le trafic depuis toutes les adresses IP.
Les groupes de sécurité basiques et avancés (non visibles) d'un groupe de sécurité basique ou entreprise incluent une règle qui refuse tout autre trafic. Toutefois, la règle d'autorisation par défaut du groupe de sécurité géré est prioritaire.
Pour les instances ALB Extensible Edition, le groupe de sécurité géré inclut deux règles supplémentaires avec une priorité de 1 qui refusent l'accès client depuis les blocs CIDR
33.0.0.0/8et22.0.0.0/16.
-
Les trois scénarios suivants décrivent comment un groupe de sécurité contrôle l'accès aux ports pour une instance ALB associée. Dans ces exemples, l'instance ALB dispose d'un écouteur HTTP sur le port 80 et d'un autre sur le port 81.
|
Scénario |
Règle de groupe de sécurité |
Résultat attendu |
Lien connexe |
|
L'instance ALB n'est associée à aucun groupe de sécurité. |
Les ports de l'écouteur ALB autorisent toutes les requêtes entrantes par défaut. |
|
Étape 5 : Ne pas associer l'instance ALB à un groupe de sécurité et vérifier le résultat |
|
L'instance ALB est associée à un groupe de sécurité. |
Refuser l'accès au port HTTP 81. Remarque
Seules les règles de groupe de sécurité pertinentes sont répertoriées ; les autres règles par défaut sont omises. |
|
Étape 6 : Associer l'instance ALB à un groupe de sécurité et vérifier le résultat |
|
Modifier le groupe de sécurité associé à l'instance ALB. |
Remarque
Seules les règles de groupe de sécurité pertinentes sont répertoriées ; les autres règles par défaut sont omises. |
|
Étape 7 : Modifier le groupe de sécurité et vérifier le résultat |
Limites
Vous pouvez gérer le trafic d'accès pour la mise à niveau de l'instance ALB avec des groupes de sécurité ou des listes de contrôle d'accès (ACL). Les anciennes instances ALB prennent en charge le contrôle d'accès uniquement avec des ACL. Si vous devez utiliser des groupes de sécurité, créez une nouvelle instance ou contactez votre gestionnaire de compte pour demander une mise à niveau d'une instance existante.
|
Catégorie |
Type de groupe de sécurité |
Description |
|
ALB - Groupes de sécurité pris en charge |
|
Pour plus d'informations sur les groupes de sécurité basiques et avancés, consultez la rubrique Groupes de sécurité basiques et avancés. |
|
ALB - Groupes de sécurité non pris en charge |
groupe de sécurité géré |
Pour plus d'informations sur les groupes de sécurité gérés, consultez la rubrique Groupes de sécurité gérés. |
Prérequis
Vous avez créé un Virtual Private Cloud (VPC) nommé VPC1. Pour plus d'informations, consultez la rubrique Créer et gérer un VPC.
-
Vous avez créé deux instances Elastic Compute Service (ECS), ECS01 et ECS02, dans VPC1. Ces instances servent de serveurs backend pour une instance Application Load Balancer (ALB), et vous avez déployé une application différente sur chacune d'elles.
-
Pour créer une instance ECS, consultez la rubrique Créer une instance à l'aide de l'onglet de lancement personnalisé.
Pour tester le contrôle d'accès d'un groupe de sécurité pour le trafic IPv6, assurez-vous que ECS01 et ECS02 prennent en charge la communication IPv6.
-
L'exemple suivant montre comment déployer les applications de test sur ECS01 et ECS02 :
-
Vous avez enregistré un nom de domaine et effectué la déclaration ICP requise. Pour plus d'informations, consultez les rubriques Enregistrer un nom de domaine Alibaba Cloud et Déclaration ICP.
Étapes
Étape 1 : Créer un groupe de serveurs
Connectez-vous à la console ALB.
Dans la barre de navigation supérieure, sélectionnez une région. Cette rubrique utilise Chine (Hangzhou) à titre d'exemple.
Dans le volet de navigation de gauche, choisissez .
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 clés. Acceptez les valeurs par défaut pour les autres. Pour plus d'informations, consultez la rubrique Créer et gérer des groupes de serveurs.
Paramètre
Description
Server Group Type
Sélectionnez Server.
Server Group Name
Saisissez un nom pour le groupe de serveurs.
VPC
Sélectionnez VPC1.
Backend Protocol
Sélectionnez HTTP.
Scheduling Algorithm
Sélectionnez Weighted Round-robin.
Dans la boîte de dialogue The server group is created, cliquez sur Add Backend Server.
Sous l'onglet Backend Servers, cliquez sur Add Backend Server.
Dans le panneau Add Backend Server, sélectionnez les instances ECS01 et ECS02, puis cliquez sur Next.
Définissez les ports et les poids pour les serveurs backend, puis cliquez sur OK.
Étape 2 : Créer une instance ALB et des écouteurs
Connectez-vous à la console ALB.
Sur la page Instances, cliquez sur Create ALB.
-
Sur la page d'achat, configurez les paramètres suivants.
Ce tutoriel décrit uniquement les paramètres pertinents. Laissez tous les autres paramètres avec leurs valeurs par défaut. Pour plus d'informations sur les paramètres, consultez la rubrique Créer et gérer des instances ALB.
Region : Sélectionnez Chine (Hangzhou).
Network Type : Sélectionnez Public.
VPC : Sélectionnez le VPC1 que vous avez créé.
IP Version : La valeur par défaut est IPv4. Sélectionnez Dual-stack pour permettre aux clients d'accéder à l'instance à l'aide d'adresses IPv4 et IPv6.
Cliquez sur Buy Now et suivez les instructions à l'écran pour finaliser l'achat.
Revenez à la page Instances, recherchez l'instance ALB que vous avez créée et cliquez sur son ID.
Cliquez sur l'onglet Listener, puis cliquez sur Quick Create Listener.
-
Dans la boîte de dialogue Quick Create Listener, configurez les paramètres suivants pour créer un écouteur HTTP sur le port 80, puis cliquez sur OK.
Paramètre
Description
Listener Protocol
Protocole utilisé par l'écouteur. Pour ce tutoriel, sélectionnez HTTP.
Listener Port
Port utilisé par l'écouteur. Pour ce tutoriel, saisissez 80.
Server Group
Sélectionnez le Server que vous avez créé.
Sous l'onglet Listener, cliquez à nouveau sur Quick Create Listener.
-
Dans la boîte de dialogue Quick Create Listener, configurez les paramètres suivants pour créer un écouteur HTTP sur le port 81, puis cliquez sur OK.
Paramètre
Description
Listener Protocol
Protocole utilisé par l'écouteur. Pour ce tutoriel, sélectionnez HTTP.
Listener Port
Port utilisé par l'écouteur. Pour ce tutoriel, saisissez 81.
Server Group
Sélectionnez le Server que vous avez créé.
Étape 3 : Configurer la résolution de nom de domaine
Pour la production, nous recommandons de mapper un nom de domaine personnalisé au nom de domaine de l'instance ALB en créant un enregistrement CNAME.
Dans le volet de navigation de gauche, choisissez .
Sur la page Instances, copiez le nom DNS de l'instance ALB créée.
-
Suivez ces étapes pour ajouter un enregistrement CNAME.
RemarqueSi votre nom de domaine est enregistré auprès d'un fournisseur autre qu'Alibaba Cloud, vous devez ajouter le nom de domaine à la console Alibaba Cloud DNS avant de pouvoir configurer la résolution DNS. Pour plus d'informations, consultez la rubrique Gérer les noms de domaine. Si votre nom de domaine est enregistré auprès d'Alibaba Cloud, procédez aux étapes suivantes.
Connectez-vous à la console Alibaba Cloud DNS.
Sur la page Public Zone, recherchez le nom de domaine cible et cliquez sur Settings dans la colonne Operations.
Sur la page Settings, cliquez sur Add Record.
-
Dans le panneau Add Record, configurez l'enregistrement CNAME en définissant les paramètres suivants, puis cliquez sur OK.
Paramètre
Description
Record Type
Sélectionnez CNAME dans la liste déroulante.
Hostname
Le préfixe de votre nom de domaine. Ce tutoriel utilise @.
RemarquePour utiliser un domaine racine, définissez le nom d'hôte sur
@.Query Source
Sélectionnez Par défaut.
Record Value
Saisissez le nom DNS de l'instance ALB que vous avez copié.
TTL
La durée de vie (TTL) correspond à la durée pendant laquelle un enregistrement DNS est mis en cache sur un serveur DNS. Utilisez la valeur par défaut.
Étape 4 : Créer un groupe de sécurité
Pour ajouter une instance ALB à un groupe de sécurité, vous devez d'abord créer le groupe de sécurité dans la console ECS.
Connectez-vous à la console ECS.
Dans le volet de navigation de gauche, choisissez Réseau et sécurité > Groupes de sécurité.
Dans la barre de navigation supérieure, sélectionnez une région. Cette rubrique utilise Chine (Hangzhou) à titre d'exemple.
Sur la page Groupes de sécurité, cliquez sur Créer un groupe de sécurité.
-
Sur la page Créer un groupe de sécurité, configurez les paramètres de la section Informations de base.
Cette rubrique répertorie uniquement les paramètres pertinents. Pour plus d'informations sur les autres paramètres, consultez la rubrique Créer un groupe de sécurité.
Réseau : Sélectionnez le VPC que vous avez créé.
Type de groupe de sécurité : Sélectionnez groupe de sécurité basique.
-
Configurez les paramètres de règle d'accès pour le nouveau groupe de sécurité.
Sous l'onglet Entrant, cliquez deux fois sur Ajouter une règle de groupe de sécurité.
-
Ajoutez les règles du tableau suivant, puis cliquez sur Créer un groupe de sécurité.
Paramètre
Règle 1 : Refuser le trafic IPv4 et IPv6 vers le port 81
(Facultatif) Règle 2 : Autoriser le trafic IPv6 vers le port 80
Action
Sélectionnez Refuser.
Sélectionnez Autoriser.
Priorité
Conservez la valeur par défaut 1.
Type de protocole
Sélectionnez TCP personnalisé.
RemarqueLorsque vous configurez une règle de groupe de sécurité pour un écouteur QUIC, sélectionnez UDP personnalisé comme type de protocole.
Plage de ports
Saisissez le numéro de port 81.
Sélectionnez le numéro de port HTTP(80).
Source
Sélectionnez
Toutes les adresses IPv4 (0.0.0.0/0)etToutes les adresses IPv6 (::/0).Sélectionnez
Toutes les adresses IPv6 (::/0).Description
Saisissez une description pour la règle de groupe de sécurité.
Étape 5 : Vérifier la connectivité sans groupe de sécurité
Testez la connectivité entre votre client et les instances ECS01 et ECS02.
Cet exemple utilise un client disposant d'un accès à Internet public. Pour tester le contrôle d'accès du groupe de sécurité pour les adresses IPv6, assurez-vous que votre client prend en charge la communication IPv6 publique.
-
Ouvrez une fenêtre de ligne de commande et exécutez
curl -4 http://<custom_domain_name>:80. La sortie indique que les clients IPv4 peuvent accéder à l'instance ALB via HTTP sur le port 80.C:\Users\Administrator>curl -4 http://<custom_domain_name>:80 Hello World ! This is ECS02. -
Exécutez
curl -4 http://<custom_domain_name>:81. La sortie indique que les clients IPv4 peuvent accéder à l'instance ALB via HTTP sur le port 81.C:\Users\Administrator>curl -4 http://<custom_domain_name>:81 Hello World ! This is ECS01. -
(Facultatif) Exécutez
curl -6 http://<custom_domain_name>:80. La sortie indique que les clients IPv6 peuvent accéder à l'instance ALB via HTTP sur le port 80.C:\Users\Administrator>curl -6 http://<custom_domain_name>:80 Hello World ! This is ECS02. -
(Facultatif) Exécutez
curl -6 http://<custom_domain_name>:81. La sortie indique que les clients IPv6 peuvent accéder à l'instance ALB via HTTP sur le port 81.C:\Users\Administrator>curl -6 http://<custom_domain_name>:81 Hello World ! This is ECS01.
Étape 6 : Ajouter l'instance ALB à un groupe de sécurité et vérifier
Ajoutez l'instance ALB à un groupe de sécurité et vérifiez que ce dernier contrôle l'accès aux ports de l'instance ALB.
Connectez-vous à la console ALB.
Sur la page Instances, recherchez l'instance ALB cible et cliquez sur son ID. Sur la page des détails de l'instance, cliquez sur l'onglet Security Groups.
Dans l'onglet Security Groups, cliquez sur Create Security Group. Dans la boîte de dialogue Add ALB to Security Group, sélectionnez le groupe de sécurité que vous avez créé à l'étape Étape 4 : Créer un groupe de sécurité et cliquez sur OK.
-
Dans le volet de gauche, cliquez sur l'ID du groupe de sécurité cible. Cliquez sur l'onglet Inbound Policies ou Outbound Policies pour afficher les règles du groupe de sécurité.
Cette section répertorie uniquement les règles entrantes du groupe de sécurité pertinentes pour cette rubrique. Les règles pour l'instance ALB sont les suivantes :
Policy
Priority
Protocol
Destination
Source
Allow
1
Custom TCP
Destination: 80/80Source: All IPv4 (0.0.0.0/0)Allow
1
Custom TCP
Destination: 80/80Source: All IPv6 (::/0)Deny
1
Custom TCP
Destination: 81/81Source: All IPv4 (0.0.0.0/0)Deny
1
Custom TCP
Destination: 81/81Source: All IPv6 (::/0) -
Après avoir ajouté l'instance ALB au groupe de sécurité, testez l'accès à l'instance.
-
Depuis la ligne de commande du client, exécutez
curl -4 http://<custom_domain_name>:80. La sortie suivante indique que les clients IPv4 peuvent accéder à l'instance ALB via HTTP sur le port 80.C:\Users\Administrator>curl -4 http://<custom_domain_name>:80 Hello World ! This is ECS01. -
(Facultatif) Exécutez
curl -6 http://<custom_domain_name>:80. La sortie suivante indique que les clients IPv6 peuvent accéder à l'instance ALB via HTTP sur le port 80.C:\Users\Administrator>curl -6 http://<custom_domain_name>:80 Hello World ! This is ECS02. -
Exécutez
curl -4 http://<custom_domain_name>:81. La connexion échoue, ce qui confirme que la règle du groupe de sécurité refusant l'accès au port 81 est effective pour les clients IPv4.C:\Users\Administrator>curl -4 http://<custom_domain_name>:81 curl: (28) Failed to connect to <custom_domain_name> port 81 after 42076 ms: Could not connect to server -
(Facultatif) Exécutez
curl -6 http://<custom_domain_name>:81. La connexion échoue, ce qui confirme que la règle du groupe de sécurité refusant l'accès au port 81 est effective pour les clients IPv6.C:\Users\Administrator>curl -6 http://<custom_domain_name>:81 curl: (28) Failed to connect to <custom_domain_name> port 81 after 42121 ms: Could not connect to server
-
Étape 7 : Modifier et vérifier le groupe de sécurité
Modifiez les règles du groupe de sécurité et vérifiez qu'elles contrôlent l'accès aux ports de l'instance ALB.
Revenez à la page Instances de l'ALB, recherchez l'instance ALB cible et cliquez sur son ID d'instance. Dans l'onglet Instance Details, cliquez sur l'onglet Security Groups.
Dans la section Basic Information, cliquez sur l'ID du groupe de sécurité. Vous pouvez également cliquer sur ECS Console dans le coin supérieur droit de l'onglet Security Groups pour ouvrir la page Security Group Rules et modifier les règles.
-
Sur la page Security Group Rules, recherchez la règle qui autorise l'accès au port TCP 80. Dans la colonne Actions, cliquez sur Modify Security Group Rule. Définissez l'Action sur Deny, puis cliquez sur Save.
Le tableau suivant répertorie les règles mises à jour du groupe de sécurité pertinentes pour cette rubrique.
Policy
Priority
Protocol
Port range
Source
Deny
1
Custom TCP
Destination: 80/80Source: All IPv4 (0.0.0.0/0)Deny
1
Custom TCP
Destination: 80/80Source: All IPv6 (::/0)Deny
1
Custom TCP
Destination: 81/81Source: All IPv4 (0.0.0.0/0)Deny
1
Custom TCP
Destination: 81/81Source: All IPv6 (::/0) -
Après avoir modifié les règles du groupe de sécurité pour l'instance ALB, testez l'accès.
-
Dans la fenêtre de ligne de commande de votre client, exécutez la commande
curl -4 http://<custom_domain_name>:80. La sortie suivante indique que les clients IPv4 ne peuvent pas accéder au port 80 via HTTP, ce qui confirme que la règle du groupe de sécurité pour le port 80 fonctionne.C:\Users\Administrator>curl -4 http://<custom_domain_name>:80 curl: (28) Failed to connect to <custom_domain_name> port 80 after 42020 ms: Could not connect to server -
(Facultatif) Exécutez la commande
curl -6 http://<custom_domain_name>:80. La sortie suivante indique que les clients IPv6 ne peuvent pas accéder au port 80 via HTTP, ce qui confirme que la règle du groupe de sécurité pour le port 80 fonctionne.C:\Users\Administrator>curl -6 http://<custom_domain_name>:80 curl: (28) Failed to connect to <custom_domain_name> port 80 after 42077 ms: Could not connect to server -
Exécutez la commande
curl -4 http://<custom_domain_name>:81. La sortie suivante indique que les clients IPv4 ne peuvent pas accéder au port 81 via HTTP, ce qui confirme que la règle du groupe de sécurité pour le port 81 fonctionne.C:\Users\Administrator>curl -4 http://<custom_domain_name>:81 curl: (28) Failed to connect to <custom_domain_name> port 81 after 42095 ms: Could not connect to server -
(Facultatif) Exécutez la commande
curl -6 http://<custom_domain_name>:81. La sortie suivante indique que les clients IPv6 ne peuvent pas accéder au port 81 via HTTP, ce qui confirme que la règle du groupe de sécurité pour le port 81 fonctionne.C:\Users\Administrator>curl -6 http://<custom_domain_name>:81 curl: (28) Failed to connect to <custom_domain_name> port 81 after 42095 ms: Could not connect to server
-
Références
Console
Pour associer ou dissocier un groupe de sécurité d'une instance ALB, consultez la rubrique Associer une instance ALB à un groupe de sécurité.
Pour créer une liste d'autorisation ou une liste de blocage pour une instance ALB à l'aide d'un groupe de sécurité, consultez la rubrique Configurer un groupe de sécurité pour une instance ALB afin de mettre en œuvre une liste d'autorisation ou de blocage.
Pour plus d'informations sur les groupes de sécurité de base et les groupes de sécurité d'entreprise, consultez la rubrique Groupes de sécurité de base et groupes de sécurité d'entreprise.
API
LoadBalancerJoinSecurityGroup : Associe un groupe de sécurité à une instance Application Load Balancer.
LoadBalancerLeaveSecurityGroup : Dissocie un groupe de sécurité d'une instance Application Load Balancer.