ストレージ

プリサインドURL ぷりさいんどゆーあーるえる

署名付きURLS3オブジェクトストレージアクセス制御一時的アクセスクラウドストレージ
プリサインドURLって何?

簡単に言うとこんな感じ!

「期限付きの合鍵」みたいなものだよ! 本来は鍵のかかった倉庫(クラウドのファイル置き場)に、一定時間だけ入れる特別なURLを発行して、誰でもそのリンクからファイルをダウンロード(またはアップロード)できるようにする仕組みなんだ!


プリサインドURLとは

プリサインドURL(Presigned URL)とは、クラウドのオブジェクトストレージ(Amazon S3やGoogle Cloud Storageなど)に保存されたファイルへ、一時的・限定的なアクセスを許可するための署名付きURLのことです。「署名付きURL」とも呼ばれます。

通常、クラウドストレージ上のファイルはアクセス権限を持つユーザーやシステムしか取得・操作できません。しかしプリサインドURLを使うと、アクセス権限を持たない第三者でも、そのURLを知っていれば指定された操作(ダウンロードやアップロード)を、有効期限内だけ行えるようになります。

実務上は、社内システムから取引先に請求書PDFを安全に共有したり、ユーザーが直接S3にファイルをアップロードするWebアプリを構築したりと、幅広い場面で使われています。サーバーを経由せずにクライアントとストレージを直結できるため、大容量ファイルの転送効率が良い点も特徴です。


プリサインドURLの仕組みと構成要素

プリサインドURLは、通常のURLにアクセス権限の「署名(シグネチャ)」情報をパラメーターとして埋め込んだものです。

構成要素内容
エンドポイントストレージサービスのベースURLhttps://s3.amazonaws.com/my-bucket/
オブジェクトキー対象ファイルのパスinvoices/2026/april.pdf
アクセスキーID権限を委譲する主体の識別子AKIAIOSFODNN7EXAMPLE
有効期限URLが使用できる期限X-Amz-Expires=3600(1時間)
許可する操作GET(ダウンロード)またはPUT(アップロード)X-Amz-SignedHeaders=host
署名(Signature)上記情報を秘密鍵でハッシュした値X-Amz-Signature=abc123...

処理の流れ(シーケンス)

[クライアント]     [自社サーバー]       [S3]
     |                  |                |
     |--- ファイル要求 -->|                |
     |                  |-- 署名計算 ---> |(署名はサーバー側で生成)
     |<-- プリサインドURL--|                |
     |                  |                |
     |-------- プリサインドURLで直接アクセス -------->|
     |<-------- ファイル(またはアップロード完了)----|

ポイント:秘密鍵はURLに含まれない

署名の計算に使う秘密鍵(シークレットアクセスキー)はURLに含まれません。URLに含まれるのは「この署名は正しい権限で作られた」という証拠(ハッシュ値)だけです。そのためURLが漏洩しても秘密鍵は守られます(有効期限内は使われてしまうリスクはあります)。

有効期限の目安

ユースケース推奨有効期限
ダウンロードリンクをメール送付1〜24時間
Webページからの即時ダウンロード5〜15分
ユーザーのファイルアップロード5〜30分
バッチ処理・夜間バックアップ処理時間+余裕(最大7日)

歴史と背景

  • 2006年: Amazon S3がサービス開始。当初からオブジェクトへの署名付きアクセス機能を持っていた
  • 2010年代前半: スマートフォンアプリの普及に伴い、モバイルから直接クラウドにファイルをアップロードする需要が急増。プリサインドURLが実用的な解決策として注目される
  • 2013年: AWS Signature Version 4が導入され、セキュリティが強化。現在の標準署名方式となる
  • 2015年頃〜: Google Cloud Storage、Azure Blob Storageも同様の仕組み(それぞれ「署名付きURL」「SAS URL」と呼称)を提供し、業界標準の手法として定着
  • 2020年代: サーバーレスアーキテクチャの普及とともに、サーバーを介さない直接ストレージアクセスのパターンとして不可欠な技術に

類似機能との比較・使い分け

クラウドストレージへのアクセス制御の方法はいくつかあります。それぞれの使い分けを整理します。

ストレージアクセス方法の比較 プリサインドURL 一時的・限定操作 ✓ 権限不要で利用可能 ✓ 有効期限で自動失効 ✓ 特定ファイルのみ ✓ サーバー不要で直送 △ URL漏洩リスクあり 用途例: 取引先へのファイル共有 ユーザーアップロード バケットポリシー / ACL 恒久的・広範囲 ✓ 設定が一元管理 ✓ 全ファイルに適用可 △ 公開は全員に開放 △ 細かい制御は難しい △ 期限設定ができない 用途例: 静的Webサイト公開 社内全員がアクセス可 IAMロール経由 権限付与・永続的 ✓ 最もセキュア ✓ 細かい権限設定可 △ AWSアカウント必要 △ 外部共有には不向き △ 設定・管理が複雑 用途例: 社内システム間連携 EC2からS3へのアクセス

各クラウドサービスでの呼び方

クラウド機能名特記事項
AWS S3プリサインドURL(Presigned URL)最大有効期限7日(SigV4)
Google Cloud Storage署名付きURL(Signed URL)最大有効期限7日
Azure Blob StorageSAS URL(Shared Access Signature)最大有効期限無制限(非推奨)、実質1日〜数日

関連する規格・RFC

規格・RFC番号内容
RFC 7617HTTP Basic認証スキーム(プリサインドURLが代替する認証の文脈)
RFC 7519JWT(JSON Web Token)。一時的な認証トークンの仕組みとして比較される
RFC 6749OAuth 2.0。アクセス権限委譲の標準仕様(プリサインドURLの思想的な親戚)

関連用語

  • オブジェクトストレージ — ファイルをオブジェクト単位で管理するクラウドストレージの形式。S3などが代表例
  • Amazon S3 — AWSが提供するオブジェクトストレージサービス。プリサインドURLの主な利用場所
  • IAM — AWSのアクセス権限管理サービス。プリサインドURL生成に使う認証情報の元
  • HMAC — メッセージ認証コード。プリサインドURLの署名生成に使われるハッシュ技術
  • CDN — コンテンツ配信ネットワーク。ファイル配信の高速化でプリサインドURLと組み合わせることも
  • アクセス制御 — 誰が何にアクセスできるかを管理する仕組み全般
  • JWT — 一時的な認証情報をURLに埋め込む手法として比較される技術
  • CORS — ブラウザからS3へ直接アップロードする際に設定が必要なセキュリティ制約