株式会社サーバーワークス's job postings
- ソリューションアーキテクト
- プロジェクトマネージャー
- テクニカルオペレーション
- Other occupations (4)
- Development
- Business
- Other
全国のTerrafrom愛好家のみなさま、こんにちは。
技術4課岩本です。
まず、Terraformを使って、IPリストを登録する方法は以下になります。
resource "aws_waf_ipset" "ipset" {
name = "tfIPSet"
ip_set_descriptors {
type = "IPV4"
value = "192.0.7.0/24"
}
}
resource "aws_wafregional_ipset" "ipset" {
name = "tfIPSet"
ip_set_descriptor {
type = "IPV4"
value = "192.0.7.0/24"
}
}
ip_set_descriptors
、ALB用の場合は ip_set_descriptor
に注意くださいprovider
セクションで指定したregion
に作成されます。variable "blacklist" {
type = "list"
}
resource "aws_wafregional_ipset" "ipset" {
name = "Block-List2"
ip_set_descriptor = "${ var.blacklist }"
}
blacklist = [
{ "value" = "111.222.333.111/32" type = "IPV4" },
{ "value" = "111.222.333.112/32" type = "IPV4" },
{ "value" = "111.222.333.113/32" type = "IPV4" },
{ "value" = "111.222.333.114/32" type = "IPV4" },
....snip....
]
$ terraform plan -var-file=blacklist.tfvars
ip_set_descriptor にて、定義した変数blacklistを読み込んでいます。
変数blacklistは、明示的に定義しないとMAP形式として自動的に認識されます。
ただしip_set_descriptorはでは、LIST形式の入力を求められます。
そこで、type = "list"として、明示的にLIST形式で宣言をしています。
IPリストは、外部ファイルとして切り出し、コマンドオプション-var-file=blacklist.tfvarsとして実行時に読み込むようにしました。
IPリストが大量にあり、Terraform内で利用する他の変数値との混同を避けるためです。
AWS WAFに大量のIPを登録される方、ぜひお試しください