Comment surveiller les modifications apportées aux groupes de sécurité configurés sur mon instance EC2 Linux en utilisant EventBridge et Amazon SNS ?

Dernière mise à jour : 06/01/2022

Je possède un groupe de sécurité configuré pour mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2). Comment puis-je utiliser Amazon EventBridge et Amazon Simple Notification Service (Amazon SNS) afin de superviser les modifications apportées à mes groupes de sécurité ?

Brève description

Créez une règle EventsBridge à déclencher lorsqu'un appel d'API est effectué pour modifier vos groupes de sécurité. Configurez ensuite une notification Amazon SNS pour les événements correspondant à votre règle.

Résolution

Créer une rubrique Amazon SNS et s'y abonner

1.    Ouvrez la console Amazon SNS.

2.    Sur le tableau de bord SNS, sélectionnez Topics (Rubriques), puis Create Topic (Créer une rubrique).

3.    Saisissez un nom pour la rubrique (par exemple, my-topic).

4.    Sélectionnez Créer une rubrique.

5.    Notez l'Amazon Resource Name (ARN) de la rubrique (par exemple, arn:aws:sns:us-east-1:123123123123:my-topic).

6.    Sélectionnez Créer un abonnement.

7.    Pour Topic ARN (ARN de la rubrique), saisissez l'ARN que vous avez noté lors de l'étape 5.

8.    Pour Protocol (Protocole), choisissez Email.

9.    Pour Endpoint (Point de terminaison), saisissez une adresse e-mail pour recevoir les notifications, puis sélectionnez Create subscription (Créer un abonnement).

Vous recevrez un e-mail confirmant votre abonnement. Une fois l'abonnement confirmé, l'adresse e-mail reçoit des notifications lorsque la rubrique SNS est déclenchée.

Création d'une règle EventBridge qui se déclenche lors d'un événement à l'aide de la console EventBridge

1.    Ouvrez la console EventBridge.

2.    Sélectionnez Create rule (Créer une règle).

3.    Saisissez un nom pour votre règle. Vous pouvez éventuellement saisir une description.

4.    Dans Define pattern (Définir le modèle), sélectionnez Event pattern (Modèle d'événement).

5.    Choisissez Pre-defined pattern by service (Modèle prédéfini par service).

6.    Pour Service provider (Fournisseur de services), choisissez AWS.

7.    Pour Service name (Nom du service), sélectionnez EC2.

8.    Pour Event Type (Type d'événement), sélectionnez AWS API Call via CloudTrail (Appel d'API AWS via CloudTrail).

9.    Choisissez Specific Operation (Opération spécifique), puis copiez et collez un par un les appels d'API suivants dans la zone de texte. Sélectionnez Add (Ajouter) après chaque ajout. Ces appels d'API sont utilisés afin d'ajouter ou supprimer des règles de groupe de sécurité.

AuthorizeSecurityGroupIngress
AuthorizeSecurityGroupEgress
RevokeSecurityGroupIngress
RevokeSecurityGroupEgress

Ces paramètres créent le modèle d'événement suivant :

{
  "source": [
    "aws.ec2"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "ec2.amazonaws.com"
    ],
    "eventName": [
      "AuthorizeSecurityGroupIngress",
      "AuthorizeSecurityGroupEgress",
      "RevokeSecurityGroupIngress",
      "RevokeSecurityGroupEgress"
    ]
  }
}

10.    Dans Select targets (Sélectionner les cibles), choisissez SNS topic (rubrique SNS) dans la liste déroulante Target (Cible).

11.    Pour Topic (Rubrique), saisissez la rubrique que vous avez créée.

Remarque : par défaut, Matched event (Événement correspondant) est sélectionné sous Configure input (Configurer l'entrée). Événement correspondant transmet la totalité de la sortie JSON de l'événement à la rubrique SNS. Si vous ne souhaitez pas transmettre la totalité de la sortie JSON, sélectionnez Input transformer (Transformateur d'entrée) afin de filtrer les informations d'événement. Utilisez le transformateur d'entrée afin de personnaliser le texte d'un événement et créer un message facilement lisible, plutôt que d'envoyer la totalité de la sortie JSON à votre cible. Vous pouvez par exemple utiliser les paires clé-valeur suivantes pour Chemin d'entrée.

{"name":"$.detail.requestParameters.groupId","source":"$.detail.eventName","time":"$.time","value":"$.detail"}

Dans Input Template (Modèle d'entrée), saisissez le texte ainsi que les variables que vous voulez afficher dans le message :

"A <source> API call was made against the security group <name> on <time> with the below details"
" <value> "

Pour en savoir plus sur l'utilisation du transformateur d'entrée, consultez la section Didacticiel : utiliser un transformateur d'entrée afin de personnaliser ce qu'EventBridge transmet à la cible d'événement.

12.    Sélectionnez Create (Créer).