1 votes

Ec2-consistent-snapshot ne peut pas valider les informations d'accès fournies.

Je suis en train d'essayer d'utiliser l'utilitaire ec2-consistent-snapshot d'Eric Hammond sur un serveur mysql dédié.

J'ai créé un utilisateur IAM et attaché une politique d'autorisation pour utilisateur puissant (en utilisant la console AWS).

Sur une instance ec2 Ubuntu 10.10 32 bits et un volume XFS, j'ai installé ec2-consistent-snapshot en suivant ces instructions : http://alestic.com/mt/mt-search.cgi?blog_id=1&tag=ec2-consistent-snapshot&limit=20.

La commande que j'utilise est la suivante :

ec2-consistent-snapshot \ 
    --freeze-filesystem /data03 \
    --description "Description de test $(date +'%Y-%m-%d %H:%M:%S')"  \
    --mysql \
    --mysql-user   \
    --mysql-host 127.0.0.1 \
    --mysql-socket /var/run/mysqld/mysqld.sock \
    --debug \
    vol-11111111

Et la sortie de debug est :

ec2-consistent-snapshot: Utilisation de la clé d'accès AWS : AWSAccessKeyId=AKI[...]
ec2-consistent-snapshot: Jeu Mar 22 10:28:53 2012: Connexion MySQL en tant que 
ec2-consistent-snapshot: Jeu Mar 22 10:28:53 2012: Flush MySQL
ec2-consistent-snapshot: Jeu Mar 22 10:28:53 2012: Flush & verrouillage MySQL
ec2-consistent-snapshot: master_log_file="mysql-bin.000726", master_log_pos=106
ec2-consistent-snapshot: Jeu Mar 22 10:28:53 2012: sync
ec2-consistent-snapshot: Jeu Mar 22 10:28:53 2012: xfs_freeze -f /data03
ec2-consistent-snapshot: Jeu Mar 22 10:28:54 2012: Création de l'objet EC2
ec2-consistent-snapshot: Jeu Mar 22 10:28:54 2012: ec2-create-snapshot vol-11111111
ec2-consistent-snapshot: ERREUR: AWS n'a pas pu valider les informations d'identification fournies
ec2-consistent-snapshot: Jeu Mar 22 10:28:56 2012: xfs_freeze -u /data03
ec2-consistent-snapshot: Jeu Mar 22 10:28:56 2012: Déverrouillage MySQL
ec2-consistent-snapshot: Jeu Mar 22 10:28:56 2012: Déconnexion MySQL
ec2-consistent-snapshot: Jeu Mar 22 10:28:56 2012: terminé

(Bien sûr, l'identifiant du volume n'est pas réellement 111111111).

J'ai essayé de modifier le code pour m'assurer qu'il utilisait la clé secrète correcte, qui s'est avérée être la bonne.

J'ai aussi une variable d'environnement qui pointe vers /root/.awssecret

echo $AWS_CREDENTIAL_FILE
/root/.awssecret

D'autres choses que j'ai essayées, et qui ont produit les mêmes résultats : - Passer le chemin du fichier d'informations d'identification en tant que paramètre. - Générer de nouvelles informations d'identification et les utiliser. - Spécifier la région comme us-east-1 plutôt que de laisser aller par défaut.

Voici à quoi ressemble mon fichier d'informations d'identification :

AWSAccessKeyId=AKI[...]
AWSSecretKey=DPh[..]

C'est à peu près tout, merci pour toute aide.

2voto

cyberx86 Points 20450

La sortie de débogage de ec2-consistent-snapshot lit généralement :

'Utilisation de la clé d'accès AWS : AKI[...]' 

Étant donné que la sortie affichée comprend AWSAccessKeyId= et qu'après un coup d'œil rapide au code (lignes 470-471) - qui se contente simplement de lire chaque ligne, sans analyse supplémentaire :

($aws_access_key_id, $aws_secret_access_key) =
      File::Slurp::read_file($aws_credentials_file);

La solution consiste probablement à laisser de côté les préfixes 'AWSAccessKeyId=' et 'AWSSecretKey=' dans votre fichier de credentials. Votre fichier de credentials devrait donc ressembler à :

AKI[...]
DPh[...]

Conformément à la documentation du script, le fichier doit contenir la clé d'accès Amazon AWS et la clé d'accès secrète sur des lignes séparées et dans cet ordre. De plus, le script lit la variable d'environnement $AWS_CREDENTIALS.

Vous pouvez également essayer de transmettre les paramètres d'authentification directement au script en utilisant les paramètres --aws-access-key-id et --aws-secret-access-key.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X