1

Je définis une notification SNS pour m'envoyer un courrier électronique à chaque modification apportée aux stratégies IAM. Lorsqu'une modification se produit, CloudTrail envoie un journal à CloudWatch qui déclenche une alarme associée à un sujet SNS. Plus de détails dans ce link.Envoi de notifications SNS en cas de modification IAM

Voici un exemple de ce que je reçois par mail:

Alarm Details: 
- Name:      PolicyAlarm 
- Description:    This alarm is to monitor IAM Changes 
- State Change:    INSUFFICIENT_DATA -> ALARM 
- Reason for State Change: Threshold Crossed: 1 datapoint [1.0 (31/08/17 09:15:00)] was greater than or equal to the threshold (1.0). 
- Timestamp:     Thursday 31 August, 2017 09:20:39 UTC 
- AWS Account:    00011100000 

Threshold: 
- The alarm is in the ALARM state when the metric is GreaterThanOrEqualToThreshold 1.0 for 300 seconds. 

La seule information pertinente est le AWS Account ID. Y a-t-il un moyen d'inclure également le changement? Qui l'a fait, quand et où? Ou peut-être envoyer peu d'informations à partir du journal cloudwatch comme le "eventName"?

+0

Évaluez AWS Config. Cela vous donnerait la configuration actuelle.Écrivez une logique pour déterminer le changement. En ce qui concerne qui a effectué la modification, vous devez consulter les journaux CloudTrail. –

Répondre

1

Il y a deux façons de déclencher les notifications d'une AWS CloudTrail:

  1. Configurer Amazon CloudWatch journaux à la recherche de chaînes spécifiques. Une fois trouvée, elle incrémente une métrique. Ensuite, créez une alarme qui se déclenche lorsque la mesure dépasse une valeur particulière sur une période donnée. Lorsque la notification est envoyée, seules les informations relatives à l'alarme sont envoyées. OU ...

  2. Créez une règle dans Amazon CloudWatch Events pour rechercher l'événement. Définissez un sujet Amazon SNS comme cible. Lorsque la notification est envoyée, tous les détails de l'événement sont passés par.

Vous devez utiliser # 2, car il fournit tous les détails de l'événement.

Voici ce que je l'ai fait à tester:

  • créé un Amazon SQS file d'attente dans us-east-1 (où tous les événements IAM ont lieu)
  • a créé un Amazon CloudWatch Events règle en us-east-1 avec:
    • Nom du service: IAM
    • Type d'événement: AWS API Appel via CloudTrail
    • Opérations spécifiques: PutUserPolicy
  • Edité une politique IAM

Dans un court laps de temps, l'événement est apparu dans SQS:

Voici les éléments pertinents de la politique qui a été adoptée:

{ 
    "detail-type": "AWS API Call via CloudTrail", 
    "source": "aws.iam", 
    "region": "us-east-1", 
    "detail": { 
    "eventSource": "iam.amazonaws.com", 
    "eventName": "PutUserPolicy", 
    "awsRegion": "us-east-1", 
    "requestParameters": { 
     "policyDocument": "{\n \"Version\": \"2012-10-17\",\n ... }", 
     "policyName": "my-policy", 
     "userName": "my-user" 
    }, 
    "eventType": "AwsApiCall" 
    } 
} 

J'ai envoyé le message à SQS, mais vous pouvez également l'envoyer à SNS pour ensuite le transférer par courrier électronique.

+0

J'essaie cela, et je vois que IAM n'est pas disponible dans la liste ** Nom du service **. Pourriez-vous s'il vous plaît me dire lequel choisir? Merci – Somar

+0

Le faites-vous dans 'us-east-1' (N.Virginia)? –

+0

No. Dans eu-west-1 (Irlande) – Somar