Gemcook Tech Blog
🗞️

週刊Cloudflare - 2025/08/31週

に公開

こんにちは、あさひです 🙋‍♂️ 今週の Cloudflare のアップデートをまとめていきます!

この記事の主旨

この記事では、前週に Cloudflare のサービスにどんな変更があったかをざっくりと理解してもらい、サービスに興味を持ってもらうことを目的としています。そのため、変更点を網羅することを優先します。

2025/08/24 ~ 2025/08/30 の変更

Wrangler

4.33.1

パッチアップデート
  • .env ファイルに関する ENOENT デバッグログを簡素化
  • 依存関係を更新
    • @cloudflare/unenv-preset@2.7.0
    • miniflare@4.20250823.1

4.33.0

マイナーアップデート
  • 新しく作成されたリソースをユーザーの設定ファイルに自動的に追加する機能をサポート
パッチアップデート
  • --experimental-json-config / -j フラグを削除(不要になったため)
  • "node:tls" ポリフィルを削除
  • experimental_getWranglerCommands() からグローバルフラグを公開
  • 依存関係を更新
    • @cloudflare/unenv-preset@2.6.3
    • miniflare@4.20250823.0

Workers

JavaScript アセットの Content-Type の変更

Workers Assets が配信する JavaScript の応答ヘッダーが application/javascript から text/javascript に更新されます。次回のアセットデプロイ以降、自動的に適用されます。

  • 変更点
    • Workers Assets の JavaScript 応答ヘッダーが application/javascript から text/javascript に更新
    • 次回のアセットデプロイから自動適用
  • 目的・効果
    • HTML Living Standard の推奨に整合
    • 開発ツール/バリデータ/プロキシとの相互運用性を改善
    • エコシステムの一般的な既定に一致し、将来的な非推奨リスクを低減
  • 互換性
    • 主要ブラウザは両 MIME を受理するため後方互換性あり
    • ヘッダー厳格チェック(例: 中間プロキシや CSP)を運用している場合は挙動を確認

https://developers.cloudflare.com/changelog/2025-08-25-workers-assets-javascript-content-type/

Workers AI

パートナーモデル(Deepgram/Leonardo)と音声 WebSocket 対応を追加

Workers AI に Deepgram と Leonardo のパートナーモデルが追加され、さらに音声対話向けの「ターン検出」モデルも提供されました。一部の音声モデルでは WebSocket 接続による低レイテンシ実行にも対応します。

  • 音声
    • @cf/deepgram/aura-1(TTS)
      • テキストをカスタマイズ可能な音声に変換、WebSocket で双方向・低レイテンシ実行に対応
    • @cf/deepgram/nova-3(STT)
      • 多言語音声の高速文字起こし
    • @cf/pipecat-ai/smart-turn-v2(ターン検出)
      • 話者が話し終えたタイミングを検出し、音声エージェントの切り替えを最適化
  • 画像生成
    • @cf/leonardo/lucid-origin(text-to-image)
      • グラフィックデザインや高精細レンダーに強み
    • @cf/leonardo/phoenix-1.0(text-to-image)
      • プロンプト追従性が高く、文字の整合性にも優れる
新しい Aura モデルで WebSocket を使用する方法例
import json
import os
import asyncio
import websockets

uri = f"wss://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/deepgram/aura-1"

input = [
    "Line one, out of three lines that will be provided to the aura model.",
    "Line two, out of three lines that will be provided to the aura model.",
    "Line three, out of three lines that will be provided to the aura model. This is a last line.",
]


async def text_to_speech():
    async with websockets.connect(uri, additional_headers={"Authorization": os.getenv("CF_TOKEN")}) as websocket:
        print("connection established")
        for line in input:
            print(f"sending `{line}`")
            await websocket.send(json.dumps({"type": "Speak", "text": line}))

            print("line was sent, flushing")
            await websocket.send(json.dumps({"type": "Flush"}))
            print("flushed, recving")
            resp = await websocket.recv()
            print(f"response received {resp}")


if __name__ == "__main__":
    asyncio.run(text_to_speech())

https://developers.cloudflare.com/changelog/2025-08-27-partner-models/

Vectorize

list-vectors でインデックス内ベクターを列挙可能に

Vectorize に新しい list-vectors 操作が追加され、インデックス内の全ベクター識別子をページネーションで列挙できるようになりました。Wrangler CLI と REST API の両方から利用でき、監査や移行、クリーンアップなどの一括処理に最適です。

  • 主な用途
    • バルク処理(全レコードを走査して再計算・再投入)
    • 監査(内容の検証・レポート作成)
    • データ移行(インデックス間または外部システムへ)
    • クリーンアップ(古いエンベディングの特定と削除)
  • ページネーション仕様(スナップショット一貫性)
    • 最初のリクエスト時点のスナップショットに基づいて結果を固定
    • 以降のページ取得中に「追加」されたベクターは結果に含まれない
    • 以降のページ取得中に「削除」されたベクターも最後まで結果に含まれる
    • レスポンス項目:counttotalCountisTruncatednextCursorcursorExpirationTimestampvectors
    • カーソル期限切れ時は新たに最初からリクエストして再取得
  • 使い方(例)
    • 初回:wrangler vectorize list-vectors <index-name> --count=1000
    • 続き:wrangler vectorize list-vectors <index-name> --count=1000 --cursor="<前回のカーソル>"
  • 運用のヒント
    • 連続呼び出しの間隔に余裕を持ち、レート制限を回避
    • 差分把握が必要な場合は、カーソルを使い切ったのちに新規スナップショットで再実行

https://developers.cloudflare.com/changelog/2025-08-26-vectorize-list-vectors/

Access

MCP サーバーポータルがオープンベータ

複数の MCP(Model Context Protocol)サーバーを単一の HTTP エンドポイントに集約し、Access でのログイン後に各サーバーの認証(未認証/任意の OAuth)を個別に求める仕組みが追加されました。ポータル単位で利用可能なツールやプロンプトを選別でき、ポータル経由のツール実行は Access のログに記録されます。全プランでオープンベータです。

  • 特長
    • 複数 MCP サーバーへのアクセスを 1 つのポータル URL に集約
    • 未認証サーバーと OAuth 保護サーバーの両方に対応(サーバーごとに追加認証)
    • ポータルごとに公開ツール/プロンプトを選定可能
    • 観測性: ツール実行リクエストを Access が記録

https://developers.cloudflare.com/changelog/2025-08-26-mcp-server-portals/

MCP サーバーで OAuth 認証に対応

Access が MCP(Model Context Protocol)サーバーの OAuth 保護に対応し、ポータルでのログイン後に各 MCP サーバーで追加の OAuth 認証を求める構成が可能になりました。サーバーごとに認可設定を分離でき、ツール実行は Access の監査ログで可視化されます。

  • できること
    • MCP サーバーを OAuth(任意のプロバイダ)で保護
    • ポータルに集約しつつサーバー単位で追加認証を実施
    • ツール実行リクエストを Access で記録・監査
  • 利点
    • サーバーごとに最小権限・きめ細かなアクセス制御
    • 既存の IdP 運用と統合し、認証強度や失効管理を一元化
  • 設定の要点
    • MCP サーバー側で OAuth クライアント(Client ID/Secret、Redirect URI)を設定
    • Access の MCP ポータルと組み合わせ、公開するツールやプロンプトを選定

https://developers.cloudflare.com/changelog/2025-08-26-access-mcp-oauth/

CASB

AI アプリ統合が追加され、リスク検出と修復を強化

CASB に主要な AI アプリとのネイティブ連携が追加され、テナント全体のアクティビティや共有状態を可視化し、機密情報の持ち出し・外部共有・公開設定ミスなどを自動検出できるようになりました。検出結果に対しては、ダッシュボードからのワンクリック修復やワークフロー連携で是正を進められます。

  • できること
    • 接続した AI アプリのユーザー/ワークスペース/共有設定の可視化
    • 機密データのアップロード・外部共有・公開リンクなどのリスク検出(テンプレート検出+カスタム検出)
    • 修復アクション(共有の取り消し、権限ダウングレード、関係者通知など)の実行
    • 監査証跡の保存と検索、アラート通知(Slack/PagerDuty など)との連携
  • 設定方法
    • Zero Trust ダッシュボード → CASB → Integrations で対象の AI アプリを選択
    • 管理者同意(OAuth など)で接続し、初回スキャンを開始
    • 検出テンプレートの有効化やカスタム条件を作成し、必要に応じて自動修復を有効化
  • ユースケース
    • AI への機密データ送信の可視化と制御
    • 社外共有・パブリック化されたプロジェクト/ドキュメントの一括洗い出しと是正
    • 監査・コンプライアンス要件に沿った継続的なリスクモニタリング

https://developers.cloudflare.com/changelog/2025-08-26-casb-ai-integrations/

Digital Experience Monitoring

MCP サーバーの監視に対応

DEX で MCP サーバーの状態と性能を可視化できるようになりました。可用性・レイテンシ・エラー率などを監視し、しきい値超過時に通知やトリアージへつなげられます。

  • できること
    • 稼働状況(UP/DOWN)、応答時間、失敗率のトレンドをダッシュボードで確認
    • サービス別・エンドポイント別のボトルネック特定とインシデントの早期検知
    • 通知(Slack/PagerDuty など)や Logpush と連携した運用
  • 設定の流れ
    • Zero Trust ダッシュボードで MCP サーバーを監視対象として追加
    • 認証が必要な場合は Access と組み合わせてエンドポイントを保護
    • しきい値と通知チャネルを設定し、必要に応じてログ出力を有効化
  • ユースケース
    • エージェント/ツールの応答遅延や失敗の傾向把握
    • 障害時の原因切り分け(ネットワーク/アプリ/依存サービス)
    • キャパシティ計画と SLO/SLA のモニタリング

https://developers.cloudflare.com/changelog/2025-08-29-dex-mcp-server/

AI Crawl Control

一般提供(GA)へ—詳細分析と 402 応答を追加

AI Audit は AI Crawl Control に改称され、一般提供(GA)となりました。クローラー別の可視化が強化され、ブロック時に HTTP 402(Payment Required)を返すカスタム応答も設定できます。

  • Crawlers タブの拡張
    • 各 AI クローラーの許可/ブロック合計リクエスト数を表示
    • 選択期間におけるクローラー活動のトレンドチャートを表示
  • ブロック時のカスタム応答(有料プラン)
    • 応答コードを 403 Forbidden または 402 Payment Required から選択
    • 応答本文にライセンス連絡先など任意メッセージを追加可能(クローラー事業者に条件を明示)

https://developers.cloudflare.com/changelog/2025-08-27-ai-crawl-control-launch/

WAF

WAF ルール更新(2025-08-25)

  • 追加された検出(既定 Disabled)
    • Apache HTTP Server – Code Execution(CVE-2024-38474)
    • Laravel – Remote Code Execution(CVE-2024-55661)
    • WordPress: WPBookit – Remote Code Execution(CVE-2025-6058)

https://developers.cloudflare.com/changelog/2025-08-25-waf-release/

緊急リリース対応

  • 追加検出(既定 Block)
    • Next.js – 危険なファイルダウンロード(CVE-2025-55173)
    • Next.js – 情報漏えい/キャッシュ汚染(CVE-2025-57752)
  • 影響
    • 任意ファイル取得やキャッシュ汚染を通じたデータ漏えいのリスク
    • アプリケーションの信頼性低下と広範な本番環境への影響
  • 推奨対応
    • Next.js のパッチ適用と画像最適化設定の見直し
    • キャッシュのハードニング(再検証ポリシーやキー設計の再点検)
    • マネージドルールセットが最新であることを確認し段階的に適用

https://developers.cloudflare.com/changelog/2025-08-29-emergency-waf-release/

筆者の感想

さて Cloudflare のAI Week 2025 が終わりましたね。週間のアップデートと混ぜるとごちゃごちゃしそうだったので Chengelog ベースでまとめていいます。とはいえ気になるところもあると思います。早速 Cloudflare のブログで以下の Recap 記事が投稿されていたので読んでもらうと良いと思います!AI Week のブログへのリンクも用意されているので気になる AIWeek のブログも読んでみてください。

https://blog.cloudflare.com/ai-week-2025-wrapup/

Gemcook Tech Blog
Gemcook Tech Blog

Discussion