J'essaie d'accéder à des objets Amazon Simple Storage Service (Amazon S3) qui sont chiffrés avec AWS Key Management Service (AWS KMS). L'erreur suivante s'affiche : « Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4 ».
Résolution
Les raisons suivantes peuvent provoquer l’affichage du message d'erreur « Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4 » :
- Vos requêtes ne sont pas signées avec AWS Signature Version 4.
- Vous avez effectué une requête anonyme.
Vos requêtes ne sont pas signées avec AWS Signature Version 4
Lorsque vous utilisez Signature Version 2 avec un objet chiffré par AWS KMS, vous pouvez recevoir un message d'erreur. Certains points de terminaison et régions AWS de l'API REST S3 prennent toujours en charge les requêtes signées à l'aide de Signature Version 2. Toutefois, il est recommandé d'utiliser Signature Version 4 pour la connexion. Pour plus d'informations, consultez la section AWS Signature Version 2 désactivée (obsolète) pour Amazon S3.
Vous pouvez envoyer des requêtes signées avec Signature Version 2 à des compartiments situés dans des régions qui prennent en charge Signature Version 2. Toutefois, AWS KMS exige que vos requêtes soient signées avec Signature Version 4.
Pour identifier la version de signature que vous avez utilisée pour les requêtes relatives aux objets de votre compartiment, effectuez les actions suivantes :
Remarque : Pour les requêtes qui spécifient des clés gérées par AWS KMS, vous devez utiliser le protocole SSL ou TLS. Si vous n'utilisez pas SSL ou TLS et que vous effectuez la requête via une connexion non sécurisée, le message d'erreur suivant s'affiche :
« n error occurred (InvalidArgument) when calling the operation_performed operation: Requests specifying Server Side Encryption with AWS KMS managed keys must be made over a secure connection.""Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4 »
Vous avez présenté une requête anonyme
Une requête anonyme est une requête qui n'est pas signée avec des informations d'identification AWS. Par exemple, vous utilisez l'URL de l'objet sur votre navigateur ou un client HTTP pour télécharger un objet S3.
Un exemple d'URL d'objet est https://bucketname.s3.region.amazonaws.com/folder/file.txt.
Voici un exemple de commande curl que vous exécutez pour effectuer une requête anonyme :
curl -vo ./local/path/file.txt https://bucketname.s3.region.amazonaws.com/folder/file.txt
Pour éviter l'affichage du message d'erreur, assurez-vous que votre requête est signée avec des informations d'identification AWS.