WafCharmの初期設定の流れを紹介します。WafCharmの初期設定には、AWSマネジメントコンソールにてAWS WAF / IAMポリシー / CloudFront(またはALB)のログ設定の確認が必要です。

AWS WAF Classic についてはAWS公式情報をご確認ください。
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/classic-waf-chapter.html

※今までの AWS WAF は AWS WAF Classic となります。
new AWS WAF が AWS WAF となります。
記事中では新しいものを new AWS WAF 、以前のものを AWS WAF Classic と表記しています。

  1. プラン契約の申し込みまで進むと、以下のページに案内されますので、Web ACL Configの設定から始めましょう。

  2. Add Web ACL をクリックします。

  3. 必要な情報(①〜⑩)を入力し、Saveをクリックします。

    ①Web ACL ID AWSマネジメントコンソール > WAF & Shield > Go to AWS WAF > Web ACLsを選択します。

    下記画像の赤枠で囲まれているIDが「Web ACL ID」となります。

    ②Web ACL Name Web ACL Nameを入力します。
    AWSコンソール上で登録している名前と必ずしも同一にする必要はありませんが、同一の名前を推奨します。
    ③Access key / Secret key IAMのポリシー “AWSWAFFullAccess” を付与している対象ユーザーのキーの値を入力します。
    カスタムポリシーにて設定頂く際は以下のページをご参照ください。
    参考URL:https://www.wafcharm.com/blog/aws-iam-setting-for-wafcharm-jp/
    ④Rule limit (AWS WAF Classic)
    WafCharmが対象Web ACLに適用できるルールの上限を設定します。
    例)
    ・Rule limit:10 → WafCharmは対象Web ACLに最大10個のルールを適用することができます。・Rule liimit:5 → WafCharmは対象Web ACLに最大5個のルールを適用することができ、残りの5ルールはお客様作成ルールを適用することができます。

    (new AWS WAF)
    new AWS WAFでは、WCU(WAF Capacity Unit) というコストベースでの制限に変わりました。
    その為、Rule limitの指定は不要です。デフォルト設定の状態で構いません。

    ⑤Choose AWS service type Web ACLをアタッチしている対象のリソースをプルダウンから選択します。
    ⑥Choose your AWS region Web ACL及び、リソースを作成しているリージョンを選択します。
    ⑦Blacklist 初期設定の段階でブラックリストを設ける場合に入力します。後から追加設定することも可能です。
    ⑧Whitelist 初期設定の段階でホワイトリストを設ける場合に入力します。後から追加設定することも可能です。
    ⑨Default AWS WAF Action WafCharmが対象Web ACLにルールを適用する際のアクションを設定できます。
    ※既に適用されているルールのアクションはこの設定では変更できません。
    ⑩Use Managed Rule マネージドルールを使用・不使用の選択が出来ます。
    ※new AWS WAF環境利用時は設定不要です。デフォルトの「unused」の状態で構いません。
    1. 3の手順実施後、S3周りの設定をするページに遷移するのでこちらも必要な情報を入力し、Saveをクリックします。
      WafCharm「Web Site Config」設定画面
      ①Web ACL Config 対象のWeb ACL Configを選択します。
      ※初めてWeb ACL Configを作成された方は既に選択されています。
      ②FQDN 対象WebアプリケーションのFQDNを入力します。
      ③S3 Path お使いのリソースのアクセスログの出力先のパスを設定します。
      CloudFrontのログ出力先確認
      AWSマネジメントコンソール > CloudFront > 対象CloudFrontにチェックを入れDistribution Settingをクリック > Editをクリック > 下記赤枠で囲まれた箇所を確認します。下記赤枠の場合だと、WafCharmに登録するS3 Pathは
      「s3://Wafcharm.s3.amazonaws.com/cloudfrontlogs/」
      となります。

      CloudFrontのログ出力先確認画面
      ※CloudFrontのリアルタイムログ機能には対応しておりません。
      ALBのログ出力先確認
      AWSマネジメントコンソール > EC2 > サイドバーのロードバランサーをクリック > 対象のALBをチェック > ロードバランサー情報にて説明のタブ(デフォルト)下部を確認 > 属性の確認下記赤枠の場合だと、
      ・アクセスログ:S3 の場所 WafCharm/alblogs
      になります。そのため、WafCharmに登録するS3 Pathは
      「s3://WafCharm/alblogs/AWSLogs/<AWSアカウントID>/elasticloadbalancing/ap-northeast-1/」
      となります。
      ※今回はリージョンが、ap-northeast-1としています。

      ALBのログ出力先確認画面
      ※ API Gateway のアクセスログには対応しておりません。
      ④Access Key Option IAMのポリシー “AmazonS3ReadOnlyAccess” を付与している対象ユーザーのキーの値を入力します。
      AWS WAFとS3でAccess key / Secret keyが同じ場合には、チェックを付けてください。AWS WAFとS3でAccess key / Secret keyが異なる場合にReuse Web ACL Access Keyのチェックを外して、S3のRead権限を付与したAccess key / Secret keyを設定します。参考URL:https://www.wafcharm.com/blog/aws-iam-setting-for-wafcharm-jp/

      以上の設定を正しく登録することで、WafCharmがご利用頂けます。
      AWSマネジメントコンソール上にて確認が必要な情報がいくつかございます。ご注意ください。