Comment créer une règle d'événement CloudWatch pour m'avertir que mon compte d’utilisateur racine AWS a été utilisé ?

Date de la dernière mise à jour : 19/04/2019

Comment recevoir des notifications lorsque mon compte d’utilisateur racine AWS est utilisé ?

Résolution

Lancez une pile AWS CloudFormation pour créer une rubrique Amazon Simple Notification Service (Amazon SNS). Ensuite, créez une règle d'événement Amazon CloudWatch pour surveiller les connexions racine userIdentity depuis AWS Management Console.

Important : avant de commencer, veillez à ce que les événements de lecture/écriture CloudTrail Management soient définis sur All (Tous) ou sur Write-only (Écriture seulement) pour que les événements CloudWatch déclenchent la notification d'événement de connexion. Pour plus d'informations, consultez Événements en lecture seule et en écriture seule.

1.    Copiez et collez ce modèle YAML dans votre éditeur favori, puis enregistrez-le.

# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

AWSTemplateFormatVersion: '2010-09-09'
Description: ROOT-AWS-Console-Sign-In-via-CloudTrail
Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
    - Label:
        default: Amazon SNS parameters
      Parameters:
      - Email Address
Parameters:
  EmailAddress:
    Type: String
    AllowedPattern: "^[\\x20-\\x45]?[\\w-\\+]+(\\.[\\w]+)*@[\\w-]+(\\.[\\w]+)*(\\.[a-z]{2,})$"
    ConstraintDescription: Email address required.
    Description: Enter an email address you want to subscribe to the Amazon SNS topic
      that will send notifications if your account's AWS root user logs in.
Resources:
  RootActivitySNSTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: ROOT-AWS-Console-Sign-In-via-CloudTrail
      Subscription:
      - Endpoint:
          Ref: EmailAddress
        Protocol: email
      TopicName: ROOT-AWS-Console-Sign-In-via-CloudTrail
  EventsRule:
    Type: AWS::Events::Rule
    Properties:
      Description: Events rule for monitoring root AWS Console Sign In activity
      EventPattern:
        detail-type:
        - AWS Console Sign In via CloudTrail
        detail:
          userIdentity:
            type:
            - Root
      Name:
        Fn::Sub: "${AWS::StackName}-RootActivityRule"
      State: ENABLED
      Targets:
      - Arn:
          Ref: RootActivitySNSTopic
        Id: RootActivitySNSTopic
    DependsOn:
    - RootActivitySNSTopic
  RootPolicyDocument:
    Type: AWS::SNS::TopicPolicy
    Properties:
      PolicyDocument:
        Id: RootPolicyDocument
        Version: '2012-10-17'
        Statement:
        - Sid: RootPolicyDocument
          Effect: Allow
          Principal:
            Service: events.amazonaws.com
          Action: sns:Publish
          Resource:
          - Ref: RootActivitySNSTopic
      Topics:
      - Ref: RootActivitySNSTopic
Outputs:
  EventsRule:
    Value:
      Ref: EventsRule
    Export:
      Name:
        Fn::Sub: "${AWS::StackName}-RootAPIMonitorEventsRule"
    Description: Event Rule ID.

2.    Ouvrez la console CloudFormation, puis choisissez Create Stack (Créer une pile).

3.    Choisissez Upload a template to Amazon S3 (Télécharger un modèle vers Amazon S3, puis Browse (Parcourir) et sélectionnez le modèle que vous avez enregistré à l'étape 1.

4.    Choisissez Next (Suivant).

5.    Dans Stack name (Nom de la pile), saisissez un nom significatif pour vous, tel que CloudTrail pour connexion à la console AWS avec compte racine.

6.    Dans EmailAddress, saisissez votre adresse e-mail, puis choisissez Next (Suivant).

Remarque : AWS envoie un e-mail de confirmation à cette adresse e-mail.

7.    Dans Options, choisissez Next (Suivant), puis Create (Créer).

8.    Vérifiez dans votre boîte de réception si vous avez reçu l'e-mail de confirmation, puis choisissez Confirm subscription (Confirmer l’abonnement) pour confirmer l'abonnement SNS. Vous recevez le message Subscription confirmed! (Abonnement confirmé).

9.    Pour tester les notifications, déconnectez-vous d’AWS Management Console. Ensuite, connectez-vous à AWS Management Console avec votre compte utilisateur racine AWS.

10.   Vérifiez dans votre boîte de réception que vous avez reçu un message de notification. Notez les enregistrements CloudTrai Useridentity, sourceIPAddress et MFAUsed contenant les détails de l'événement de connexion.

Pour ne plus recevoir de notifications, supprimez la pile CloudFormation que vous avez créée à l'étape 2.