View a markdown version of this page

Annexe A : Comment Services AWS utiliser le présigné URLs - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Annexe A : Comment Services AWS utiliser le présigné URLs

Cette annexe fournit des informations Services AWS et des fonctionnalités relatives à l'utilisation de la présignature URLs. Ces informations ont deux objectifs :

  • Fournir aux ingénieurs de sécurité qui mettent en œuvre des contrôles des informations sur les impacts possibles de ces contrôles.

  • Sensibiliser aux situations dans lesquelles ce risque peut être pertinent pour les interactions de journalisation des URL.

Important

Cette annexe ne fournit pas une liste complète des présignés Services AWS URLs ni leur utilisation. Il ne couvre pas non plus les solutions personnalisées ou tierces.

Console Amazon S3

Principal : utilisateur de la console

Expiration par défaut : 5 minutes

Exclusion de responsabilité

Cette section décrit le comportement actuel de la console Amazon S3. AWS les comportements de la console peuvent être modifiés sans préavis.

La console Amazon S3 prend en charge le téléchargement et le chargement d'objets. Les téléchargements utilisent une URL présignée dont le délai d'expiration est de 300 secondes (5 minutes).  L'URL est générée par une demande adressée àhttps://<bucket-region>.console.aws.amazon.com/s3/batchOpsServlet-proxy.

Cette demande est lancée lorsque l'utilisateur clique sur un bouton de téléchargement, de sorte que l'URL n'est pas générée à l'avance ou envoyée au client tant que la demande explicite de téléchargement n'a pas été formulée.

Les téléchargements sont similaires, sauf que la console envoie deux demandes : OPTIONS sous forme de contrôle CORS avant le vol, et. PUT Les deux demandes utilisent la même signature.

Les informations d'identification utilisées pour la signature sont des informations d'identification temporaires associées à l'utilisateur actuellement connecté. Les détails relatifs à la méthode d'obtention de ces informations d'identification temporaires ne sont pas inclus dans ce guide.

Amazon S3 Object Lambda

Principal : appelant du point d'accès

Expiration par défaut : 61 secondes

Note

Depuis le 7 novembre 2025, S3 Object Lambda n'est disponible que pour les clients existants qui utilisent actuellement le service, ainsi que pour certains partenaires AWS Partner Network (APN). Pour des fonctionnalités similaires à celles de S3 Object Lambda, cliquez ici : modification de la disponibilité d'Amazon S3 Object Lambda.

Amazon S3 Object Lambda utilise des AWS Lambda fonctions pour traiter et transformer automatiquement les données lorsqu'elles sont extraites d'Amazon S3. Lorsque S3 Object Lambda invoque une fonction, celle-ci reçoit une URL présignée (inputS3Url) qu'elle peut utiliser pour télécharger l'objet d'origine depuis le point d'accès compatible.

Ils URLs sont présignés pour le point d'accès Amazon S3 compatible, qui est fourni lorsque vous configurez S3 Object Lambda. (Ce n'est pas la même chose que le point d'accès Object Lambda.) Au lieu d'utiliser un rôle lié à la fonction Lambda, l'URL est signée en utilisant l'identité de l'appelant d'origine, et les autorisations de cet utilisateur s'appliquent lorsque l'URL est utilisée. Si l'URL contient des en-têtes signés, la fonction Lambda doit inclure ces en-têtes dans l'appel à Amazon S3.

L'URL présignée renvoyée a un délai d'expiration de 61 secondes (une seconde de plus que la durée maximale d'une fonction Lambda d'un objet S3). L'URL générée ne peut être utilisée qu'avec le point d'accès compatible. L'appelant du point d'accès S3 Object Lambda doit avoir accès à ce point d'accès. Vous pouvez limiter cet accès au contexte de S3 Object Lambda en utilisant la condition. "aws:CalledVia": ["s3-object-lambda.amazonaws.com"] Lorsque cette condition est attachée à un point d'accès ou à un bucket de support, un utilisateur ne peut pas accéder directement au point d'accès ou au bucket de support.

L'avantage de cette approche est qu'il n'est pas nécessaire d'accorder à la fonction Lambda l'accès à votre compartiment ou point d'accès S3. Le rôle associé à la fonction Lambda aura besoin d'autorisations pour WriteGetObjectResponse, mais pas d'autorisations pour. GetObject

Lorsque S3 Object Lambda génère une version présignée URLs, il n'ajoute aucune restriction réseau. Une URL peut donc être utilisée en dehors de la fonction Lambda. Cependant, toutes les restrictions imposées à l'appelant de S3 Object Lambda s'appliquent toujours. Par exemple, si votre fonction Lambda s'exécute dans un VPC et que vous limitez l'appelant à utiliser un point de terminaison VPC, toute personne en possession de l'URL présignée devra être en mesure de l'envoyer via ce point de terminaison VPC. Cette restriction s'applique également à SourceIpet VpcSourceIp

Note

Pour utiliser une fonction Lambda d'un objet S3 dans un VPC, celui-ci doit disposer d'une route vers les points de terminaison S3 publics à appeler. WriteGetObjectResponse Cela n'indique pas que les exigences relatives à l'utilisation d'un point de terminaison VPC ne s'appliqueraient pas aux demandes de récupération de données depuis le compartiment.

AWS Lambda Interrégional CopyObject

Principal :AWS interne

Expiration par défaut : 3600 secondes

Lorsque vous utilisez l'UploadPartCopyAPI CopyObjector pour effectuer une copie Régions AWS, Amazon S3 utilise une version présignée URLs en interne. Ils APIs peuvent être appelés directement depuis SDKs ou depuis les AWS CLI commandes aws s3api copy-object etaws s3api upload-part. Ils APIs ne sont pas utilisés pour la réplication Amazon S3, mais ils sont utilisés par les aws s3 sync commandes AWS CLI aws s3 cp et lorsque la source et la destination sont des compartiments S3. Ils sont également pris en charge par TransferManager des implémentations dans divers AWS SDKs domaines.

AWS Lambda GetFunction

Principal : AWS interne

Expiration par défaut : 10 minutes

AWS Lambda stocke la version utilisateur dans un compartiment S3 appartenant à l'équipe Lambda, avant de générer les actifs déployés sur des conteneurs Lambda. Lorsque vous souhaitez accéder au code de votre fonction, vous appelez l'GetFunctionAPI. Cette API répond par Code.Location une URL présignée valide pendant 10 minutes (ce délai d'expiration correspond au comportement actuel et non à un contrat publié). Si vous ne voulez pas le code, vous pouvez utiliser une combinaison de GetFunctionConfigurationGetFunctionConcurrency, et ListTagspour récupérer les autres données renvoyées parGetFunction.

L'URL renvoyée n'est pas signée avec les informations d'identification de l'utilisateur actuellement connecté, mais au nom de l'utilisateur par Lambda. Pour cette raison, les clés de condition (telles queaws:SourceIP) appliquées à l'utilisateur actuellement connecté ou aux informations d'identification de session temporaires de l'utilisateur ne s'appliquent pas à l'URL générée. Cela est vrai que les clés de condition soient appliquées GetFunctionuniquement ou qu'elles soient appliquées à toutes les utilisations de l'API AWS pour l'utilisateur ou la session.

La console Lambda utilise GetFunctionégalement l'URL présignée qu'elle renvoie. La console utilise les informations d'identification temporaires associées à l'utilisateur actuellement connecté pour appeler GetFunction. Les détails relatifs à l'obtention de ces informations d'identification temporaires ne sont pas couverts par ce document.

Amazon ECR

Principal : AWS interne

Expiration par défaut : 1 heure

Amazon Elastic Container Registry (Amazon ECR) fournit GetDownloadUrlForLayerl'API, qui renvoie une URL présignée valide pendant une heure et prend en charge le téléchargement d'une seule couche à partir d'une image Amazon ECR. Cependant, cette opération est utilisée par le proxy Amazon ECR et n'est généralement pas utilisée par les utilisateurs pour extraire et envoyer des images.

Amazon Redshift Spectrum

Principal : rôle transmis à CREATE EXTERNAL SCHEMA via IAM_ROLE

Expiration par défaut : 1 heure

Amazon Redshift Spectrum utilise le URLs présigné en interne et interdit les restrictions sur la combinaison du compartiment et du rôle Amazon Redshift qui limiteraient le présigné. URLs Vous pouvez utiliser une s3:signatureAge valeur de 16 minutes, mais les valeurs très faibles ne sont pas fiables. La valeur minimale que vous pouvez utiliser dépend du moment et de la taille de votre requête. Bien qu'une valeur inférieure à 16 minutes fonctionne pour de nombreux scénarios, elle doit être testée. Le rôle peut et doit être limité à l'utilisation exclusive de Redshift Spectrum, qui ne divulgue pas ce URLs qu'il génère, atténuant ainsi la justification typique des valeurs d'expiration inférieures.

Amazon SageMaker AI Studio

Amazon SageMaker AI Studio prend en charge deux actions d'API : CreatePresignedDomainUrlet CreatePresignedNotebookInstanceUrl. Toutefois, elles APIs ne sont pas liées à la fonctionnalité d'URL présignée de Signature version 4. Ils APIs créent une URL qui utilise un authToken paramètre, mais ils ne prennent en charge aucun des paramètres de requête standard de Signature Version 4.

authTokenest un mécanisme différent mais présente des similitudes avec le pré-signé URLs. Il est envoyé sous forme de paramètre de chaîne de requête et prend en charge un délai d'expiration de 5 minutes.

SageMaker L'IA prend en charge les restrictions du réseau. Si vous limitez l'sagemaker:CreatePresignedDomainUrlaction, celle-ci s'applique à la fois à l'appel CreatePresignedDomainUrlet à l'utilisation de l'URL générée. Si une URL est générée à partir d'un réseau valide puis envoyée par un réseau non valide, l'appel d'API pour générer l'URL aboutit, mais la demande d'envoi de l'URL échoue. Il en va de CreatePresignedNotebookInstanceUrlmême pour l'sagemaker:CreatePresignedNotebookInstanceUrlaction.

Pour plus d'informations, consultez la documentation sur l'SageMaker IA.