はじめに

iret cloudpackの畠山です。

AWS WAFを使用してウェブアプリケーションを保護する際に、IPアドレスをブラックリストやホワイトリストに追加する必要があります。このブログ記事では、AWS CLIを使用してAWSのIPSetに複数のIPを追加する方法について説明します。

本文

ステップ1: AWS CLIの設定

AWS CLIがまだインストールされていない場合は、AWS CLIのインストール手順に従ってインストールします。また、AWS CLIの設定を完了して、アクセスキーとシークレットキーを設定します。

参考:AWS CLI の最新バージョンを使用してインストールまたは更新を行う

ステップ2: 事前確認ID & token準備

IPアドレスを追加したいIPsetIDを確認してAWS ChangeTokenを取得します。

コマンドは、次のようになります。

[cloudshell-user@ip-xx-x-xx-xxx ~]$ aws waf list-ip-sets –region us-east-1 –output json
{
    “IPSets”: [
        {
            “IPSetId”: “xxxxxxxxx-0000-0000-0000-xxxxxxxxxxxx”,
            “Name”: “test-hogehoge-ipv4-whitelist”
        }
    ]
}
[cloudshell-user@ip-xx-x-xx-xxx ~]$ 
[cloudshell-user@ip-xx-x-xx-xxx ~]$ aws waf get-change-token
{
    “ChangeToken”: “xxxxxxxxxxxxx-0000-0000-xxxxxxxxxxxx”
}
[cloudshell-user@ip-xx-x-xx-xxx ~]$ 

ステップ3: IPアドレスの準備

追加したいIPアドレスをカンマで区切ってリストアップします。

例えば、次のようになります。

IPSetDescriptor='{Type=”IPV4″,Value=”xx.x.x.x/16″}’ Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”x.x.x.x/16″}’ Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”x.x.x.x/16″}’ Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”x.x.x.x/16″}’ Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”x.x.x.x/16″}’ 

ステップ4: IPSetにIPを追加する

先ほどステップ2で準備したIPsetIDとAWS ChangeToken、ステップ3で準備したIPアドレスを使用してCLIを実行します。

コマンドは、次のようになります。

aws waf update-ip-set –ip-set-id xxxxxxxxx-0000-0000-0000-xxxxxxxxxxxx –change-token xxxxxxxxxxxxx-0000-0000-xxxxxxxxxxxx –updates Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”xx.x.x.x/16″}’ Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”x.x.x.x/16″}’ Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”x.x.x.x/16″}’ Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”x.x.x.x/16″}’ Action=”INSERT”,
IPSetDescriptor='{Type=”IPV4″,Value=”x.x.x.x/16″}’ 

※上記ではわかりやすく段落でコマンドを記載していますが、本来実施する際はワンライナーで行います。

ステップ5: 結果の確認

コマンドが正常に実行された場合、変更内容がJSON形式で表示されます。更新されたIPSetには、指定したIPアドレスが追加されているはずです。

コンソール上で見に行ってみましょう。

まとめ

このブログ記事では、AWS CLIを使用してAWSのIPSetに複数のIPを追加する方法について説明しました。

AWS WAFを使用してウェブアプリケーションのセキュリティを強化する際に、この方法を活用してIPアドレスを効果的に管理できます。

また、IPアドレスは1 回のリクエストで最大 1,000 個のアドレスを更新できます。

参考 : UpdateIPSet

余談ですが、私もこの方法で数百個のIPを同時に追加しました。やはりコンソール上で手打ちするより明らかに失敗するリスクが減るので皆さんご活用ください。