【AWS】CLIでWAF V2 IP Setに設定したIPアドレス一覧を取得する

AWS CLIを使ってWAF V2のIP Setに設定されているIPアドレスの一覧を取得する方法を紹介します。

以下の2つの手順でIP Setに設定されているIPアドレスの一覧を取得します。

  1. AWS CLIのWAF V2のlist-ip-setsを使ってIP SetのIDを調べる。
  2. 1で調べたIDとNameを使いget-ip-setを使いIPアドレス一覧を取得する。

IP Set一覧の取得

# IP Set一覧の取得
$ aws wafv2 list-ip-sets --scope CLOUDFRONT --region us-east-1

{
    "NextMarker": "xxxx",
    "IPSets": [
        {
            "Name": "allowed-ip-address",
            "Id": "xxxx-xxxxx-xxxxx-xxxx-xxxxx",
            "Description": "",
            "LockToken": "xxxx",
            "ARN": "arn:aws:wafv2:us-east-1:xxxxx"
        }
    ]
}

# IP Setの名前で絞り込む場合
$ aws wafv2 list-ip-sets --scope CLOUDFRONT --region us-east-1 --query "IPSets[?Name=='allowed-ip-address']"

scopeの引数はCLOUDFRONTまたはREGIONALを指定します。また、取得できるIP Set数がlimitで指定した値を超える場合はNextMarkerがレスポンスに含まれます。limitを超えた範囲は引数–next-markerを指定することで取得することができます。

IPアドレス一覧の取得

list-ip-setsで取得したIP SetのIDとNameをget-ip-setの引数に指定します。

$ aws wafv2 get-ip-set --scope CLOUDFRONT --region us-east-1  --name allowed-ip-address --id xxxx-xxxxx-xxxxx-xxxx-xxxxx

{
    "IPSet": {
        "Name": "allowed-ip-address",
        "Id": "xxxx",
        "ARN": "arn:aws:wafv2:us-east-1:xxxxx",
        "Description": "",
        "IPAddressVersion": "IPV4",
        "Addresses": [
            "xxx.xxx.111.111/32",
            "xxx.xxx.111.112/32"
        ]
    },
    "LockToken": "xxx"
}

IPアドレス部分を取り出し、ダブルクォーテーションを外すにはjqコマンドと組み合わせると便利です。

$ aws wafv2 get-ip-set --scope CLOUDFRONT --region us-east-1  --name allowed-ip-address --id xxxx | jq  -r '.IPSet.Addresses[]'

xxx.xxx.111.111/32
xxx.xxx.111.112/32

AWS

Posted by fanfanta