4

J'essaie de recréer la procédure spécifiée dans "Tutorial: Schedule Automated EBS Snapshots Using CloudWatch Events" en utilisant AWS CLI. J'ai presque fini, sauf pour une étape: la configuration des autorisations AWS (étape 9).Comment planifier des instantanés EBS automatisés à l'aide d'événements CloudWatch à l'aide de CLI?

Setting AWS Permissions using AWS console

Si je fais toutes les autres étapes en utilisant AWS CLI et l'étape 9 en utilisant la console AWS, tout fonctionne très bien - les instantanés sont créés périodiquement. J'ai même été capable de créer un rôle identique à celui créé manuellement à l'étape 9 (en utilisant "aws iam create-role" et "aws iam put-role-policy") mais je n'ai pas réussi à l'appliquer à ma règle.

Existe-t-il un moyen de définir des autorisations AWS sur une règle CloudWatch à l'aide d'AWS CLI?

EDIT: Permettez-moi d'être plus précis à ce sujet. Je fais ce qui suit:

$ aws iam create-role --region <my_region> \ 
    --role-name "MyRoleForThisRule" \ 
    --assume-role-policy-document file://<my_role_policy_document>.json 
$ aws iam put-role-policy --role-name "MyRoleForThisRule" --policy-name "MyRolePolicyForThisRule" --policy-document file://<my_policy_document>.json 
$ aws events put-rule --region <my_region> --name "Snapshot_EBS_Rule" \ 
    --schedule-expression "cron(0 0 * * ? *)" \ 
    --role-arn arn:aws:iam::<my_aws_account_id>:role/MyRoleForThisRule 
$ aws events put-targets --region <my_region> \ 
    --rule "Snapshot_EBS_Rule" \ 
    --targets '{"Input": "\"arn:aws:ec2:<my_region>:<my_aws_account_id>:volume/<my_ebs_volume_id>\"", "Id": "Snapshot_EBS_Target", "Arn": "arn:aws:automation:<my_region>:<my_aws_account_id>:action/EBSCreateSnapshot/EBSCreateSnapshot_MyData"}' 

En conséquence:

  • une règle de CloudWatch est créée et planifiée avec une cible appropriée et le rôle,
  • autorisations AWS sont pas spécifié, comme le montre this screenshot
  • Les instantanés sont et non créés à moins que je ne définisse manuellement les autorisations AWS via la console AWS.

Comment puis-je définir les autorisations AWS à l'aide d'AWS CLI?

+0

Ok, je vis à vis le message de [ le tutoriel] (http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/TakeScheduledSnapshot.html) indiquant: ** "La création de règles avec des cibles intégrées est prise en charge uniquement dans AWS Management Console." ** Donc, la réponse à ma question est: ** Je ne peux pas ** :( – najtmar

Répondre

2

AWS CLI dispose d'un paramètre events pour gérer les événements cloudwatch.

Vous auriez besoin de mettre votre nouvelle règle associée au rôle que vous avez créé

aws events put-rule --name "EBSSnapshotTaken" \ 
    --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EBS Snapshot Notification\"],\"detail\":{\"event\":\"createSnapshot\", \"result\":\"succeeded\",\"source\":\"<arn path of the volume id being backup\""}}" \ 
    --role-arn "arn:aws:iam::123456789012:role/MyRoleForThisRule" 

Vous pouvez également consulter le Cloudwatch event types documentation pour plus d'informations sur la définition d'événement

+0

Je suis déjà en train de définir --role-arn, mais cela n'aide pas: les autorisations AWS ne sont pas définies et les instantanés ne sont pas créés. Voir la section EDIT ci-dessus. – najtmar