web-dev-qa-db-ja.com

有効期限なしのAWS S3事前署名URL

有効期限なしで事前署名済みURLを生成する方法はありますか? S3で添付ファイルを保存するメールアプリを開発しています。また、JavaScript SDKを使用して添付ファイルをダウンロードする最適な方法を教えてください。

私は以下のコードを使用しています

var params = {Bucket: 'bucket', Key: 'key', Expires: 60};
var url = s3.getSignedUrl('getObject', params);
console.log('The URL is', url);
36
srinisunka

署名済みURLの最大有効期限は、作成時から 1週間 です。したがって、有効期限なしに事前署名されたURLを使用する方法はありません。

48
yottabytt

S3事前署名URLの生成方法によって異なります。具体的には、使用する署名バージョンと使用するIAM認証情報のタイプ。

事前署名されたURLを作成するために使用できる資格情報には、次のものがあります。

  • IAMインスタンスプロファイル(一時的なローテーションされた認証情報):最大6時間有効
  • STS(一時的な資格情報):最大36時間有効
  • IAMユーザー(長期資格情報):署名v4を使用する場合、最大7日間有効
  • IAMユーザー(長期資格情報):署名v2を使用する場合、- エポックの終わり まで有効

特に注意してください:

  • 署名v2は 潜在的に廃止予定
  • 署名v2の有効期限は署名v4とは異なります
  • シグニチャv4は、いくつかの セキュリティと効率の利点 v2を超えて
  • sTS資格情報を使用して事前署名URLを生成する場合、STS資格情報が期限切れになると、事前署名URLに要求した明示的な有効期限よりも早い場合、URLは期限切れになります
  • エポックの終わりまで有効な事前署名済みURLを作成することは、最善のセキュリティ対策ではありません

詳細については、以下を参照してください。

0
jarmod