Surveillance des changements d'état du Systems Manager à l'aide des notifications Amazon SNS - AWS Systems Manager

Surveillance des changements d'état du Systems Manager à l'aide des notifications Amazon SNS

Vous pouvez configurer Amazon Simple Notification Service (Amazon SNS) de sorte à envoyer des notifications sur le statut des commandes que vous envoyez à l'aide de Run Command ou Maintenance Windows, qui sont des fonctionnalités de AWS Systems Manager. Amazon SNS coordonne et gère la réception ou l'envoi de notifications aux points de terminaison ou aux clients abonnés aux rubriques Amazon SNS. Vous pouvez recevoir une notification chaque fois qu'une commande change de statut ou passe à un statut spécifique, par exemple, Échec ou Expiré. Lorsque vous envoyez une commande à plusieurs nœuds, vous pouvez recevoir une notification pour chaque copie de la commande envoyée à un nœud spécifique. Chaque copie s'appelle un appel.

Amazon SNS peut envoyer des notifications HTTP ou HTTPS POST, par e-mail (SMTP, texte brut ou format JSON) ou via un message publié dans une file d'attente Amazon Simple Queue Service (Amazon SQS). Pour plus d'informations, consultez Qu'est-ce qu'Amazon SNS ? dans le Guide du développeur Amazon Simple Notification Service. Pour voir des exemples de la structure des données JSON incluses dans la notification Amazon SNS fournie par Maintenance Windows et Run Command, veuillez consulter Exemple de notifications Amazon SNS pour AWS Systems Manager.

Configurer les notifications Amazon SNS pour AWS Systems Manager

Run Command et les tâches Maintenance Windows qui sont enregistrées auprès d'une fenêtre de maintenance peuvent envoyer des notifications Amazon SNS pour les tâches de commande dont le statut devient l'un des suivants :

  • En cours

  • Réussite

  • Échec

  • Expiré

  • Annulé

Pour de plus amples informations sur les conditions qui entraînent ces changements de statut, veuillez consulter la section Comprendre les états des commandes.

Note

Les commandes envoyées à l'aide de la fonctionnalité Run Command signalent également les statuts Annulation en cours et En suspens. Ces statuts ne sont pas capturés par les notifications Amazon SNS.

Résumé de commandes associé aux notifications Amazon SNS

Si vous configurez Run Command ou une tâche Run Command dans votre fenêtre de maintenance pour les notifications Amazon SNS, Amazon SNS envoie des messages récapitulatifs qui incluent les informations suivantes.

Champ Type Description

eventTime

Chaîne

Heure à laquelle l'événement a été initié. L'horodatage est important, car Amazon SNS ne garantit pas l'ordre de transmission des messages. Exemple : 2016-04-26T13:15:30Z

documentName

Chaîne

Nom du document SSM utilisé pour exécuter cette commande.

commandId

Chaîne

ID généré par la fonctionnalité Run Command une fois que la commande a été envoyée.

expiresAfter

Date

Si la date d'expiration est atteinte et que la commande n'a pas encore démarré, l'exécution n'a pas lieu.

outputS3BucketName

Chaîne

Le compartiment Amazon Simple Storage Service (Amazon S3) dans lequel les réponses à l'exécution de la commande doivent être stockées.

outputS3KeyPrefix

Chaîne

Chemin du répertoire Amazon S3 à l'intérieur du compartiment dans lequel les réponses à l'exécution de la commande doivent être stockées.

requestedDateTime

Chaîne

Heure et date auxquelles la demande a été envoyée à ce nœud spécifique.

instanceIds

StringList

Nœuds qui étaient ciblés par la commande.

Note

Les ID d'instance ne sont inclus dans le message récapitulatif que si la tâche Run Command ciblait directement les ID d'instance. Les ID d'instance ne sont pas inclus dans le message récapitulatif si la tâche Run Command a été émise en utilisant un ciblage en fonction des balises.

status

Chaîne

Statut de la commande.

Notifications Amazon SNS basées sur les appels

Si vous envoyez une commande à plusieurs nœuds, Amazon SNS peut envoyer des messages concernant chaque copie ou appel de la commande. Les messages incluent les informations suivantes.

Champ Type Description

eventTime

Chaîne

Heure à laquelle l'événement a été initié. L'horodatage est important, car Amazon SNS ne garantit pas l'ordre de transmission des messages. Exemple : 2016-04-26T13:15:30Z

documentName

Chaîne

Nom du document Systems Manager (document SSM) utilisé pour exécuter cette commande.

requestedDateTime

Chaîne

Heure et date auxquelles la demande a été envoyée à ce nœud spécifique.

commandId

Chaîne

ID généré par la fonctionnalité Run Command une fois que la commande a été envoyée.

instanceId

Chaîne

Instance qui était ciblée par la commande.

status

Chaîne

Statut de la commande pour cet appel.

Pour configurer les notifications Amazon SNS en cas de changement de statut d'une commande, effectuez les tâches suivantes.

Note

Si vous ne configurez pas les notifications Amazon SNS pour votre fenêtre de maintenance, vous pouvez ignorer la tâche 5 décrite plus loin dans cette rubrique.

Tâche 1 : Créer une rubrique Amazon SNS et s'y abonner

Une rubrique Amazon SNS est un canal de communication utilisé par des tâches Run Command et Run Command, qui sont enregistrées auprès d'une fenêtre de maintenance, pour envoyer des notifications relatives au statut de vos commandes. Amazon SNS prend en charge différents protocoles de communication, notamment HTTP/S, les e-mails et d'autres services AWS comme Amazon Simple Queue Service (Amazon SQS). Pour commencer, nous vous recommandons de commencer par le protocole de messagerie. Pour obtenir des informations sur la création d'une rubrique, consultez Création d'une rubrique Amazon SNS dans le Guide du développeur Amazon Simple Notification Service.

Note

Une fois que vous avez créé la rubrique, copier l'ARN de la rubrique ou prenez-en note. Vous devez spécifier cet ARN lorsque vous envoyez une commande qui est configurée pour renvoyer des notifications de statut.

Une fois que vous avez créé la rubrique, vous devez vous y abonner en spécifiant un Point de terminaison. Si vous avez choisi le protocole de messagerie, le point de terminaison est l'adresse e-mail à laquelle vous souhaitez recevoir des notifications. Pour plus d'informations sur l'abonnement à une rubrique, consultez Abonnement à une rubrique Amazon SNS dans le Guide du développeur Amazon Simple Notification Service.

Amazon SNS envoie un e-mail de confirmation à partir d'AWS Notifications à l'adresse e-mail que vous spécifiez. Ouvrez cet e-mail et sélectionnez le lien Confirm subscription (Confirmer l'abonnement).

Vous recevrez un message d'accusé de réception d'AWS. Amazon SNS est maintenant configuré pour recevoir des notifications et envoyer la notification par e-mail à l'adresse spécifiée.

Tâche 2 : Créer une politique IAM pour les notifications Amazon SNS

Utilisez la procédure suivante afin de créer une politique AWS Identity and Access Management (IAM) personnalisée qui fournit les autorisations nécessaires pour lancer des notifications Amazon SNS.

Pour créer une politique IAM personnalisée pour les notifications Amazon SNS

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, choisissez Policies, puis Create Policy. (Si un bouton Get Started (Mise en route) est affiché, sélectionnez-le, puis sélectionnez Create Policy [Créer une politique].)

  3. Sélectionnez l'onglet JSON.

  4. Remplacez le contenu par défaut par la commande suivante :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:region:account-id:sns-topic-name" } ] }

    region représente l'identifiant d'une Région AWS prise en charge par AWS Systems Manager, telle que us-east-2 pour la région USA Est (Ohio). Pour obtenir une liste des valeurs region prises en charge, veuillez consulter la colonne Région dans Points de terminaison Systems Manager dans la Référence générale Amazon Web Services.

    account-id représente l'identifiant à 12 chiffres de votre compte AWS, au format 123456789012.

    sns-topic-name représente le nom de la rubrique Amazon SNS que vous souhaitez utiliser pour publier des notifications.

  5. Sélectionnez Suivant : Étiquettes.

  6. (Facultatif) Ajoutez une ou plusieurs paires clé-valeur d'identification afin d'organiser, de suivre ou de contrôler l'accès pour cette politique.

  7. Choisissez Next: Review (Suivant : Vérification).

  8. Sur la page Examiner une politique, dans le champ Nom, saisissez un nom pour la politique en ligne. Par exemple: my-sns-publish-permissions.

  9. (Facultatif) Dans le champ Description, saisissez une description pour la politique.

  10. Sélectionnez Créer une politique.

Tâche 3 : Créer un rôle IAM pour les notifications Amazon SNS

Utilisez la procédure suivante afin de créer un rôle IAM pour les notifications Amazon SNS. Ce rôle de service est utilisé par Systems Manager pour initier des notifications Amazon SNS. Dans toutes les procédures suivantes, ce rôle est appelé rôle IAM Amazon SNS.

Pour créer un rôle de service IAM pour les notifications Amazon SNS

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, sélectionnez Rôles, puis Créer un rôle.

  3. Sous Select type of trusted entity, sélectionnez AWS service.

  4. Dans la section Choisir un cas d'utilisation, sélectionnez Systems Manager.

  5. Dans la section Select your use case (Sélectionner votre cas d'utilisation), sélectionnez Systems Manager, puis Next: Permissions (Suivant : autorisations).

  6. Sur la page Attacher des politiques d'autorisations, cochez la case située à gauche du nom de la politique personnalisée que vous avez créée à la tâche 2. Par exemple: my-sns-publish-permissions.

  7. Sélectionnez Suivant : Étiquettes.

  8. (Facultatif) Ajoutez une ou plusieurs paires clé-valeur d'identification afin d'organiser, de suivre ou de contrôler l'accès pour ce rôle.

  9. Choisissez Next: Review (Suivant : Vérification).

  10. Sur la page Review (Vérifier), pour Role name (Nom du rôle), saisissez un nom pour identifier le rôle, tel que my-sns-role.

  11. (Facultatif) Modifiez la description du rôle par défaut pour refléter l'objectif de ce rôle. Par exemple : Runs SNS topics on your behalf.

  12. Sélectionnez Créer un rôle. Le système vous renvoie à la page Rôles.

  13. Choisissez le nom du rôle, puis copiez ou notez la valeur de Role ARN (ARN du rôle). Cet Amazon Resource Name (ARN) pour le rôle est utilisé lorsque vous envoyez une commande configurée pour renvoyer des notifications Amazon SNS.

  14. La page Summary (Récapitulatif) s'ouvre.

Tâche 4 : Configuration de l'accès utilisateur

Si votre compte utilisateur, votre groupe ou votre rôle IAM dispose des autorisations d'administrateur, vous avez accès à Run Command et Maintenance Windows, qui sont des fonctionnalités de AWS Systems Manager. Si vous ne disposez pas des autorisations d'administrateur, un administrateur doit vous les donner en affectant la politique gérée AmazonSSMFullAccess ou une politique dotée d'autorisations de même type à votre compte, groupe ou rôle IAM.

Utilisez la procédure suivante afin de configurer un compte utilisateur pour utiliser Run Command et Maintenance Windows. Si vous devez créer un compte utilisateur, consultez la section Création d'un utilisateur IAM dans votre Compte AWS dans le Guide de l'utilisateur IAM.

Pour configurer l'accès utilisateur et associer la politique iam:PassRole à un compte utilisateur

  1. Dans le panneau de navigation IAM, sélectionnez Users (Utilisateurs), puis le compte utilisateur à configurer.

  2. Sous l'onglet Permissions (Autorisations), dans la liste des politiques, vérifiez que la politique AmazonSSMFullAccess est répertoriée ou qu'une politique comparable autorise le compte à accéder à Systems Manager.

  3. Sélectionnez Ajouter une politique en ligne.

  4. Dans la page Créer une politique, sélectionnez l'onglet Éditeur visuel.

  5. Sélectionnez Choose a service (Sélectionner un service), puis IAM.

  6. Pour Actions (Actions), dans la zone de texte Filter actions (Filtrer les actions), saisissez PassRole, puis sélectionnez la case à cocher en regard de PassRole.

  7. Pour Resources (Ressources), vérifiez que Specific (Spécifique) est sélectionné, puis sélectionnez Add ARN (Ajouter un ARN).

  8. Dans le champ Specify ARN for role (Spécifier l'ARN du rôle), collez l'ARN du rôle IAM Amazon SNS que vous avez copié à la fin de la tâche 3. Le système remplit automatiquement les champs Account (Compte) et Role name with path (Nom du rôle avec chemin d'accès).

  9. Choisissez Add (Ajouter).

  10. Choisissez Review policy (Examiner une politique).

  11. Sur la page Review Policy (Examiner une politique), saisissez un nom, puis choisissez Create Policy (Créer une politique).

Tâche 5 : Attachement de la politique iam:PassRole à votre rôle de fenêtre de maintenance

Lorsque vous enregistrez une tâche Run Command auprès d'une fenêtre de maintenance, vous spécifiez un Amazon Resource Name (ARN) de rôle de service. Ce rôle de service est utilisé par Systems Manager pour exécuter des tâches enregistrées auprès de la fenêtre de maintenance. Pour configurer les notifications Amazon SNS pour une tâche Run Command enregistrée, attachez une politique iam:PassRole au rôle de service de fenêtre de maintenance spécifié. Si vous n'avez pas l'intention de configurer la tâche enregistrée pour les notifications Amazon SNS, vous pouvez ignorer cette tâche.

La politique iam:PassRole autorise le rôle de service Maintenance Windows à transmettre le rôle IAM Amazon SNS créé au cours de la tâche 3 au service Amazon SNS. La procédure suivante montre comment attacher la politique iam:PassRole au rôle de service Maintenance Windows.

Note

Utilisez un rôle de service personnalisé pour votre fenêtre de maintenance afin d'envoyer des notifications concernant les tâches Run Command enregistrées. Pour plus d'informations, consultez Dois-je utiliser un rôle lié à un service ou un rôle de service personnalisé pour exécuter des tâches de fenêtre de maintenance ?.

Si vous avez besoin de créer un rôle de service personnalisé, consultez l'une des rubriques suivantes :

Pour attacher la politique iam:PassRole au rôle Maintenance Windows

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, sélectionnez Roles (Rôles), puis sélectionnez le rôle IAM Amazon SNS créé au cours de la tâche 3.

  3. Copiez le Role ARN (ARN de rôle) ou notez-le et revenez à la section Roles (Rôles) de la console IAM.

  4. Sélectionnez le rôle de service Maintenance Windows personnalisé que vous avez créé depuis la liste Role name (Nom de rôle).

  5. Sous l'onglet Permissions (Autorisations), vérifiez que la politique AmazonSSMMaintenanceWindowRole est répertoriée ou qu'une politique comparable accorde à la fenêtre de maintenance l'autorisation d'accéder à l'API Systems Manager. Si ce n'est pas le cas, choisissez Attach policies (Attacher des politiques)pour l'attacher.

  6. Sélectionnez Ajouter une politique en ligne.

  7. Sélectionnez l'onglet Visual Editor.

  8. Pour Service, sélectionnez IAM.

  9. Pour Actions (Actions), dans la zone de texte Filter actions (Filtrer les actions), saisissez PassRole, puis sélectionnez la case à cocher en regard de PassRole.

  10. Pour Ressources, sélectionnez Spécifique, puis Ajouter un ARN.

  11. Dans la zone Specify ARN for role (Spécifier l'ARN pour le rôle), collez l'ARN du rôle IAM Amazon SNS créé dans la tâche 3, puis sélectionnez Add (Ajouter).

  12. Choisissez Review policy (Examiner une politique).

  13. Sur la page Review Policy (Examiner une politique) indiquez un nom pour la politique PassRole, puis sélectionnez Create policy (Créer une politique).