View a markdown version of this page

Spécification de la version de signature lors de l'authentification des demandes - 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.

Spécification de la version de signature lors de l'authentification des demandes

Amazon S3 ne prend en charge que AWS la version 4 de Signature dans la plupart des cas Régions AWS. Dans certaines versions plus anciennes Régions AWS, Amazon S3 prend en charge Signature Version 4 et Signature Version 2. Cependant, Signature Version 2 est en cours de désactivation (obsolète). Pour de plus amples informations sur la fin de la prise en charge de Signature Version 2, veuillez consulter AWS Signature Version 2 désactivée (obsolète) pour Amazon S3.

Pour obtenir la liste de toutes les régions Amazon S3 et savoir quelles sont les versions de signatures qu'elles prennent en charge, veuillez consulter Régions et points de terminaisons dans les Références générales AWS .

Dans tous les Régions AWS cas, les AWS SDK utilisent Signature Version 4 par défaut pour authentifier les demandes. Si vous utilisez AWS des SDK publiés avant mai 2016, vous devrez peut-être demander Signature Version 4, comme indiqué dans le tableau suivant.

Kit SDK Demande de la Signature Version 4 pour l'authentification des demandes
AWS CLI

Pour le profil par défaut, exécutez la commande suivante :

$ aws configure set default.s3.signature_version s3v4

Pour un profil personnalisé, exécutez la commande suivante :

$ aws configure set profile.your_profile_name.s3.signature_version s3v4
Kit SDK Java

Ajoutez la chaîne suivante à votre code :

System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_SYSTEM_PROPERTY, "true");

Sinon, vous pouvez spécifier la commande ci-dessous dans la ligne de commande :

-Dcom.amazonaws.services.s3.enableV4
Kit SDK PHP

Définissez le paramètre signature sur v4 lors de la création du client de service Amazon S3 pour le kit SDK PHP v2 :

<?php $client = S3Client::factory([ 'region' => 'YOUR-REGION', 'version' => 'latest', 'signature' => 'v4' ]);

Lorsque vous utilisez le kit SDK PHP v3, définissez le paramètre signature_version sur v4 lors de la création du client de service Amazon S3 :

<?php $s3 = new Aws\S3\S3Client([ 'version' => '2006-03-01', 'region' => 'YOUR-REGION', 'signature_version' => 'v4' ]);
Python-Boto SDK

Spécifiez la chaîne suivante dans le fichier de configuration par défaut boto:

[s3] use-sigv4 = True
Kit SDK Ruby

Kit SDK Ruby – Version 1 : définissez le paramètre :s3_signature_version sur :v4 lors de la création du client:

s3 = AWS::S3::Client.new(:s3_signature_version => :v4)

Kit SDK Ruby – Version 3 : définissez le paramètre signature_version sur v4 lors de la création du client:

s3 = Aws::S3::Client.new(signature_version: 'v4')
Kit SDK .NET

Ajoutez la chaîne suivante au code avant de créer le client Amazon S3 :

AWSConfigsS3.UseSignatureVersion4 = true;

Sinon, vous pouvez ajouter le code ci-dessous au fichier de configuration :

<appSettings> <add key="AWS.S3.UseSignatureVersion4" value="true" /> </appSettings>

 

AWS Signature Version 2 désactivée (obsolète) pour Amazon S3

Signature Version 2 est en cours de désactivation (obsolète) dans Amazon S3. Une fois cette version devenue obsolète, Amazon S3 n'acceptera plus que les demandes d'API signées avec Signature Version 4.

Cette section fournit des réponses aux questions fréquentes concernant la fin de la prise en charge de Signature Version 2.

Qu'est-ce que la version 2/4 de signature et que signifie signer des demandes ?

Le processus de signature de Signature Version 2 ou Signature Version 4 est utilisé pour authentifier vos demandes d'API Amazon S3. La signature des demandes permet à Amazon S3 d'identifier l'auteur de l'envoi de la demande et protège vos demandes contre les utilisateurs malveillants.

Pour plus d'informations sur les AWS demandes de signature, voir Signer des demandes d' AWS API dans le Références générales AWS.

En quoi consiste la mise à jour ?

Nous prenons actuellement en charge les demandes d'API Amazon S3 qui sont signées avec les processus Signature Version 2 et Signature Version 4. Une fois la version 2 devenue obsolète, Amazon S3 n'acceptera plus que les demandes signées avec Signature Version 4.

Pour plus d'informations sur les AWS demandes de signature, consultez la section Modifications apportées à la version 4 de Signature dans le Références générales AWS.

Quel est l'objectif de cette mise à jour ?

Signature Version 4 améliore la sécurité grâce à l'utilisation d'une clé de signature au lieu d'une clé d'accès secrète. La version 4 de Signature est actuellement prise en charge dans tous les pays Régions AWS, tandis que la version 2 de Signature n'est prise en charge que dans les régions qui ont été lancées avant janvier 2014. Cette mise à jour nous permet d'offrir une expérience plus homogène dans toutes les régions.

Comment vérifier que j'utilise Signature Version 4 et quelles sont les mises à jour dont j'ai besoin ?

La version de signature utilisée pour signer les demandes est généralement définie par l'outil ou le kit SDK du côté du client. Par défaut, les dernières versions de nos AWS SDK utilisent Signature Version 4. Pour les logiciels tiers, contactez l'équipe d'assistance appropriée de votre logiciel pour confirmer la version dont vous avez besoin. Si vous envoyez des appels REST directs à Amazon S3, vous devez modifier votre application pour qu'elle utilise le processus de signature Signature Version 4.

Pour plus d'informations sur la version des AWS SDK à utiliser lors du passage à la version 4 de Signature, consultezPassage de Signature Version 2 à Signature Version 4.

Pour de plus amples informations sur l'utilisation de Signature Version 4 avec l'API REST Amazon S3, veuillez consulter Authentification des demandes (AWS Signature Version 4) dans la Référence API Amazon Simple Storage Service.

Que se passe-t-il si je n'effectue pas les mises à niveau ?

L'authentification des demandes signées avec Signature Version 2 échouera avec Amazon S3. Les demandeurs verront des erreurs indiquant que la demande doit être signée avec Signature Version 4.

Dois-je effectuer des modifications même si j'utilise une URL présignée qui exige que je signe pour plus de 7 jours ?

Si vous utilisez une URL présignée qui exige que vous signiez pour plus de 7 jours, aucune action n'est requise de votre part. Vous pouvez continuer à utiliser AWS Signature Version 2 pour signer et authentifier l'URL présignée. Pour plus de détails sur la manière de migrer vers Signature Version 4 pour un scénario d'URL présignée, consultez la documentation Amazon S3.

Plus d'informations

Passage de Signature Version 2 à Signature Version 4

Si vous utilisez actuellement Signature Version 2 pour authentifier vos demandes d'API Amazon S3, vous devez passer à Signature Version 4. Signature Version 2 ne sera bientôt plus pris en charge, comme décrit dans AWS Signature Version 2 désactivée (obsolète) pour Amazon S3.

Pour de plus amples informations sur l'utilisation de Signature Version 4 avec l'API REST Amazon S3, veuillez consulter Authentification des demandes (AWS Signature Version 4) dans la Référence API Amazon Simple Storage Service.

La liste suivante répertorie les kits SDK avec la version minimum nécessaire pour utiliser Signature Version 4 (SigV4). Si vous utilisez des URL présignées avec les SDK AWS Java, JavaScript (Node.js) ou Python (Boto/CLI), vous devez définir les URL correctes Région AWS et définir Signature Version 4 dans la configuration du client. Pour de plus amples informations sur la définition de SigV4 dans la configuration client, veuillez consulter Spécification de la version de signature lors de l'authentification des demandes.

Si vous utilisez ce SDK/Product Passez à cette version de SDK Modification de code requise dans le client pour utiliser Sigv4 ? Lien vers la documentation SDK

AWS SDK pour Java v1

Passez à Java 1.11.201+ ou v2. Oui Spécification de la version de signature lors de l'authentification des demandes

AWS SDK pour Java v2

Pas de mise à niveau de SDK nécessaire. Non AWS SDK pour Java

AWS SDK pour .NET v1

Passez à 3.1.10 ou version ultérieure. Oui AWS SDK pour .NET

AWS SDK pour .NET v2

Passez à 3.1.10 ou version ultérieure. Non AWS SDK pour .NET v2

AWS SDK pour .NET v3

Passez à 3.3.0.0 ou version ultérieure. Oui AWS SDK pour .NET v3

AWS SDK pour JavaScript v1

Passez à 2.68.0 ou version ultérieure. Oui AWS SDK pour JavaScript

AWS SDK pour JavaScript v2

Passez à 2.68.0 ou version ultérieure. Oui AWS SDK pour JavaScript

AWS SDK pour JavaScript v3

Aucune autre action n'est requise. Passez à la version majeure V3 au cours du 3e trimestre 2019. Non AWS SDK pour JavaScript

AWS SDK pour PHP v1

Recommandation de mise à niveau vers la version la plus récente de PHP ou, au moins, vers v2.7.4 avec le paramètre de signature défini sur v4 dans la configuration du client S3. Oui AWS SDK pour PHP

AWS SDK pour PHP v2

Recommandation de mise à niveau vers la version la plus récente de PHP ou, au moins, vers v2.7.4 avec le paramètre de signature défini sur v4 dans la configuration du client S3. Non AWS SDK pour PHP

AWS SDK pour PHP v3

Pas de mise à niveau de SDK nécessaire. Non AWS SDK pour PHP

Boto2

Passez à Boto2 v2.49.0. Oui Mise à niveau Boto 2

Boto3

Passez à 1.5.71 (Botocore), 1.4.6 (Boto3). Oui Boto 3 - AWS SDK pour Python

AWS CLI

Passez à 1.11.108. Oui AWS Command Line Interface

AWS CLI v2 (aperçu)

Pas de mise à niveau de SDK nécessaire. Non AWS Command Line Interface version 2

AWS SDK pour Ruby v1

Passez à Ruby V3. Oui Ruby V3 pour AWS

AWS SDK pour Ruby v2

Passez à Ruby V3. Oui Ruby V3 pour AWS

AWS SDK pour Ruby v3

Pas de mise à niveau de SDK nécessaire. Non Ruby V3 pour AWS

Go

Pas de mise à niveau de SDK nécessaire. Non AWS SDK pour Go

C++

Pas de mise à niveau de SDK nécessaire. Non AWS SDK pour C++
AWS Tools for Windows PowerShell or AWS Tools for PowerShell Core

Si vous utilisez des versions de module antérieures à 3.3.0.0, vous devez passer à 3.3.0.0.

Pour obtenir les informations de version, utilisez le cmdlet Get-Module :

Get-Module –Name AWSPowershell Get-Module –Name AWSPowershell.NetCore

Pour mettre à jour la version 3.3.0.0, utilisez le cmdlet Update-Module :

Update-Module –Name AWSPowershell Update-Module –Name AWSPowershell.NetCore

Vous pouvez utiliser des URL présignées valides pendant plus de 7 jours sur lesquelles vous pouvez envoyer le trafic Signature Version 2.