J'utilise AWS cli sur Ubuntu 16.04 LTS, j'essaie de répertorier tous les compartiments. Dans aws configure, j'ai entré la clé d'accès utilisateur IAM et la clé secrète utilisateur IAM. Cet utilisateur IAM est autorisé à répertorier le compartiment et peut répertorier le compartiment dans la console.Mais en utilisant AWS cli avec ces clés et en exécutant la commande - aws s3 ls cela me donne cette erreur.
ne erreur client (SignatureDoesNotMatch) s'est produite lors de l'appel de l'opération ListBuckets: la signature de la demande que nous avons calculée ne correspond pas à la signature que vous avez fournie. Vérifiez votre clé et votre méthode de signature.
J'ai également créé une stratégie pour répertorier les compartiments pour cet utilisateur IAM particulier.
Je souhaite effectuer d'autres opérations de synchronisation et rendre tous les fichiers publics via un script Shell à l'aide de ces informations d'identification utilisateur IAM et je ne souhaite pas utiliser les informations d'identification racine.
J'ai trouvé mon problème. J'avais d'anciennes clés AWS dans mes variables d'environnement. Si vous avez des variables d'environnement nommées
AWS_SECRET_ACCESS_KEY
AWS_ACCESS_KEY_ID
l'awscli utilisera ces valeurs au lieu de ce qui est fourni via ~/.aws/credentials
.
Essayez d'exécuter printenv | grep AWS
et vérifiez que ces valeurs ne sont pas définies. Si oui, lancez simplement un
unset AWS_SECRET_ACCESS_KEY
unset AWS_ACCESS_KEY_ID
et vous devriez être prêt à partir.
Peut se produire même lorsque l'heure de la machine n'est pas synchronisée avec le serveur NT.
Sudo ntpdate ntp.ubuntu.com
m'a aidé à résoudre ce problème.
Le problème était avec les informations d'identification AWS, j'ai copié le secret du fichier Excel dans le fichier txt et le peu de caractères spéciaux supprimés. Assurez-vous de le copier correctement.
Essayez également de redémarrer la machine et assurez-vous qu'AWS n'est pas défini dans la variable d'environnement, vous pouvez le vérifier avec printenv | grep 'AWS'
Cela signifie que vos informations d'identification de sécurité AWS ont expiré. La simple création de nouvelles informations d'identification fonctionnera.
Create New Access Key
. Notez l'ID de la clé d'accès et la clé d'accès secrèteaws configure
et entrez de nouveaux identifiantsVérifiez simplement l'heure sur le système sur lequel vous exécutez. assurez-vous qu'il est mis à jour
Dans mon cas, j'avais un cryptage mais j'envoyais la taille du fichier avant d'être crypté. Si vous obtenez cette erreur et que votre secret et votre clé sont corrects, cela vaut la peine de vérifier votre md5, votre type de mime, votre taille et d'autres attributs
Veuillez basculer vers l'utilisateur root.
Dans mon cas, j'accédais à cette commande aws s3 ls
de l'utilisateur standard et son erreur ci-dessous:
"AWS CLI répertoriant les compartiments S3 donne une erreur SignatureDoesNotMatch lors de l'utilisation des informations d'identification utilisateur IAM"
puis basculé vers l'utilisateur root en utilisant Sudo su
commande et a tenté d'accéder à aws s3 ls
commande, il répertorie les noms de compartiment s3.
Pour moi, le problème était le/dans ma clé secrète pour contourner la clé secrète collée dans un fichier .dat sur mon PC, la copier sur le serveur pg le fichier .dat sur le serveur et copier la clé secrète lors de l'utilisation de aws configure
Cette erreur est due à une clé d'accès/clé secrète aws s3 incorrecte.