はじめに
AWS CLI経由でWAF v2のIPセットを更新する方法を説明します👀
以下触れません💦
・AWSアカウントの作成
・AWS CLIのインストール
・認証情報の設定
・必要な権限の設定
必要な情報を取得
公式:https://docs.aws.amazon.com/cli/latest/reference/wafv2/list-ip-sets.html
IPセットを更新するためには、以下の情報が必要です。
ID: IPセットのユニーク識別子
LockToken: 変更管理用のトークン
Name: IPセットの名前
Scope: CLOUDFRONTまたはREGIONALのスコープ(どのリージョンやサービスに関連付けられているか)
まず、IPセットの一覧を取得して、更新したいIPセットの基本情報を確認してみます。
使用するコマンド: list-ip-sets
必要なパラメータ: scope
aws wafv2 list-ip-sets \
--scope CLOUDFRONTまたはREGIONAL
これで存在するIPセット基本情報(Name、Id、Description、LockToken、ARN)が一覧で確認することができます。
list-ip-setsではなく、get-ip-setで情報を取得する方法もあります。こちらは、指定されたIPSetの情報を取得する方法で、Scopeに加えて、NameとIdが必須です。
公式:https://docs.aws.amazon.com/cli/latest/reference/wafv2/get-ip-set.html
IPセットの更新
必要な情報を取得した後、新しいIPリストでIPセットを更新します。
公式:https://docs.aws.amazon.com/cli/latest/reference/waf/update-ip-set.html
使用するコマンド: update-ip-sets
必要なパラメータ: Id、LockToken、Name、Scope
aws wafv2 update-ip-set \
--name "your-ipset-name" \
--scope CLOUDFRONTまたはREGIONAL \
--id "your-ipset-id" \
--lock-token "your-ipset-lock-token" \
--addresses ["128.0.0.0/32", "0.0.0.1/32"]
このコマンドを実行すると、your-ipset-nameのIPセットに含まれるIPアドレスリストは、指定された"128.0.0.0/32"および"0.0.0.1/32"に置き換えられるはずです。このコマンドは、指定したIPアドレスで設定を上書きするので、リストに新しいIPアドレスを追加するわけではありません。既存のIPセット内のアドレスがこの新しいリストに更新されます!
コメント
正直、CLIを使ってWAFのIPセットを更新することはほとんどないと思います💦
恐らく、APIを経由してIPセットを更新する際には、AWS SDK for JavaScriptを利用してIPセットを更新するシステムを構築したい、が多いと思います。私自身もそうです。今回CLIを記事にしたのは、CLIでできることはSDKでも基本できるので、まずはCLIでやってみてどんな感じなのかなを視覚化したかったからです。SDKでやってみるのを今取り組んでいます。できたら記事にしてみようかな?(コミットではないです💦)