Comment puis-je créer, répertorier ou mettre à jour des IPSets AWS WAF à l'aide de l'interface de ligne de commande AWS ?

Date de la dernière mise à jour : 22/01/2020

Comment puis-je créer, répertorier ou mettre à jour un IPSet dans AWS WAF à l'aide de l'interface de ligne de commande AWS (AWS CLI) ?

Brève description

Un IPSet spécifie les requêtes Web à autoriser ou à bloquer en fonction des adresses IP d'où proviennent les requêtes. Vous pouvez utiliser IPSet pour définir un ensemble d'adresses IP pour une liste de contrôle d'accès (ACL) Web à l'aide de l'interface de ligne de commande AWS (AWS CLI).

Résolution

Avant de continuer, assurez-vous d'avoir installé l'interface de ligne de commande AWS (AWS CLI) ou de passer à la dernière version.

Cette résolution utilise l'interface de ligne de commande waf-regional (version botocore 1.4.85 ou ultérieure) pour créer un IPSet dans une région AWS spécifique. Si vous créez un IPSet global dans Amazon CloudFront, vous pouvez utiliser l'interface de ligne de commande waf.

Important : lorsque vous utilisez la commande waf-regional , tâchez de vérifier la région par défaut de l'interface de ligne de commande AWS avant de continuer. Vérifiez aussi que la région est bien l'endroit où vous souhaitez créer l'IPSet. Sinon, vous devez spécifier la bonne région AWS pour l'IPSet (à l'aide de l'option -region ) dans vos commandes.

Création d'un IPSet

1.    Connectez-vous à l'interface de ligne de commande AWS (AWS CLI)

2.    Générez un jeton de modification à l'aide de la commande get-change-token.

Remarque : les jetons de modification empêchent votre application d'envoyer des demandes contradictoires à AWS WAF. Vous devez obtenir un jeton de modification et l'inclure dans toutes les demandes de création, de mise à jour ou de suppression d'objets AWS WAF. Chaque demande doit utiliser un jeton de modification unique. Pour plus d'informations, consultez GetChangeToken.

Exemple de sortie :

$ aws waf-regional get-change-token
{
    "ChangeToken": "96836241-b667-4f0a-a655-e4bc49eaa2c4"
}

3.    Créez un IPSet à l'aide de la commande create-ip-set. Exemple de sortie :

$ aws waf-regional create-ip-set --name test_ipset --change-token 96836241-b667-4f0a-a655-e4bc49eaa2c4
{
    "IPSet": {
        "IPSetId": " bd37ef8c-102b-4d7a-9532-80fb97e4c281",
        "Name": "test_ipset",
        "IPSetDescriptors": []
    },
    "ChangeToken": "96836241-b667-4f0a-a655-e4bc49eaa2c4"
}

Répertorier les IPSets

Pour répertorier les IPSets, utilisez la commande list-ip-sets. La réponse renvoie un tableau d'objets IPSetSummary.

Exemple de sortie :

$ aws waf-regional list-ip-sets
{
    "IPSets": [
        {
            "IPSetId": "bd37ef8c-102b-4d7a-9532-80fb97e4c281",
            "Name": "test-ipset"
        }
    ],
    "NextMarker": "bd37ef8c-102b-4d7a-9532-80fb97e4c281"
}

Remarque : si vous spécifiez une valeur pour « Limit » (Limite) et que vous avez plus d'IPSets que cette valeur, AWS WAF renvoie une valeur NextMarker. Consultez Paramètres de demande.

Mettre à jour un IPSet

Pour mettre à jour un IPSet, utilisez la commande update-ip-set avec une syntaxe raccourcie ou un fichier JSON.

Remarque : vous pouvez mettre à jour un maximum de 1 000 adresses IP par appel d'API. 

Méthode de syntaxe raccourcie :

$ aws waf-regional update-ip-set --ip-set-id bd37ef8c-102b-4d7a-9532-80fb97e4c281 --change-token c47ddcba-d128-4ec9-acd6-ce981c6655c5 --updates Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.1/32"}' Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.2/32"}' Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.3/32"}' Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.4/32"}' Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.5/32"}'
{
    "ChangeToken": " c47ddcba-d128-4ec9-acd6-ce981c6655c5"
}

Méthode de fichier JSON :

1.    Générez un jeton de modification à l'aide de la commande get-change-token comme décrit dans la section précédente Créer un IPSet.

2.    Créez un fichier JSON (tel que test.json) avec la syntaxe de votre demande de mise à jour à l'aide de votre éditeur préféré. Par exemple :

$ nano test.json
{
       "ChangeToken": "b3d8178a-666a-484a-92af-1dcd02cafcfa",
       "IPSetId": "bd37ef8c-102b-4d7a-9532-80fb97e4c281",
       "Updates": [{
              "Action": "DELETE",
              "IPSetDescriptor": {
                      "Type": "IPV4",
                      "Value": "192.168.2.5/32"
              }
       }]
}

3.    Utilisez la commande update-ip-set pour apporter la modification demandée à l'IPSet à l'aide du fichier JSON que vous venez de créer. Par exemple :

$ aws waf-regional update-ip-set --ip-set-id bd37ef8c-102b-4d7a-9532-80fb97e4c281 --cli-input-json file:///home/ec2-user/test.json
{
    "ChangeToken": "b3d8178a-666a-484a-92af-1dcd02cafcfa"
}

4.    Validez les modifications que vous avez demandées pour l'IPSet à l'aide de la commande get-ip-set. Par exemple :

$ aws waf-regional get-ip-set --ip-set-id bd37ef8c-102b-4d7a-9532-80fb97e4c281
{
    "IPSet": {
        "IPSetId": "bd37ef8c-102b-4d7a-9532-80fb97e4c281",
        "Name": "test-ipset",
        "IPSetDescriptors": [
            {
                "Type": "IPV4",
                "Value": "192.168.2.2/32"
            },
            {
                "Type": "IPV4",
                "Value": "192.168.2.3/32"
            },
            {
                "Type": "IPV4",
                "Value": "192.168.2.1/32"
            },
            {
                "Type": "IPV4",
                "Value": "192.168.2.4/32"
            }
        ]
    }
}

AWS WAF (actions d'API prises en charge)

Utilisation des conditions de correspondance d'IP (console AWS WAF)

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?