MENU

S3の署名付きURLは「作った人の権限」で動く。有効期限が早く切れる理由も整理した

S3の署名付きURLは「作った人の権限」で動く。有効期限が早く切れる理由も整理したことを説明する画像

おはようございます、YASUです。

DVAの勉強で、S3の「署名付きURL」が何度も出てきました。「ファイルを一時的に、特定の人にだけ渡す仕組み」という説明は見かけますが、有効期限の決まり方が分かりにくかったので、シンプルに整理しました。

目次

結論

署名付きURLは、S3のオブジェクトに、期限付きでアクセスできるURLです。作った人の権限で動き、有効期限は、URLに指定した時間か、作成に使った認証情報の期限の、短い方になります。

署名付きURLとは

S3のバケットは、デフォルトでは、公開されていません。署名付きURLを使うと、バケットを公開しなくても、AWSの認証情報を持たない人が、指定したオブジェクトを、ダウンロードやアップロードできます。自分なりのイメージでは、「期限付きの入室券」です。

誰の権限で動くのか

  • 署名付きURLは、作った人の権限で動く。そのオペレーションを実行する許可を持つ人が作る必要がある
  • 作成に使った認証情報が、取り消されたり、削除されたり、非アクティブ化されたりすると、URLも期限切れになる

有効期限は、認証情報で変わる

  • IAMユーザーの認証情報で作る:最大7日間まで有効にできる
  • 一時的な認証情報(IAMロールなど)で作る:その認証情報の期限が切れると、URLも期限切れになる。URLに長い有効期限を指定していても、同じ
  • S3コンソールで作る:有効期限は、1分から12時間まで

前に整理したIAMロールの一時的な認証情報には、期限がありました。そのため、ロールで署名付きURLを作ると、URLの期限も、ロールのセッションが切れるまでになります。

注意点

署名付きURLは、URLを知っている人なら誰でも使えます。そのため、有効期限は必要な分だけにして、権限も、必要最小限にしておくのが、ベストプラクティスとされています。

試験での見分け方

  • 「バケットを公開せずに、一時的にファイルを共有したい」→ 署名付きURL
  • 「ユーザーに、AWSの認証情報を渡さずに、S3へアップロードさせたい」→ 署名付きURL
  • 「URLの期限が、指定より早く切れた」→ 作成に使った一時的な認証情報の期限を疑う

まとめ

  • 署名付きURLは、バケットを公開せずに、期限付きでオブジェクトへアクセスさせる仕組み
  • 作った人の権限で動き、その認証情報が無効になると、URLも使えなくなる
  • IAMユーザーなら最大7日間。一時的な認証情報なら、その期限まで
  • URLを知っている人は誰でも使えるので、期限と権限は、必要最小限にする

「作った人の権限で、認証情報の期限まで」という点を押さえると、署名付きURLの動き方が、すっきりしました。それでは、また明日!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次