Le contrôle d'accès ALB offre un filtrage granulaire des requêtes clientes en utilisant des listes blanches et noires d'adresses IP sur les écouteurs. Créez une liste de contrôle d'accès (ACL), ajoutez-y des entrées IP, puis associez l'ACL à un écouteur pour autoriser ou refuser le trafic provenant de sources spécifiques.
L'édition Extensible d'ALB ne prend pas en charge le contrôle d'accès.
ACL par rapport aux groupes de sécurité
ALB propose deux méthodes de contrôle d'accès : les listes de contrôle d'accès (ACL) et les groupes de sécurité.
|
Élément |
ACL |
Groupe de sécurité ALB |
|
Granularité du contrôle |
Basé sur l'adresse IP source. S'applique à des écouteurs individuels. |
Basé sur l'adresse IP source, le protocole et le port. S'applique à l'ensemble de l'instance ALB. |
|
Prise en charge d'IPv6 |
Non prise en charge. Vous ne pouvez ajouter que des entrées IPv4. |
Prend en charge les adresses IPv4 et IPv6. |
|
Comportement par défaut |
En mode liste blanche, les requêtes provenant d'adresses IP absentes de l'ACL sont refusées. En mode liste noire, les requêtes provenant d'adresses IP absentes de l'ACL sont autorisées. |
Autorise tout le trafic par défaut. Vous devez explicitement ajouter une règle de refus pour 0.0.0.0/0 afin de restreindre l'accès. |
|
Cas d'utilisation |
Utilisez cette méthode pour des listes blanches et noires d'adresses IP simples. La configuration est aisée et ne nécessite aucune compréhension de la priorité des règles. |
Scénarios nécessitant un contrôle au niveau des ports, la prise en charge d'IPv6 ou le contrôle ICMP. |
Prérequis
Vous avez créé une instance ALB et configuré un écouteur.
Créer une ACL
Une liste de contrôle d'accès (ACL) est une collection d'entrées IP. Une fois l'ACL créée et les entrées ajoutées, vous pouvez l'associer à un écouteur pour mettre en œuvre un contrôle d'accès par liste blanche ou liste noire.
Console
Accédez à la page Contrôle d'accès dans la console ALB. Dans la barre de navigation supérieure, sélectionnez la région où l'instance cible est déployée, puis cliquez sur Create ACL.
Dans la boîte de dialogue Create ACL, saisissez un nom pour l'ACL, puis cliquez sur OK.
-
Une fois l'ACL créée, sur la page Access Control, cliquez sur l'ID de l'ACL cible pour ouvrir sa page de détails. Dans l'onglet Entry, ajoutez des entrées IP selon l'une des méthodes suivantes :
Ajouter une seule entrée : Cliquez sur Add Entry. Dans la boîte de dialogue, saisissez un IP/CIDR Block et des Remarks, puis cliquez sur Add.
-
Ajouter des entrées par lots : Cliquez sur Add ACL Entries. Saisissez les entrées au format suivant :
Saisissez une entrée par ligne.
Utilisez une barre verticale (|) pour séparer l'adresse IP ou le bloc CIDR de ses remarques, par exemple 192.168.1.0/24|remarque-test.
Vous pouvez ajouter jusqu'à 20 entrées à la fois.
Si le lot contient une entrée déjà présente dans l'ACL, l'opération d'ajout par lots échoue. Supprimez les entrées en double et soumettez à nouveau le lot.
Après avoir ajouté des entrées, vous pouvez les supprimer ou les exporter depuis la liste des entrées.
API
Appelez CreateAcl pour créer une ACL.
Appelez AddEntriesToAcl pour ajouter des entrées IP.
Appelez RemoveEntriesFromAcl pour supprimer des entrées IP.
Activer ou désactiver le contrôle d'accès
Vous pouvez configurer une liste blanche ou une liste noire pour un écouteur :
Liste blanche : Autorise l'accès uniquement depuis les adresses IP présentes dans l'ACL et refuse toutes les autres requêtes.
Liste noire : Refuse l'accès depuis les adresses IP présentes dans l'ACL et autorise toutes les autres requêtes.
Que vous configuriez une liste blanche ou une liste noire, si l'ACL associée ne contient aucune entrée IP, le contrôle d'accès n'a aucun effet et l'écouteur transfère toutes les requêtes. Avant de configurer une liste blanche, assurez-vous que l'ACL contient bien les adresses IP que vous souhaitez autoriser afin d'éviter toute interruption de service.
Console
Accédez à la page Instances dans la console ALB. Dans la barre de navigation supérieure, sélectionnez la région où l'instance cible est déployée, puis cliquez sur l'ID de l'instance.
-
Dans l'onglet Listener, localisez l'écouteur cible. Dans la colonne Access Control, cliquez sur Enable ou Close.
Enable : Dans la boîte de dialogue, sélectionnez un Access Control Mode (Whitelist ou Blacklist) ainsi qu'une ACL, puis cliquez sur Save.
Close : Dans la boîte de dialogue de confirmation, cliquez sur OK.
Vous pouvez également activer ou désactiver le contrôle d'accès dans la section Access Control de la page de détails de l'écouteur.
API
Appelez AssociateAclsWithListener pour associer une ACL à un écouteur.
Appelez DissociateAclsFromListener pour dissocier une ACL d'un écouteur.
FAQ
La liste blanche n'a aucun effet
Cause : L'ACL n'est pas associée à l'écouteur ou l'ACL ne contient aucune entrée IP. Une ACL vide autorise tout le trafic.
Solution : Dans l'onglet Listener de l'instance ALB, vérifiez que la colonne Access Control de l'écouteur cible affiche Enabled. Vérifiez également que l'ACL associée contient des entrées IP.
Impossible d'ajouter 0.0.0.0/0 à la liste blanche
Cause : Les ACL ne prennent pas en charge l'ajout de l'entrée 0.0.0.0/0. La console signalera une erreur de format.
Solution : La méthode correcte consiste à désactiver le contrôle d'accès puis à le réactiver lorsque cela est nécessaire.
La liste noire n'a aucun effet
Cause : Les requêtes sont transmises à ALB via un CDN ou un WAF. L'adresse IP source visible par ALB est celle du CDN ou du WAF, et non l'adresse IP réelle du client.
Solution : Le contrôle d'accès ALB fonctionne au niveau de la couche 4 et fait correspondre l'adresse IP source figurant dans le paquet de requête. Lorsque les requêtes sont transférées par un proxy tel qu'un CDN ou un WAF, l'adresse IP source est celle du proxy. Par conséquent, une liste noire ALB ne peut pas bloquer l'adresse IP du client. Configurez la liste noire au niveau du WAF ou du CDN.
La liste noire ne peut pas bloquer l'adresse IP X-Forwarded-For
Cause : Le contrôle d'accès ALB fonctionne au niveau de la couche 4 et ne fait correspondre que l'adresse IP source du paquet de requête. Il n'analyse pas l'en-tête HTTP X-Forwarded-For de la couche 7.
Solution : Mettez en œuvre cette fonctionnalité en utilisant une règle personnalisée dans WAF. Définissez le Match Field sur X-Forwarded-For, l'Logical Operator sur Contains, le Match Content sur l'adresse IP cible et l'Rule Action sur Block. Pour plus d'informations, consultez la rubrique Configurer les conditions de correspondance pour une règle personnalisée.
Les règles allow/deny de NGINX backend n'ont aucun effet
Cause : Après le transfert du trafic via ALB, le serveur backend reçoit l'adresse IP locale de l'instance ALB (une adresse IP privée attribuée depuis le vSwitch où réside l'instance ALB) comme adresse IP source. Les règles allow/deny de NGINX se basent sur cette adresse IP source et ne peuvent donc pas faire correspondre l'adresse IP du client.
Solutions :
(Recommandé) Utilisez la fonctionnalité de contrôle d'accès ALB pour configurer directement une liste blanche ou noire d'adresses IP au niveau de la couche ALB.
Dans NGINX, obtenez l'adresse IP réelle du client à partir de l'en-tête de requête
X-Forwarded-For, puis configurez les règles allow/deny en fonction de l'adresse IP réelle.
Restreindre l'accès par domaine ou chemin
Description : Les ACL fonctionnent au niveau de l'écouteur et ne peuvent pas différencier les noms de domaine ou les chemins. Lorsqu'elles sont activées, une ACL affecte tous les domaines associés à l'écouteur.
Solution alternative : Pour les instances ALB Standard ou compatibles avec WAF, vous pouvez utiliser des règles de transfert. Dans la condition de transfert, configurez les conditions Domain Name/Path et SourceIp pour Return Fixed Response (par exemple 403) pour les requêtes correspondantes. La condition SourceIp d'une seule règle de transfert prend en charge jusqu'à cinq adresses IP ou blocs CIDR et ne prend pas en charge le format 0.0.0.0/x. Si vous disposez d'un grand nombre d'adresses IP ou utilisez une instance ALB Basic, nous vous recommandons d'utiliser WAF. Vous pouvez créer une règle personnalisée dans WAF pour combiner les conditions d'hôte/chemin et d'adresse IP pour le contrôle d'accès.
Bloquer les adresses IP provenant de pays étrangers
Description : Le contrôle d'accès ALB ne fournit pas de fonctionnalité de blocage géographique et ne peut pas identifier automatiquement le pays d'une adresse IP.
Solution alternative : Vous pouvez ajouter manuellement des plages d'adresses IP étrangères connues à une liste noire, mais cette méthode n'est pas mise à jour automatiquement et est soumise à des limites d'entrées. Nous vous recommandons d'utiliser la fonctionnalité de blocage géographique de WAF.
Contrôle d'accès dans les scénarios de proxy multicouches
Lorsqu'un proxy de couche 7 est déployé devant une instance ALB, la fonctionnalité de contrôle d'accès ALB, qui opère au niveau de la couche 4, ne peut voir que l'adresse IP source du proxy du saut précédent et ne peut pas identifier l'adresse IP réelle du client. Par conséquent, vous devez configurer le contrôle d'accès au bon niveau. Prenons l'exemple d'un scénario où WAF est connecté à l'aide d'un enregistrement CNAME (Client → CDN → WAF → ALB → ECS). L'adresse IP source et les recommandations de contrôle d'accès pour chaque niveau sont les suivantes.
Les instances ALB compatibles avec WAF utilisent un SDK pour la protection. WAF ne participe pas au transfert du trafic, il n'y a donc pas de saut d'adresse IP source WAF. Si aucun proxy de couche 7 tel qu'un CDN n'est déployé devant l'instance ALB, le problème décrit dans cette section ne s'applique pas.
|
Niveau |
Adresse IP source visible |
Recommandation de contrôle d'accès |
|
WAF |
|
Configurez les listes blanches et noires d'adresses IP à ce niveau. Lorsqu'elles sont correctement configurées, WAF bloque les requêtes en fonction de l'adresse IP réelle du client et prend également en charge le blocage géographique. |
|
ALB |
L'adresse IP source de WAF. |
Configurez une liste blanche sur l'instance ALB pour autoriser l'accès uniquement depuis les Plages d'adresses IP source de WAF. Cela empêche les attaquants de contourner WAF et d'accéder directement à l'adresse IP publique de l'instance ALB. Vous pouvez afficher les plages d'adresses IP source de WAF sur la page Gestion des accès de la console WAF. |
|
ECS backend |
L'adresse IP locale de l'instance ALB (une adresse IP privée attribuée depuis le vSwitch où réside l'instance ALB). |
Assurez-vous que le bloc CIDR d'adresse IP locale de l'instance ALB n'est pas bloqué par iptables ou d'autres logiciels de sécurité tiers sur les instances ECS backend. Sinon, les contrôles d'intégrité et le transfert des requêtes échoueront. |
Facturation
La fonctionnalité de contrôle d'accès est gratuite. Pour plus d'informations sur la facturation des instances ALB, consultez la rubrique Facturation ALB.
Quotas
|
Élément |
Édition |
Quota |
|
Nombre d'écouteurs pouvant être associés à une ACL |
Basic/Standard/Compatible avec WAF |
50 |
|
Nombre d'ACL pouvant être associées à un écouteur |
Basic/Standard/Compatible avec WAF |
3 |
|
Nombre d'ACL pouvant être créées dans une région |
Basic/Standard/Compatible avec WAF |
1000 |
|
Nombre d'entrées pouvant être ajoutées à une ACL |
Basic/Standard/Compatible avec WAF |
500 |
|
Nombre d'entrées ACL pouvant être associées à une instance ALB |
Basic/Standard/Compatible avec WAF |
800 |
|
Nombre d'entrées ACL pouvant être associées à un écouteur |
Basic |
300 |
|
Standard/Compatible avec WAF |
500 |
Ces quotas sont des limites strictes et ne peuvent pas être augmentés. Pour plus d'informations, consultez la rubrique Quotas et limites ALB.