Skip to content

feat: WAFを削除してコストを削減する #42

@takaokouji

Description

@takaokouji

背景

WAFの月額コストが約$10-20/月かかっており、現在の利用状況に対して高いため、削除を検討します。

現在のWAF構成

  • 保護対象: AWS AppSync GraphQL API(本番環境のみ)
  • デフォルトアクション: BLOCK(すべてブロック)
  • 許可ルール:
    1. AllowPreflightOptions: CORS プリフライトリクエスト(OPTIONS)を許可
    2. AllowSpecificOrigins: 特定オリジン(https://smalruby.app, https://smalruby.jp)からのリクエストを許可

WAF削除のデメリット

  1. オリジン検証がエッジで行われなくなる
  2. 不正なオリジンからのリクエストをブロックできない
  3. WAFメトリクス(ブロック数、リクエストサンプル)が取得できなくなる

代替案の検討

  1. AppSync認証の活用: API Keyによる認証は維持されているため、キーなしではアクセス不可
  2. CORS設定: ブラウザ側でCORSエラーとなるため、ブラウザからの不正アクセスは防げる
  3. CloudWatchアラーム: 異常なAPI使用量を監視(必要に応じて追加)

結論

WAFを削除しても大きな問題はないと考えます。

  • 現在のWAFはオリジン検証のみ(レート制限やOWASP対策のルールなし)
  • API Keyがないとアクセス不可
  • ブラウザからはCORSでブロック
  • 悪意のあるスクリプトからの直接アクセスはAPI Keyがあれば可能だが、これはWAFがあっても同様

対応内容

  • mesh-v2-stack.ts からWAF関連のコード(WebACL、WebACLAssociation)を削除
  • ステージング環境でテスト
  • 本番環境にデプロイ

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions