J'ai créé une URL présignée pour un compartiment Amazon Simple Storage Service (Amazon S3) à l'aide d'un jeton temporaire. Toutefois, l'URL a expiré avant la date d'expiration que j'ai spécifiée. Quelle en est la raison ? Comment puis-je créer une URL pré-signée valide plus longtemps ?
Résolution
Si vous avez créé une URL présignée à l'aide d'un jeton temporaire, l'URL expire en même temps que le jeton. L'URL expire même si elle a été créée avec une date d'expiration ultérieure.
Parmi les informations d'identification que vous pouvez utiliser pour créer une URL présignée, figurent :
- Profil d'instance AWS Identity and Access Management (IAM) : valide jusqu'à six heures.
- AWS Security Token Service (STS) : valide jusqu'à 36 heures lorsqu'il est signé par un utilisateur AWS Identity and Access Management (IAM), ou valide jusqu'à une heure lorsqu'il est signé par l'utilisateur root.
- Utilisateur IAM : valide jusqu'à 7 jours en cas d'utilisation d'AWS Signature Version 4.
Pour créer une URL présignée valide pendant jusqu’à 7 jours, désignez des informations d'identification d'utilisateur IAM (clé d'accès et clé d'accès secrète) pour votre kit SDK. Ensuite, générez une URL présignée avec AWS Signature Version 4. Vous trouverez des exemples dans la section Calculs de signature dans AWS Signature Version 4.
Lorsque vous créez une URL présignée, tenez compte des points suivants :
- Les services qui assument un rôle, tel que le rôle d'exécution AWS Lambda, ne sont pas nécessairement conformes aux paramètres de durée de session du rôle.
- Étant donné que les URL présignées accordent l'accès au compartiment Amazon S3 à quiconque possède l'URL, il est recommandé de les protéger de manière appropriée.
- Si vous avez créé une URL présignée à l'aide d'un jeton temporaire, l'URL expire en même temps que le jeton. C’est le cas, même si l'URL a été créée avec une date d'expiration ultérieure.
Pour autoriser les utilisateurs à accéder aux objets de votre compartiment Amazon S3 pendant plus de sept jours, envisagez l'une des options suivantes :
Informations connexes
Partage d'objets à l'aide d'URL présignées
GetSessionToken
Extraire des informations d'identification de sécurité à partir des métadonnées d'instance
Authentification des requêtes : utilisation des paramètres de requête (AWS Signature Version 4)
Documentation Boto 3 : S3