Je reçois une erreur de validation lorsque j'essaie de créer un hook de cycle de vie Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling. L'erreur « Impossible de publier le message de test vers la cible de la notification »ou « Veuillez vérifier la configuration de votre cible et de votre rôle et essayez de placer de nouveau le hook de cycle de vie ». Comment résoudre ces erreurs ?
Brève description
Pour publier un message dans Amazon Simple Queue Service (Amazon SQS), le rôle AWS Identity and Access Management (IAM) du hook de cycle de vie doit :
- être différent du rôle IAM affecté à l'instance ;
- être répertorié en tant qu'utilisateur clé de la stratégie de clé AWS Key Management Service (AWS KMS) ;
- avoir un stratégie d'approbation attachée pour le service Auto Scaling ,
- inclure des actions de stratégie gérée spécifiques ,
- être associé au groupe Amazon EC2 Auto Scaling ;
- avoir accès à la clé de chiffrement utilisée par Amazon SQS.
Résolution
1. Vérifiez que vous utilisé un rôle IAM pour le hook de cycle de vie différent de celui que vous avez attribué à l'instance.
Remarque : Vous pouvez créer un rôle IAM ou utiliser le rôle géré par AWS suivant qui dispose de toutes les autorisations nécessaires :
arn:aws:iam::aws:policy/service-role/AutoScalingNotificationAccessRole
2. Vérifiez que le rôle est inclus en tant qu'utilisateur clé dans la stratégie de clé KMS. Pour ce faire :
Ouvrez la console AWS KMS.
Sélectionnez la clé KMS.
Vérifiez que le rôle est répertorié sous Utilisateurs clés de l'onglet Stratégie de clé . Si le rôle n'est pas répertorié, recherchez-le, puis sélectionnez Ajouter.
3. Veillez à ce que le rôle IAM du hook de cycle de vie ait une stratégie d'approbation attachée pour le service Amazon EC2 Auto Scaling.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "autoscaling.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
4. Vérifiez que la stratégie gérée du rôle IAM du hook de cycle de vie contient les actions suivantes :
Pour les messages SQSsqs:SendMessage
sqs:GetQueueUrl
Pour les notifications SNS
sns:Publish
5. Dans l'interface de ligne de commande AWS (CLI AWS), exécutez la commande aws autoscaling put-lifecycle-hook.
6. Exécutez la commande suivante pour vérifier que le hook de cycle de vie est associé au groupe Auto Scaling.
aws autoscaling describe-lifecycle-hooks --auto-scaling-group-name "ExampleSQSQueueName"
Remarque : Si vous recevez des erreurs lors de l'exécution de commandes depuis AWS CLI, assurez-vous que vous utilisez la version la plus récente d'AWS CLI.
Informations connexes
Hooks de cycle de vie Amazon EC2 Auto Scaling