2017-09-01 5 views
0

J'ai besoin de copier périodiquement les journaux présents dans l'instance EC2 dans le compartiment S3. J'utilise donc Amazon cli et crontab pour le programmer. Dans crontab -e, j'ai ajouté des lignes ci-dessousAWS - Copie des journaux EC2 vers S3 à travers cron

* * * * * aws --version >> /tmp/out.txt 2&>1 
* * * * * aws s3 cp log_file_path s3://bucket >> /tmp/out.txt 2&>1 

Première déclaration, je viens d'utiliser pour vérifier si aws cli fonctionne bien comme je suis nouveau à ce qui est réorientent la version aws à un fichier à chaque minute.

La première commande fonctionne correctement mais la seconde ne fonctionne pas. Si j'exécute la commande aws s3 cp de manière autonome, cela fonctionne correctement, c'est-à-dire que je copie le fichier journal dans le compartiment s3. Mais ne fonctionne pas avec Cron comme mentionné ci-dessus,

A travers les journaux appris à connaître que je reçois l'erreur suivante:

Upload failed....An error occurred (AccessDenied) when calling the PutObject operation : Access Denied. 

Quelqu'un peut-il s'il vous plaît indiquer comment le faire fonctionner.

+0

https://serverfault.com/questions/614890/cant-run-aws-cli-from-cron-credentials –

+0

ajouter la connexion à la deuxième ligne aussi –

+0

@DusanBajic - Mise à jour – Anand

Répondre

2

Je suppose que vous avez configuré les informations d'identification AWS en tant que variables d'environnement dans le compte de votre utilisateur EC2. Le travail cron n'a pas accès à ces variables d'environnement, c'est pourquoi vous devez les déplacer vers ~/.aws/credentials.

Cependant l'option beaucoup mieux est à assign the permissions to the EC2 instance directly via un rôle IAM.

0

La première étape consiste à créer un rôle EC2 avec les autorisations appropriées afin que les actions s3 soient réalisables. Ainsi la configuration cls aws n'est pas nécessaire.

Ensuite, créez le script qui fera le téléchargement ou toutes les actions liées aws, et enfin ajouter la commande cron.

Envisagez de créer un rôle ec2 comme étant obligatoire du point de vue de la sécurité et de l'administration.