[AWS] WAF を自分で組み立てるなら SAM でテンプレート書いた方が楽だよ
タイトルの通りです。   あ、 この記事は AWS初心者 Advent Calendar 2018 の7日目 として書いております。   最近会社でWAFとかLambdaとかSAMとかちょっとEC2やRDSといった基本のプロダクトとは違った要素について検証・導入を行なっているのですが、Lambdaをデプロイするために使ってみたSAMでWAFをデプロイすると楽ちんでした。   たとえばここに、HTTPリクエストのメソッドの種別を確認し、HEAD、CONNECT、TRACEを利用したアクセスをブロックするようなWAFを作成するためのSAMテンプレートがあります。     これが存在するディレクトリで以下のようにパッケージングのためのコマンドを実行します。  あ、念の為に雑多なディレクトリではなく、このテンプレートだけが存在する新しいディレクトリを作成してください。   aws --profile [プロファイル名] cloudformation package --template-file template.yml --s3-bucket [あらかじめ用意したS3バケット名] --output-template-file packaged-template.yml    これを実行することで、SAMでのデプロイのためにパッケージング化された各種ファイルが指定したS3バケットに送られ、そこからデプロイするために書き換えられた packaged-template.yml が生成されます。  Lambda Functionのためのソースコードがあればここで併せてパッケージング化されるのですが、今回は無いのでtemplate.ymlだけですね。   そして以下のコマンドを実行するとデプロイされます。   aws  --profile [プロファイル名] cloudformation deploy  --template-file packaged-template.yml  --stack-name otameshi-http-method-restriction-for-cloudfront  --capabilities CAPABILITY_IAM  --parameter-overrides yourApplicationeName=[任意の文字列]   コマンド名に...