Utilisation d'URL présignée pour S3 on Outposts - Amazon Simple Storage Service

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.

Utilisation d'URL présignée pour S3 on Outposts

Pour accorder un accès limité dans le temps aux objets stockés localement dans un Outpost sans mettre à jour votre stratégie de compartiment, vous pouvez utiliser une URL présignée. Avec les URL présignées, vous pouvez, en tant que propriétaire du compartiment, partager des objets avec des personnes dans votre cloud privé virtuel (VPC) ou leur accorder la possibilité de télécharger ou de supprimer des objets.

Lorsque vous créez une URL présignée à l'aide de kits SDK AWS ou de AWS Command Line Interface (AWS CLI), vous associez l'URL à une action spécifique. Vous accordez également un accès limité dans le temps à l'URL présignée en choisissant un délai d'expiration personnalisé qui peut aller de 1 seconde à 7 jours. Lorsque vous partagez l'URL présignée, la personne dans le VPC peut effectuer l'action intégrée dans l'URL comme s'il s'agissait de l'utilisateur connecté d'origine. Lorsque l'URL atteint son délai d'expiration, elle expire et ne fonctionne plus.

Limitation des capacités des URL présignées

Les capacités d'une URL présignée sont limitées par les autorisations de l'utilisateur qui l'a créée. En résumé, les URL présignées correspondent à des jetons porteurs qui donnent accès à ceux qui les possèdent. À ce titre, nous vous recommandons de les protéger de manière appropriée.

AWS Signature Version 4 (SigV4)

Pour imposer un comportement spécifique lorsque les requêtes d'URL présignées sont authentifiées à l'aide d'AWS Signature Version 4 (SigV4), vous pouvez utiliser les clés de condition dans les stratégies de compartiment et les stratégies de point d'accès. Par exemple, vous pouvez créer une stratégie de compartiment qui utilise la condition s3-outposts:signatureAge pour refuser toute demande d'URL présignée Amazon S3 on Outposts sur les objets du compartiment example-outpost-bucket si la signature date de plus de 10 minutes. Pour utiliser cet exemple, remplacez user input placeholders par vos propres informations.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Deny a presigned URL request if the signature is more than 10 minutes old", "Effect": "Deny", "Principal": {"AWS":"444455556666"}, "Action": "s3-outposts:*", "Resource": "arn:aws:s3-outposts:us-east-1:111122223333:outpost/op-01ac5d28a6a232904/bucket/example-outpost-bucket/object/*", "Condition": { "NumericGreaterThan": {"s3-outposts:signatureAge": 600000}, "StringEquals": {"s3-outposts:authType": "REST-QUERY-STRING"} } } ] }

Pour obtenir la liste des clés de condition et des exemples de stratégies supplémentaires que vous pouvez utiliser pour imposer un comportement spécifique lorsque des requêtes d'URL présignées sont authentifiées à l'aide de Signature Version 4, consultez Clés de stratégie spécifiques à l'authentification AWS Signature Version 4 (SigV4).

Restriction de chemin réseau

Si vous souhaitez restreindre l'utilisation des URL présignées et de tous les accès S3 on Outposts à des chemins réseau particuliers, vous pouvez écrire des stratégies qui nécessitent un chemin d'accès réseau particulier. Pour définir la restriction sur le principal IAM qui effectue l'appel, vous pouvez utiliser des politiques IAM AWS Identity and Access Management (par exemple, utilisateur, groupe ou stratégies de rôle). Pour définir la restriction de la ressource S3 on Outposts, vous pouvez utiliser des stratégies basées sur les ressources (par exemple, des stratégies de compartiment et de point d'accès).

Une restriction de chemin réseau sur le principal IAM exige que l'utilisateur de ces informations d'identification effectue des requêtes à partir du réseau spécifié. Une restriction sur le compartiment ou le point d'accès nécessite que toutes les requêtes adressées à cette ressource proviennent du réseau spécifié. Ces restrictions s'appliquent également hors du scénario des URL présignées.

La condition globale IAM que vous utilisez dépend du type de point de terminaison. Si vous utilisez le point de terminaison public pour S3 on Outposts, utilisez aws:SourceIp. Si vous utilisez le point de terminaison d'un VPC pour S3 sur Outposts, utilisez aws:SourceVpc ou aws:SourceVpce.

La déclaration de politique IAM suivante nécessite que le principal accède à AWS uniquement à partir de la plage réseau spécifiée. Avec cette déclaration de stratégie, tous les accès doivent provenir de cette plage, même lorsqu'une personne utilise une URL présignée pour S3 on Outposts. Pour utiliser cet exemple, remplacez user input placeholders par vos propres informations.

{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddressIfExists": {"aws:SourceIp": "IP-address-range"}, "BoolIfExists": {"aws:ViaAWSService": "false"} } }

Pour un exemple de stratégie de compartiment utilisant la clé de condition globale aws:SourceIP AWS pour restreindre l'accès à un compartiment S3 on Outposts à une plage réseau spécifique, consultez Configuration d'IAM avec S3 on Outposts.

Utilisateurs habilités à créer une URL présignée

Toute personne qui possède des autorisations de sécurité valides peut créer une URL présignée. Mais pour qu'un utilisateur dans le VPC puisse accéder correctement à un objet, l'URL présignée doit être créée par une personne qui possède l'autorisation d'effectuer l'opération sur laquelle l'URL présignée est basée.

Vous pouvez utiliser les informations d'identification suivantes pour créer une URL présignée  :

  • Profil d'instance IAM : valide pendant 6 heures.

  • AWS Security Token Service : valide pendant 36 heures lorsque signé avec des autorisations permanentes, telles que les autorisations de l'utilisateur root du Compte AWS ou d'un utilisateur IAM.

  • Utilisateur IAM : valide pendant 7 jours en cas d'utilisation d'AWS Signature Version 4.

    Afin de créer une URL présignée valide pendant 7 jours, commencez par déléguer des autorisations d'utilisateur IAM (clé d'accès et clé secrète) pour le kit SDK que vous utilisez. Ensuite, générez une URL présignée en utilisant AWS Signature Version 4.

Note
  • Si vous avez créé une URL présignée à l'aide d'un jeton temporaire, l'URL expire lorsque le jeton expire, même si vous avez créé l'URL avec une heure d'expiration postérieure.

  • Étant donné que les URL présignées accordent l'accès à vos compartiments S3 on Outposts à toute personne possédant l'URL, nous vous recommandons de les protéger de manière appropriée. Pour en savoir plus sur la protection des URL présignées, veuillez consulter Limitation des capacités des URL présignées.

Quand S3 on Outposts vérifie-t-il la date et l'heure d'expiration dans une URL présignée ?

S3 on Outposts vérifie la date et l'heure d'expiration d'une URL signée au moment de la requête HTTP. Par exemple, si un client commence à télécharger un fichier volumineux immédiatement avant la date d'expiration, le téléchargement continue même si la date d'expiration intervient pendant le téléchargement. Cependant, si la connexion est perdue et que le client essaie de redémarrer le téléchargement une fois la date d'expiration passée, le téléchargement échoue.

Pour plus d'informations sur l'utilisation d'une URL présignée pour partager ou charger des objets, consultez les rubriques suivantes.