WAFからCLIでIPSetsのIPアドレスルールを取得する方法をメモ書きします。
リージョンをCloudFrontに設定しているIPSetsの取得方法についても記載しています。
WAF v2
IPアドレスルールを取得するには、まずIPSetsの定義からName
とId
を取得する必要があります。
Name
とId
を取得するためaws wafv2 list-ip-sets
コマンドを実行します。
※ credentialsファイルから明示的に実行環境を指定したい場合は 下記コマンドに--profile <環境名>
を追加します。
$ aws wafv2 list-ip-sets --scope REGIONAL --region us-east-1
"NextMarker": "test-ipv6-ip-sets",
"IPSets": [
{
"Name": "test-ipv4-ip-sets",
"Id": "1234567-aaaa-bbbb-cccc-1234ddddffffff",
"Description": "",
"LockToken": "xxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxx",
"ARN": "arn:aws:wafv2:us-east-1:1234567890:xxxxxx/xxxxx/xxxxxxxx/xxxxxxxxxxxxxxxxxx1"
},
{
"Name": "test-ipv6-ip-sets",
"Id": "1234567-aaaa-bbbb-cccc-1234ddddfffffg",
"Description": "",
"LockToken": "xxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxx",,
"ARN": "arn:aws:wafv2:us-east-1:1234567890:xxxxxx/xxxxx/xxxxxxxx/xxxxxxxxxxxxxxxxxx2"
},
CloudFrontを対象としたい場合は--scope
オプションにCLOUDFRONT
、--region
にus-east-1
を設定してコマンドを実行します。参考
$ aws wafv2 list-ip-sets --scope CLOUDFRONT --region us-east-1
aws wafv2 list-ip-sets
コマンドから取得した Name
とId
を使用してaws wafv2 get-ip-set
コマンドを実行するとIPが取得できます。
$ aws wafv2 get-ip-set --name "test-ipv4-ip-sets" --id "1234567-aaaa-bbbb-cccc-1234ddddffffff" --scope CLOUDFRONT --region us-east-1
{
"IPSet": {
"Name": "test-ipv4-ip-sets",
"Id": "1234567-aaaa-bbbb-cccc-1234ddddffffff",
"ARN": "arn:aws:wafv2:us-east-1:1234567890:xxxxxx/xxxxx/xxxxxxxx/xxxxxxxxxxxxxxxxxx1",
"Description": "",
"IPAddressVersion": "IPV4",
"Addresses": [
"12.132.144.3/32",
"12.132.144.4/32"
]
},
"LockToken": "xxxxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxx"
}
参考
https://docs.aws.amazon.com/cli/latest/reference/wafv2/list-ip-sets.html
https://docs.aws.amazon.com/cli/latest/reference/wafv2/get-ip-set.html
WAF Classic
リージョンを指定してIPアドレスルールを取得したい場合は下記のコマンドを使用します。
aws waf-regional list-ip-sets --region <対象リージョン> --profile <対象環境>
このコマンドで出力されたIPSetId
の値を使って以下のコマンドを実行するとIPアドレスルールが取得できます。
aws waf-regional get-ip-set --ip-set-id <IPSetId> -region <対象リージョン> --profile <対象環境>
クラウドフロントに対して確認を行いたい場合は'waf'コマンドを利用します。
aws waf list-ip-sets --profile <対象環境>
'waf-regional'と同様、このコマンドで出力されたIPSetId
の値を使って以下のコマンドを実行するとIPアドレスルールが取得できます。
aws waf get-ip-set --ip-set-id <IPSetId> --profile <対象環境>
参考
https://aws.amazon.com/jp/premiumsupport/knowledge-center/maintain-waf-ipsets-using-cli
https://docs.aws.amazon.com/cli/latest/reference/waf-regional/index.html
https://docs.aws.amazon.com/cli/latest/reference/waf-regional/index.html
https://docs.aws.amazon.com/cli/latest/reference/waf-regional/get-ip-set.html