
WAF⾃動運⽤サービスである「WafCharm 」は、管理画面のリニューアル、機能、料金の改定があり大幅に進化しました。 以前の記事からアップデートした内容含めてあらためて構築方法を解説します。
目次
WafCharmとは
WafCharmの概要
WafCharmとは、株式会社サイバーセキュリティクラウド社様にて提供されるAWS WAFのルール運⽤を最適化させるWAF⾃動運⽤サービスです。主な機能を紹介します。
- WAF ルールの運用:
- OWASP Top 10に代表される主要な脆弱性から新たに発見された脅威まで、
幅広い攻撃に対応できるWAFのルールを自動適用します。 - カスタムルールの作成(UPDATE):
- 特定のIPアドレスや国・地域からのアクセスを遮断するIPルール、GEOルール、
そして短時間での大量アクセスを制限するレートベースルールを、WafCharm 内で一元的に設定・管理できます。 - Webサイトの改ざん検知(NEW)
- 登録されたWebサイト(FQDN)を日々継続的にチェックし、改ざんされているかどうか確認します。
Webサイトの改ざんが検知された場合、登録された管理者のメールアドレスにすぐ通知します。 - ダッシュボード、レポート、攻撃通知:
- 攻撃されていることの通知やWAFのログを分析し攻撃検知したルールの割合や、アクセス元の国・地域やIPアドレス、アクセスのあったパスなど、不正アクセスやサイバー攻撃に関する情報を簡単に確認できます。
- サポート:
- 24時間365日のサポート、万が一のトラブル発生時でも、原因特定やルール調整などはWafCharmサポートが対応します。

引用:https://www.wafcharm.com/jp/
WafCharmの料金
以下のとおりの料金です。
プラン | 30日間フリートライアル | ビジネス | エンタープライズ |
---|---|---|---|
月額料金(①+②+③) | 30日間無料 | 112,000円~ | 192,000円~ |
①WAF 設定ユニット料金 | 30日間無料 | 12,000円~ | 12,000円~ |
②プラン料金(Webリクエスト数) | 30日間無料 | 100,000円~ (1,000万件まで) |
180,000円~ (1億件まで) |
③Webリクエスト超過料金 | 30日間無料 | 900円 / 100万件 | 400円 / 100万件 |
①WAF 設定ユニット料金
WafCharmにて管理するAWS WAF WebACLごと毎に発生します。
②プラン料金
プラン毎に固定の料金です。このプラン料金にはある程度までWebリクエストも含まれています。
プランに含まれている以上のWebリクエストが発生していた場合、③Webリクエスト超過料金が発生します。
③Webリクエスト超過料金
プランに含まれている以上のWebリクエスからの超過料金、WAF 設定ユニットが複数あった場合は、すべての合計のWebリクエストで計算されます。
基本的にはビジネス、規模が大きくなった場合は、エンタープライズを選択するパターンが一般的です。
簡単に検証したい、システム構築中のテスト段階の場合はトライアルを選択するのがお勧めです。
詳細は料金|WafCharm|WAF自動運用サービスをご参照ください。
WafCharmを構築してみよう
前提条件として下図の構成が完成しているものとします。

前提条件
- ALB経由でWebサーバにアクセスできる環境
- ALBにAWS WAF WebACLが関連付けされている
- ログ保管用のS3バケットが構築済みである
- Admin権限のあるIAMユーザーで作業している
- CloudFormationにて使用できるIAM Role作成権限のあるRoleがある
WafCharmのCredentialの登録
注意:
WafCharmの管理コンソールとAWSのコンソールを行き来します。
WafCharmとAWSアカウントを連動させるためにIAM ロールを作成します。
(1)WafCharmコンソールにログイン
ログインページ(https://console.wafcharm.com/ja/sign_in)からWafCharmにログインします。

(2)Credential登録ページに移動
左側のペイン「Credential」をクリックします。
表示されたページから「IAM Roleを新規作成して登録する」の登録をクリックします。

「次のステップへ」をクリックします。

(3)AWS アカウントIDとロール名を入力しテンプレート生成
AWSアカウントのIDとロール名(今回はWafCharm-roleとします)を入力し、「テンプレート生成」を クリックします。

生成されたテンプレートURLをクリップボードにコピーします。

(4)ロールの作成
ブラウザの別タブを開き、コピーしたURLをブラウザのURLに張り付けにアクセスします。

AWSアカウントにログインが必要になった場合はログインを実施します。

表示されたCloudFormationのページで、事前に用意しているCloudFormation用のロールを作成して 「スタックの作成」をクリックします。

スタックのステータスがCTEATE_COMPLETEになったら、WafCharmのコンソールに戻ります。

(5)Credentialの登録
「検証」をクリックしてWafCharmからAWS環境のRoleにアクセスできるか確認します。
検証結果が問題なければ検証OKの文字が表示され「次のステップへ」をクリックしてください。

WafCharm上で、AWS資格情報(Credential)の名前をCredential Store名として
記入後に「設定完了」をクリックします。

Credentialの登録完了です。

WAF Configの作成
WafCharmのメイン機能であるAWS WAFのルール運用の設定をします。
(1)WAF Config登録ページに移動
左側のペインから「WAF」をクリックします。
表示されたページから「新規登録」をクリックします

(2)Web ACLの選択
Credentialは【Credentialの登録】で作成したCredentialを選択します。
Regionは、WafCharmと関連付けしたいAWS WAFのWebACLがあるリージョンを選択します。
「Web ACL取得」をクリックすると、Web ACL一覧が表示されるのでWafCharmと関連付けしたい
AWS WAFのWebACLを選択し「次のステップへ」をクリックします。

(3)基本設定
WAF Config名は、WAF Configを管理するために識別しやすい名前を記載します。
Ruleポリシーは、Advancedを選択します。
※RuleポリシーのLegacyは、WafCharmの旧管理画面にてご提供していたルール構成です。
選択するメリットはとくにありません。
Credential Storeは、【Credentialの登録】で作成したCredentialを選択します。
すべて選択後「次のステップへ」をクリックしてください。

(4)ルール設定
ルール設定画面です。カスタムルールが必要場合は設定しますが、今回は設定しないので「次のステップへ」をクリックします。

IPアドレス | 特定のIPアドレスからのアクセスをブロックする、特定のIPアドレスからの通信を常に許可(他のルールは評価されない)するなどの設定行えます。 |
GEO | 特定の国・地域からのアクセスのみをブロックするなどの設定行えます。 |
Rate-base | 同じアクセス元から大量のアクセスなど、不正なプログラムからの急激なアクセスをブロックするなどの設定を行えます。 |
Bot | Botと判断される通信の制御を行えます。
悪意のあるBotのブロックなどの設定を行えます。 |
正規表現 | WafCharmが提供する基本ルールについて特定のルールの無効化などの設定を行えます。 |
例外設定 | WafCharmは、自動的に怪しい挙動をするIPアドレスからのアクセス拒否する設定を行います。この拒否するIPリストをDenylistと呼びます。
ここではDenylistに登録しない例外的なIPアドレスを設定できます。 WafCharm の挙動のテスト中、Denylistに入らないようにするなどの設定が行えます。 |
(5)ログ・通知設定
後述する手順で実施するので、ここでは何もせずに「次のステップへ」をクリックします。

(6)登録内容の確認
「登録する」をクリックします。

(7)ローディングアイコンの確認
ローディングアイコンが緑色のチェックマークになったことを確認します。

AWS WAF ログ出力設定
※ここからはAWSのマネジメントコンソールでの作業になります。
WafCharmのレポート作成などの機能を有効にするためにAWS WAFのログ出力を有効にします。
(1)ログ設定ページへの移動
AWS WAFのページよりログ出力したいWeb ACLの詳細設定画面を開きます。
「Logging and metrics」 のタブを選択します。Logging欄の「Enable」をクリックします。

(2)ログの有効化
Logging destinationにて「S3 bucket」を選択し、Amazon S3 Bucketにて事前作成しておいたS3バケットを選択します。
注意:
AWS WAFのログ出力バケット名は必ず「aws-waf-logs-」が頭につく名前でなければなりません。
Redacted fieldsは、個人情報が含まれているなどの理由でログ情報として含めない情報を指定します。
今回はとくにないので設定しません。
Filter logsは、ログとして記録しないログのフィルター設定をします。
今回は設定しません。
「Save」をクリックします。

(3)ログが有効になったことの確認
Loggingが「Enable」であることを確認します。

WAF ログ・通知設定
WafCharmとAWS WAFのログの連携とWAFログアラートの設定を行います。
この設定を入れることで以下の機能が利用できるようになります。
- WAFログ解析結果をもとにした、IP Denyリストの動的更新機能
- マッチした結果を通知するWAFログアラート機能
- レポート機能
- WAFログの検索機能
- WAFログ内容の集計結果を参照するダッシュボード機能
- WAFログアラートメール
(1)ログ・通知設定画面へ移動
左側のペインから「WAF」をクリックします。
表示されたページで設定したいWAF Configをクリックします。

「ログ・通知設定タブ」をクリックし、「編集」をクリックします。

(2)WAFログ連携
「WAFログをWafCharmに連携する」にチェックを入れます。
以下の2つにチェックを入れます
- 対象のWebACLでWAFログ出力設定が有効化されており、S3への出力となっていること
- WAFログに含まれる情報に個人情報や機密情報が含まれていないこと

(3)ログ・通知設定
「WAFログアラート」のタブをクリックします。
「WAFログアラートを使用する」にチェックを入れます。
通知先メールアドレスに送信したいメールアドレスを入力します。
「登録」をクリックします。

(4)登録内容の確認
「登録」をクリックします。

(5)ローディングアイコンの確認
ローディングアイコンが緑色のチェックマークになったことを確認します。

まとめ
新しいWafCharmの構築を実施しました。
このほかにカスタムルールの作成やWeb改ざん検知機能の有効化などWafCharm の機能有効活用するためのさまざまな設定がありますので、ぜひ有効活用してみてください。
もしご興味を持っていただけましたらぜひ当社にご相談 ください。
※本記事を執筆にあたり、参考にした資料
https://console.wafcharm.com/ja/help
作者プロフィール
名前 | 鈴木(ヨッシー) |
担当のAWS業務 | 営業支援、ソリューションアーキテクト |
AWSの持っている資格 | AWS認定資格全冠(12冠) |
好きなAWSのサービス | Amazon Recognition |
趣味 | ゲーム |
ひとこと | WAFはとりあえずWafCharmにしとけばよい |
