Vercel Blob で時間制限付き署名済み URL が利用可能に
Vercel は Blob ストレージに対して、操作・パス・有効期限を細かく指定可能な署名付き URL(Signed URLs)機能を追加し、セキュリティと直接アップロードの利便性を両立させた。
キーポイント
高度な権限管理機能の実装
各 URL が特定の操作(PUT/GET/HEAD/DELETE)、パス、および最大 7 日の有効期限にスコープされ、1 つの URL で複数の操作を混在させない厳格な制御が可能になった。
ブラウザからの直接アップロード対応
署名付き PUT URL がマルチパートをサポートすることで、サーバーを経由せずブラウザからストレージへ大規模ファイルをストリーミング転送できる仕組みが提供された。
条件付き削除機能の追加
DELETE 操作に ifMatch オプションを追加し、署名生成時点以降にオブジェクトが上書きされていない場合のみ削除を実行する、競合防止機能が強化された。
OIDC との連携によるセキュリティ向上
サーバー側で OIDC を経由して認証し、署名付きトークンを生成することで、永続的な BLOB_READ_WRITE_TOKEN をサーバー外に漏らさずに安全なアクセス制御を実現する。
影響分析・編集コメントを表示
影響分析
この機能追加は、クラウドストレージのアクセス制御において「最小権限の原則」を容易に実装できる手段を提供し、特にフロントエンドから直接データを扱う現代の Web アプリケーション開発におけるセキュリティリスクを大幅に低減します。また、サーバーレスアーキテクチャにおけるパフォーマンス最適化とデータ整合性の担保という二つの課題を同時に解決する重要なアップデートです。
編集コメント
開発者が長年求めていた、細粒度なストレージアクセス制御が実装されました。特に OIDC との連携により、トークン管理の複雑さを解消しつつセキュリティを維持できる点は、現代の Web 開発において極めて重要です。
Vercel Blob で、有効期限付きの署名済み URL を生成できるようになりました。署名済み URL は、特定のオブジェクトへのアップロード、ダウンロード、検査、または削除を許可するが、Blob ストア全体へのアクセス権は付与しない、有効期限付きのスコープ限定 URL です。
各 URL は、単一の操作(put、get、head、delete のいずれか)、単一のパス名、および最大 7 日間の有効期限にスコープされます。署名には操作と制約が含まれるため、GET 用に署名された URL を PUT に再利用することはできません。
ブラウザからの直接アップロード
アップロード用 URL(put)はマルチパートをサポートしているため、ブラウザから大規模ファイルをサーバーを経由せず、直接 Blob ストレージへストリーミングできます。
条件付き削除
削除用 URL は ifMatch オプションを受け付けます。これにより、署名取得後にオブジェクトが上書きされていない場合にのみ削除が適用されます。
署名済み URL は OIDC と併用して動作します。サーバーは OIDC を介して Blob へ認証し、署名済みトークンを生成して、ブラウザ向けにスコープを限定した有効期限付きの URL を作成します。これにより、長期有効な BLOB_READ_WRITE_TOKEN がサーバーから外部に出ることはありません。
@vercel/blob をバージョン 2.4.0 に更新し、ドキュメントを読んでスタートしましょう。
続きを読む
原文を表示
You can now generate time-bound signed URLs for Vercel Blob. A signed URL is a scoped URL with an expiry that allows you to upload, download, inspect, or delete a specific object without giving access to your entire Blob store.
Each URL is scoped to a single operation (put, get, head, or delete), a single pathname, and an expiry you choose, up to 7 days. The signature covers the operation and constraints, so a URL signed for a GET can't be reused as a PUT.
Direct uploads from the browser
Upload URLs (put) support multipart, so the browser can stream large files straight to Blob storage without round-tripping through your server.
Conditional deletes
Delete URLs accept an ifMatch option so the delete only applies if the object hasn't been overwritten since you signed the URL:
Signed URLs work alongside OIDC. Your server authenticates to Blob via OIDC, generates a signed token, and produces narrowly scoped, time-bound URLs for the browser, so your long-lived BLOB_READ_WRITE_TOKEN never leaves the server.
Update @vercel/blob to 2.4.0 and read the documentation to get started.
Read more
関連記事
BGP AS_PATH の最初の AS を強制する仕組みの導入
Cloudflare は、Spamhaus が報告したルート乗っ取り事案を踏まえ、不正なアクターが未使用の自律システム番号(ASN)を利用して偽の AS_PATH を作成しトラフィックを誤誘導する手口に対処するため、BGP の経路情報において最初の AS 番号の検証を強化する措置を発表した。
大規模なAI推論の不正利用防止について(5分読了)
Vercelは、攻撃者が露出したエンドポイントを悪用して盗んだAI推論を転売する手法と、従来のレート制限が不十分な理由を説明した。同社はBotID分析を用いてすべてのリクエストを検証し、不正利用を削減するアプローチを紹介している。
トランプ大統領、AI モデルの公開前に政府レビューを義務付ける行政命令に署名
ドナルド・トランプ米大統領は火曜日、最先端 AI モデルの公開前に連邦政府への共有を促す「任意枠組み」を含む行政命令に署名した。これはセキュリティ強化と革新促進が目的である。