署名付きURL(時限アクセス)

技術の仕組み | アクセス制御

← 技術の仕組み

ファイル置き場(オブジェクトストレージ)に、鍵やログインを配らずに「この1ファイルだけ・この期限まで」アクセスを許したい――そのための一時的なURLが署名付きURLです。サーバが署名して発行し、受け取った人はそのURLで直接ストレージから取得します。URL自体が期限つきの合鍵になる、という点が肝です。

先に押さえる

ストレージは通常、非公開です。そこにアクセスさせるのに、全員に鍵を配ると管理できません。そこでサーバが「どのファイル・いつまで」を含めて署名した1本のURLを作る。ストレージは署名と期限を確かめて、正しければその1ファイルだけ返します。

発行から取得までの流れ

1サーバが署名付きURLを発行
利用者
「このファイルが欲しい」
アプリのサーバ権限を確認し署名
署名付きURL(対象1ファイル+期限入り)
2利用者はURLで直接ストレージへ
利用者
署名付きURLでアクセス
ストレージ署名と期限を検証 → 1ファイルだけ返す

動きで見る

アプリが自分の権限で期限つきURLを発行し、以後クライアントがそのURLで直接ストレージへアクセスする流れが見えます。(図は横スクロールできます)

URLが合鍵だから、絞りが命

見抜きどころ

署名付きURLは、知っている人なら誰でも期限内はアクセスできます(ログイン不要)。つまりURLの漏えい=アクセス権の漏えい。だから守りは「もっと認証を足す」ではなく、期限を短く対象を1オブジェクトに限定して、漏れても被害を小さくする方向です。長すぎる期限や広すぎる対象が弱点になります。

つまずきやすい

「URLは秘密だから安全」ではありません。URLはリンク履歴・ログ・共有で漏れます。アクセストークンと同じで、範囲と期限の限られた合鍵だと捉え、短命・狭い範囲で運用するのが要点です。

攻撃と対策をひと目で

漏えい・悪用

  • URLの漏えい=アクセス権の漏えい(リンク履歴・ログ・共有で流出。ログイン不要で誰でも使える)
  • 期限が長い/対象が広いと、漏れたときの被害が大きい
  • 「URLは秘密だから安全」という思い込み

効く対策

  • 期限を短く(用が済んだら自動で失効)
  • 対象を1オブジェクト・必要な操作(取得/書込)だけに限定
  • 都度発行で最小限に。必要ならアクセス元も制限
  • 監査ログで発行・利用を追跡できるようにする

つながる仕組み

同じ発想→ OAuthとアクセストークン(範囲と期限の合鍵) 土台→ 署名で正しさを確かめる

この仕組みを使う設問