このドキュメントでは、Cloudflare の無料プランを使用して、AI および Web サービスを保護するために実装できるセキュリティ対策の概要を説明します。
stock-analyze-mcp を 非公開 (Private) に設定しました。
- 実施内容:
apps/stock-analyze-mcp/wrangler.jsoncに"workers_dev": falseを追加しました。 - 結果: MCP サーバーはパブリックインターネットからアクセスできなくなりました。
stock-analyze-aiワーカー経由のセキュアな「Service Bindings」を通してのみアクセス可能です。
WAF ルールはゾーンレベル(あなたのドメイン ohchans.com)で管理されるため、Cloudflare ダッシュボードで設定する必要があります。
- Cloudflare Dashboard > Security > Bots に移動します。
- Bot Fight Mode を On に切り替えます。
- これにより、単純な自動化ボットやスクリプトによるアクセスをブロックできます。
- Cloudflare Dashboard > Security > WAF > Custom rules に移動します。
- Create rule をクリックします。
- ルール例 1: 不審な地域からのアクセスをブロック (任意)
- Name: "Block High Risk Countries"
- Expression:
(ip.geoip.country in {"CN" "RU" "NK"})(必要に応じてカスタマイズしてください) - Action:
Block(ブロック) またはManaged Challenge(チャレンジ)。
- Cloudflare Dashboard > Security > WAF > Rate limiting rules に移動します。
- Create rule をクリックします。
- ルールの設定:
- Rule Name: "Global Rate Limit"
- If incoming requests match:
URI Pathcontains/api/chat. - Then:
BlockまたはManaged Challenge - When rate exceeds:
20requests - Period:
10seconds - For:
IP Address - これにより、一人のユーザーによる AI エンドポイントへのスパム行為を防ぎます。
高コストな AI エンドポイントのボット悪用を防ぐため、Cloudflare Turnstile の導入を推奨します。
- Cloudflare Dashboard > Turnstile に移動します。
ohchans.com用のサイトを追加します。- Site Key (サイトキー) と Secret Key (シークレットキー) を取得します。
- 実装:
- フロントエンド (
stock-analyze-web) に Turnstile ウィジェットを追加します。 - バックエンド (
stock-analyze-ai) でトークンを検証するように更新します。
- フロントエンド (
Turnstile を実装したい場合は、Site Key と Secret Key をお知らせいただくか、コードの雛形の追加をご依頼ください。