【AWS】CLIでWAF V2 IP Setに設定したIPアドレス一覧を取得する
AWS CLIを使ってWAF V2のIP Setに設定されているIPアドレスの一覧を取得する方法を紹介します。
以下の2つの手順でIP Setに設定されているIPアドレスの一覧を取得します。
- AWS CLIのWAF V2のlist-ip-setsを使ってIP SetのIDを調べる。
- 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