セキュリティ・認証の用語一覧へ
このページの目次

署名付きURLとは?

最終更新:2026/08/18

3秒でわかる

有効期限と許可する操作を署名として埋め込んだ URL。非公開のファイルを、鍵を配らずに一時的に取得させるための仕組みです。

もう少し詳しく

どういうものか

アクセスを許可する条件を URL の中に書き込み、その全体をサーバー秘密鍵で署名した URL のこと。クエリ文字列に有効期限、対象のファイル、許可する操作、署名が並ぶ。受け取ったストレージ側は署名を検証し、条件に合っていればファイルを返す。期限を過ぎていたり、URL の一部が書き換えられていたりすると拒否される。

Amazon S3 の presigned URL、Google Cloud Storage の signed URL、CDN の署名付き URL が代表例になる。

なぜ必要か

非公開のファイルを利用者に渡すとき、選択肢は 3 つある。バケット全体を公開する、アプリのサーバーが中継して配信する、署名付き URL を発行する、の 3 つになる。公開は論外で、中継はサーバーの帯域と CPU を消費する。署名付き URL なら、アプリは短い文字列を返すだけで、実際の転送はストレージが直接引き受ける。

アップロードにも使える。利用者のブラウザが直接ストレージへ送るため、大きなファイルがアプリのサーバーを通らない。

具体例

// AWS SDK v3 でダウンロード用の URL を発行する import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"; import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; const s3 = new S3Client({ region: "ap-northeast-1" }); const url = await getSignedUrl( s3, new GetObjectCommand({ Bucket: "invoices", Key: "2026/07/1234.pdf" }), { expiresIn: 300 } // 5分だけ有効 );

発行される URL は下記のような形になる。

https://invoices.s3.ap-northeast-1.amazonaws.com/2026/07/1234.pdf ?X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Expires=300 &X-Amz-SignedHeaders=host &X-Amz-Signature=8b1c...

つまずきやすいところ

有効期限を長く取りすぎる設計が最も危ない。URL は貼り付けて共有できてしまうため、期限内なら誰でも取得できる。用途に合わせて数分から数十分に収める。

発行そのものに認可の判定を挟み忘れる例も多い。「ログインしていれば任意のファイル ID で発行できる」実装だと、他人の請求書を取り放題になる。発行前に、その利用者がそのファイルの持ち主かを必ず確かめる。

期限切れの扱いも忘れられやすい。画面に表示したあと利用者が席を外し、戻ってクリックすると 403 が返る。押した時点で再発行する作りにしておくと事故が減る。

覚え方

合鍵を渡すのではなく、時間制限つきの入館証を発行する仕組み。証は期限が来れば自然に無効になる。

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地署名付きURLセキュリティ

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

AWSクラウドコースの全編を見る