🐺
AWS Waf の IPSet を Terraform で管理する
はじめに
IPSetをTerraformで管理するようにした話
※今回はCLOUDFRONTの設定を更新しています。
terraform の基本設定
そもそも入っていない場合は、公式のinstall手順に従い設定を行う
AWS のアクセスキー確認
設定を行う際にAWSのアクセスキーを設定する必要があるため設定をする
その時に下記コマンドでシュッとみれる
aws configure get default.aws_access_key_id
aws configure get default.aws_secret_access_key
IPSet を import する
今回はすでにIPSetを作成しているのでterraform
コマンドでimport
する
terraform import aws_wafv2_ip_set.hoge-IP-set ID/NAME/SCOPE
- ID: すでに作成されているIPSetのIDを入力する
- NAME: IPSetの名前を入力する
- SCOPR: SCOPRが何かを入力する(今回はCLOUDFRONT)
実装する場合は下記
import {
to = aws_wafv2_ip_set.example
id = "ID/NAME/CLOUDFRONT"
}
IPSetの取得周りは下記にまとめていますのでよければ参考までに
リソースの設定
実装は公式のドキュメントを参考に値を変える
provider "aws" {
region = "us-east-1"
}
resource "aws_wafv2_ip_set" "hoge-IP-set" {
name = "hoge-IP-set"
description = "hoge waf ip set"
scope = "CLOUDFRONT"
ip_address_version = "IPV4"
addresses = [
"198.51.100.0/32" // IP
]
tags = {
Name = "hoge"
}
}
実行計画の確認
実装を適応する前に実行計画の確認を行う
terraform plan
今回は更新を行うので差分が出てくる
resource "aws_wafv2_ip_set" "hoge-IP-set" {
+ description = "hgoe waf ip set"
id = "xxxxx-xxxx-xxxx-xxxxxx"
name = "hoge-IP-set"
~ tags = {
+ "Name" = "hoge"
}
~ tags_all = {
+ "Name" = "hoge"
}
}
変更を適応する
最後に適応を行う
terraform apply
上記手順でIPSetの反映が完了
最後に
- 既に登録している場合は一度pullする必要があること
- CLOUDFRONTに対して設定を行う場合は
provider
を設定すること
これらを忘れなければサクッと管理できる
Discussion