View a markdown version of this page

Politique POST - 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.

Politique POST

La politique requise pour effectuer des demandes authentifiées à l'aide de HTTP POST est un UTF-8 document codé en base64 écrit en notation JavaScript objet (JSON) qui spécifie les conditions que la demande doit remplir. Selon la manière dont vous concevez votre document de politique, vous pouvez contrôler la granularité de l'accès par téléchargement, par utilisateur, pour tous les téléchargements ou selon d'autres modèles répondant à vos besoins.

Cette section décrit la politique POST. Pour des exemples de calculs de signature à l'aide de la politique POST, consultezExemple : Browser-Based téléchargement à l'aide de HTTP POST (à l'aide de AWS Signature (version 4).

Note

Bien que le document de politique soit facultatif, nous vous recommandons vivement d'en utiliser un afin de contrôler ce qui est autorisé dans la demande. Si vous rendez le compartiment accessible en écriture publique, vous n'avez aucun contrôle sur les utilisateurs qui peuvent y écrire.

Voici un exemple de document de politique POST.

{ "expiration": "2007-12-01T12:00:00.000Z", "conditions": [ {"acl": "public-read" }, {"bucket": "johnsmith" }, ["starts-with", "$key", "user/eric/"], ] }

La politique POST contient toujours les conditions éléments expiration et. L'exemple de politique utilise deux types de correspondance de conditions (correspondance exacte et correspondance commençant par une correspondance). Les sections suivantes décrivent ces éléments.

Expiration

L'expirationélément spécifie la date et l'heure d'expiration de la politique POST au format de date ISO8601 GMT. Par exemple, 2013-08-01T12:00:00.000Z spécifie que la politique POST n'est pas valide après minuit GMT le 1er août 2013.

Correspondance des conditions

Le tableau suivant décrit les types de correspondance de conditions que vous pouvez utiliser pour spécifier les conditions de politique POST (décrites dans la section suivante). Bien que vous deviez spécifier au moins une condition pour chaque champ de formulaire que vous spécifiez dans le formulaire, vous pouvez créer des critères de correspondance plus complexes en spécifiant plusieurs conditions pour un champ de formulaire.

Type de correspondance de condition Description

Correspondances exactes

La valeur du champ de formulaire doit correspondre à la valeur spécifiée. Cet exemple indique que la liste ACL doit être définie sur public-read :

{"acl": "public-read" }

Cet exemple représente une méthode alternative pour indiquer que la liste ACL doit être définie sur public-read :

[ "eq", "$acl", "public-read" ]

Commence par

La valeur doit commencer par la valeur spécifiée. Cet exemple indique que la clé de l'objet doit commencer par user/user1 :

["starts-with", "$key", "user/user1/"]

Correspondance Content-Types dans une Comma-Separated liste

Content-Types les valeurs d'une starts-with condition contenant des virgules sont interprétées comme des listes. Chaque valeur de la liste doit remplir la condition pour que l'ensemble de la condition soit réussi. Par exemple, étant donné la condition suivante :

["starts-with", "$Content-Type", "image/"]

La valeur suivante satisferait à la condition :

"image/jpg,image/png,image/gif"

La valeur suivante ne satisferait pas à la condition :

["image/jpg,text/plain"]
Note

Les éléments de données autres que ceux Content-Type sont traités comme des chaînes, indépendamment de la présence de virgules.

Correspondance avec un contenu quelconque

Pour configurer la politique POST afin d'autoriser tout contenu dans un champ de formulaire, utilisez starts-with avec une valeur vide (« »). Cet exemple autorise n'importe quelle valeur pour success_action_redirect :

["starts-with", "$success_action_redirect", ""]

Spécification de plages

Pour les champs de formulaire qui acceptent une plage, séparez les limites supérieure et inférieure par une virgule. Cet exemple autorise une taille de fichier comprise entre 1 et 10 Mo :

["content-length-range", 1048576, 10485760]

Les conditions spécifiques prises en charge dans une politique POST sont décrites dansConditions.

Conditions

conditionsDans une politique POST, il y a un tableau d'objets, dont chacun est utilisé pour valider la demande. Vous pouvez utiliser ces conditions pour restreindre ce qui est autorisé dans la demande. Par exemple, les conditions de politique précédentes exigent ce qui suit :

  • La demande doit spécifier le nom du johnsmith compartiment.

  • Le nom de la clé de l'objet doit comporter le user/eric préfixe.

  • L'ACL de l'objet doit être définie surpublic-read.

Chaque champ de formulaire que vous spécifiez dans un formulaire (à l'exception des noms de champs x-amz-signature filepolicy,, et des noms de champs x-ignore- comportant un préfixe) doit figurer dans la liste des conditions.

Note

Toutes les variables du formulaire sont développées avant la validation de la politique POST. Par conséquent, toutes les correspondances de conditions doivent se faire par rapport aux champs de formulaire étendus. Supposons que vous souhaitiez limiter le nom de la clé de votre objet à un préfixe spécifique (user/user1). Dans ce cas, vous définissez le champ du formulaire clé suruser/user1/${filename}. Votre politique POST doit être [ "starts-with", "$key", "user/user1/" ] (ne pas entrer[ "starts-with", "$key", "user/user1/${filename}" ]). Pour de plus amples informations, veuillez consulter Correspondance des conditions.

Les conditions du document de politique sont décrites dans le tableau suivant.

Nom d'élément Description
acl

Spécifie la valeur ACL qui doit être utilisée lors de la soumission du formulaire.

Cette condition prend en charge la correspondance exacte et le type de correspondance des starts-with conditions discuté dans la section suivante.

bucket

Spécifie le nom de compartiment acceptable.

Cette condition prend en charge le type de correspondance de condition correspondant exactement.

content-length-range

Taille minimale et maximale autorisée pour le contenu téléchargé.

Cette content-length-range condition prend en charge le type de correspondance des conditions.

Cache-Control

Content-Type

Content-Disposition

Content-Encoding

Expires

REST-specific en-têtes. Pour de plus amples informations, veuillez consulter POST Object.

Cette condition prend en charge la correspondance exacte et le type de correspondance des starts-with conditions.

key

Le nom de clé acceptable ou un préfixe de l'objet chargé.

Cette condition prend en charge la correspondance exacte et le type de correspondance des starts-with conditions.

success_action_redirect

redirect

URL vers laquelle le client est redirigé en cas d'échec du chargement.

Cette condition prend en charge la correspondance exacte et le type de correspondance des starts-with conditions.

success_action_status

Le code d'état renvoyé au client une fois le téléchargement réussi s'il n'success_action_redirectest pas spécifié.

Cette condition permet une correspondance exacte.

x-amz-algorithm

Algorithme de signature qui doit être utilisé lors du calcul de signature. Pour AWS la version 4 de Signature, la valeur estAWS4-HMAC-SHA256.

Cette condition permet une correspondance exacte.

x-amz-credential

Les informations d'identification que vous avez utilisées pour calculer la signature. Il fournit l'identifiant de la clé d'accès et les informations de portée identifiant la région et le service pour lesquels la signature est valide. Il doit s'agir de la même étendue que celle que vous avez utilisée pour calculer la clé de signature pour le calcul de la signature.

Il s'agit d'une chaîne de la forme suivante :

<your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

Par exemple :

AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request

Pour Amazon S3, la chaîne aws-service est. s3 Pour obtenir la liste des aws-region chaînes Amazon S3, consultez la section Régions et points de terminaison dans le Références générales AWS. Cela est obligatoire si un document de politique POST est inclus dans la demande.

Cette condition permet une correspondance exacte.

x-amz-date

La valeur de date spécifiée dans la chaîne au format ISO8601. Par exemple, 20130728T000000Z. La date doit être la même que celle que vous avez utilisée lors de la création de la clé de signature pour le calcul de la signature.

Cela est obligatoire si un document de politique POST est inclus dans la demande.

Cette condition permet une correspondance exacte.

x-amz-security-token

Jeton DevPay de sécurité Amazon.

Chaque demande qui utilise Amazon DevPay nécessite deux champs de x-amz-security-token formulaire : un pour le jeton du produit et un pour le jeton utilisateur. Par conséquent, les valeurs doivent être séparées par des virgules. Par exemple, si le jeton utilisateur est eW91dHViZQ== et que le jeton de produit l'estb0hnNVNKWVJIQTA=, vous définissez l'entrée de politique POST sur :{ "x-amz-security-token": "eW91dHViZQ==,b0hnNVNKWVJIQTA=" }.

Pour plus d'informations sur Amazon DevPay, consultez la section Utilisation DevPay dans le guide de l'utilisateur d'Amazon Simple Storage Service.

x-amz-meta-*

User-specified métadonnées.

Cette condition prend en charge la correspondance exacte et le type de correspondance des starts-with conditions.

x-amz-*

Voir POST Object (POST Objectpour les autres x-amz-* en-têtes).

Cette condition permet une correspondance exacte.

Note

Si votre boîte à outils ajoute d'autres champs de formulaire (par exemple, Flash ajoutefilename), vous devez les ajouter au document de politique POST. Si vous pouvez contrôler cette fonctionnalité, ajoutez le préfixe x-ignore- au champ afin qu'Amazon S3 ignore la fonction et que les versions futures de cette fonction ne soient pas affectées.

Echappement de caractère

Les caractères qui doivent être supprimés dans un document de politique POST sont décrits dans le tableau suivant.

Séquence d'échappement Description

\\

Barre oblique inverse

\$

Symbole du dollar

\b

Retour arrière

\f

Saut de page

\n

Nouvelle ligne

\r

Retour chariot

\t

Tabulation horizontale

\v

Tabulation verticale

\ u xxxx

Tous les caractères Unicode

Maintenant que vous connaissez les formulaires et les politiques, et que vous comprenez comment fonctionne la signature, vous pouvez essayer un exemple de téléchargement POST. Vous devez écrire le code pour calculer la signature. L'exemple fournit un exemple de formulaire et une politique POST que vous pouvez utiliser pour tester vos calculs de signature. Pour de plus amples informations, veuillez consulter Exemple : Browser-Based téléchargement à l'aide de HTTP POST (à l'aide de AWS Signature (version 4).