[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=[任意の文字列]

コマンド名にもありますが、AWS SAMの実態は CloudFormation の拡張なので、CloudFormationが実行されます。
CloudFormationなので、別にLambda FunctionがなくったってSAMを使っていいんですねぇ。
これで多分あなたのWAFの管理画面にACLが1個、Ruleが3個、string match なコンディションが3個作成されたと思います。

ほんとはWAFの構成要素とかここ最近で一気に学んだのでまとめを書こうかと思いましたがMPがなくなったのでまた今度にします。

おわり

あ、万が一気に入っていただけたら欲しいものリストからお酒おごってください。

コメント

  1. Casinos Near Me - Casino - Oklahoma City News
    There are 출장안마 also casino hotels in the 바카라 사이트 city of Oahu, Oahu and others. Find out jordan 5 retro clearance which casinos are closest to me, 188bet nearby 바카라 룰 area, in the best casinos to

    返信削除

コメントを投稿

このブログの人気の投稿

オライリーのDocker本を読んだり色々な記事を読んだりしたので自分なりにまとめる(Dockerfileについて)

一部のユーザだけ NET::ERR_CERT_REVOKED でサイトにアクセスできない

[#CentOS][#Apache] CentOS6 でApacheが起動できない