Surveillance des changements d'état du Systems Manager à l'aide des notifications Amazon SNS
Note
Les rubriques FIFO d'Amazon Simple Notification Service ne sont pas prises en charge.
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 une invocation.
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, consultez 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, consultez 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. NoteLes 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 des invocations
Si vous envoyez une commande à plusieurs nœuds, Amazon SNS peut envoyer des messages concernant chaque copie ou invocation 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 cette invocation. |
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.
Rubriques
- Tâche 1 : Créer une rubrique Amazon SNS et s'y abonner
- Tâche 2 : Créer une politique IAM pour les notifications Amazon SNS
- Tâche 3 : Créer un rôle IAM pour les notifications Amazon SNS
- Tâche 4 : Configuration de l'accès utilisateur
- Tâche 5 : Attachement de la politique iam:PassRole à votre rôle de fenêtre de maintenance
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
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
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].)
-
Sélectionnez l'onglet JSON.
-
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 queus-east-2
pour la région USA Est (Ohio). Pour obtenir une liste des valeursregion
prises en charge, consultez la colonne Région dans la rubrique Points de terminaison de service Systems Manager de la Référence générale d'Amazon Web Services.
représente l'identifiant à 12 chiffres de votre Compte AWS au formataccount-id
123456789012
.sns-topic-name
représente le nom de la rubrique Amazon SNS que vous souhaitez utiliser pour publier des notifications. -
Sélectionnez Suivant : Étiquettes.
-
(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.
-
Choisissez Suivant : vérification.
-
Sur la page Examiner une politique, dans le champ Nom, saisissez un nom pour la politique en ligne. olpPar exemple :
my-sns-publish-permissions
. -
(Facultatif) Dans le champ Description, saisissez une description pour la politique.
-
Choisissez Create Policy (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
Connectez-vous à l’outil AWS Management Console, puis ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le volet de navigation de la console IAM, sélectionnez Roles (Rôles), puis Create role (Créer un rôle).
-
Choisissez le type de rôle du Service AWS, puis choisissez Systems Manager.
-
Choisissez le cas d'utilisation de Systems Manager. Ensuite, choisissez Suivant.
-
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. olpPar exemple :
my-sns-publish-permissions
. -
(Facultatif) Définissez une limite d'autorisations. Il s'agit d'une fonctionnalité avancée disponible pour les rôles de service, mais pas les rôles liés à un service.
Développez la section Permissions boundary (Limite d'autorisations) et sélectionnez Use a permissions boundary to control the maximum role permissions (Utiliser une limite d'autorisations pour contrôler le nombre maximum d'autorisations de rôle). IAM inclut une liste des politiques gérées par AWS et des politiques gérées par le client dans votre compte. Sélectionnez la politique à utiliser pour la limite d'autorisations ou choisissez Créer une politique pour ouvrir un nouvel onglet de navigateur et créer une nouvelle politique de bout en bout. Pour plus d'informations, consultez Création de politiques IAM dans le Guide de l'utilisateur IAM. Une fois la politique créée, fermez cet onglet et revenez à l'onglet initial pour sélectionner la politique à utiliser pour la limite d'autorisations.
-
Choisissez Suivant.
-
Si possible, saisissez un nom de rôle ou le suffixe d'un nom de rôle vous permettant d'identifier l'objectif du rôle. Les noms de rôle doivent être uniques dans votre Compte AWS. Ils ne sont pas sensibles à la casse. Par exemple, vous ne pouvez pas créer deux rôles nommés
PRODROLE
etprodrole
. Différentes entités peuvent référencer le rôle et il n'est donc pas possible de modifier son nom après sa création. -
(Facultatif) Pour Description, saisissez une description pour le nouveau rôle.
-
Choisissez Edit (Modifier) dans les sections Step 1: Select trusted entities (Étape 1 : sélection d'entités de confiance) ou Step 2: Select permissions (Étape 2 : sélection d'autorisations) pour modifier les cas d'utilisation et les autorisations pour le rôle.
-
(Facultatif) Ajoutez des métadonnées à l'utilisateur en associant les balises sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, consultez la rubrique Balisage des ressources IAM dans le Guide de l'utilisateur IAM.
-
Passez en revue les informations du rôle, puis choisissez Créer un rôle.
-
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.
-
La page Summary (Récapitulatif) s'ouvre.
Tâche 4 : Configuration de l'accès utilisateur
Si des autorisations d'administrateur sont attribuées à une entité IAM (utilisateur, rôle ou groupe), l'utilisateur ou le rôle a accès à Run Command et Maintenance Windows, des fonctionnalités AWS Systems Manager.
Pour les entités sans autorisations d'administrateur, un administrateur doit accorder les autorisations suivantes à l'entité IAM :
-
La politique gérée
AmazonSSMFullAccess
, ou une politique qui fournit des autorisations comparables. -
Les autorisations
iam:PassRole
pour le rôle créé dans Tâche 3 : Créer un rôle IAM pour les notifications Amazon SNS. Par exemple :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
account-id
:role/sns-role-name
" } ] }
Pour activer l'accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
-
Utilisateurs et groupes dans AWS IAM Identity Center :
Créez un jeu d’autorisations. Suivez les instructions de la rubrique Création d’un jeu d’autorisations du Guide de l’utilisateur AWS IAM Identity Center.
-
Utilisateurs gérés dans IAM par un fournisseur d’identité :
Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique Création d’un rôle pour un fournisseur d’identité tiers (fédération) dans le Guide de l’utilisateur IAM.
-
Utilisateurs IAM :
-
Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique Création d’un rôle pour un utilisateur IAM dans le Guide de l’utilisateur IAM.
-
(Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique Ajout d'autorisations à un utilisateur (console) du Guide de l'utilisateur IAM.
-
Pour configurer l'accès utilisateur et associer la politique iam:PassRole
à un compte utilisateur
-
Dans le panneau de navigation IAM, sélectionnez Users (Utilisateurs), puis le compte utilisateur à configurer.
-
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. -
Sélectionnez Ajouter une politique en ligne.
-
Dans la page Créer une politique, sélectionnez l'onglet Éditeur visuel.
-
Sélectionnez Choose a service (Sélectionner un service), puis IAM.
-
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. -
Pour Resources (Ressources), vérifiez que Specific (Spécifique) est sélectionné, puis sélectionnez Add ARN (Ajouter un ARN).
-
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).
-
Choisissez Ajouter.
-
Sélectionnez Review policy (Examiner une politique).
-
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 Configuration de Maintenance Windows.
Si vous devez créer une fonction du service personnalisée pour les tâches de la fenêtre de maintenance, consultez la rubrique Configuration de Maintenance Windows.
Pour attacher la politique iam:PassRole
au rôle Maintenance Windows
-
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
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.
-
Copiez le Role ARN (ARN de rôle) ou notez-le et revenez à la section Roles (Rôles) de la console IAM.
-
Sélectionnez le rôle de service Maintenance Windows personnalisé que vous avez créé depuis la liste Role name (Nom de rôle).
-
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 Attacher des politiques pour l'attacher. -
Choisissez Add permissions, Create inline policy (Ajouter des autorisations, Créer une politique en ligne).
-
Sélectionnez l'onglet Visual Editor.
-
Pour Service, sélectionnez IAM.
-
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. -
Pour Ressources, sélectionnez Spécifique, puis Ajouter un ARN.
-
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).
-
Sélectionnez Review policy (Examiner une politique).
-
Sur la page Examiner une politique indiquez un nom pour la politique
PassRole
, puis sélectionnez Créer une politique.