web-dev-qa-db-fra.com

URL pré-signée AWS S3 sans date d'expiration

Existe-t-il un moyen de générer des URL pré-signées sans date d'expiration? Je développe une application de messagerie électronique où mes pièces jointes seront enregistrées dans S3. Veuillez également me faire savoir quelle est la meilleure façon de télécharger des pièces jointes via le SDK JavaScript.

J'utilise le code ci-dessous

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

Cela dépend de la façon dont vous générez l'URL pré-signée S3. Plus précisément, la version de signature que vous utilisez et le type d'informations d'identification IAM que vous utilisez.

Les informations d'identification que vous pouvez utiliser pour créer une URL pré-signée incluent:

  • Profil d'instance IAM (informations d'identification temporaires et tournantes): valide jusqu'à 6 heures
  • STS (informations d'identification temporaires): valable jusqu'à 36 heures
  • Utilisateur IAM (informations d'identification à long terme): valide jusqu'à 7 jours lors de l'utilisation de la signature v4
  • Utilisateur IAM (informations d'identification à long terme): valide jusqu'à la fin de l'époque lors de l'utilisation de la signature v2

Notez spécifiquement:

  • la signature v2 est potentiellement obsolète
  • la limite d'expiration pour la signature v2 est différente de la signature v4
  • la signature v4 offre certains avantages en termes de sécurité et d'efficacité par rapport à v2
  • si vous utilisez les informations d'identification STS pour générer une URL pré-signée, l'URL expirera lorsque les informations d'identification STS expireront, si celle-ci est antérieure à l'expiration explicite que vous avez demandée pour l'URL pré-signée
  • la création d'URL pré-signées qui sont valides jusqu'à la fin de l'époque n'est pas la meilleure pratique de sécurité

Pour en savoir plus, voir:

0
jarmod