Comment puis-je recevoir une notification lorsqu'une ressource AWS n'est pas conforme à l'aide d'AWS Config ?

Date de la dernière mise à jour : 04/24/2020

J'ai créé une règle Amazon EventBridge pour déclencher des notifications lorsque les ressources AWS ne sont pas conformes, mais les réponses sont au format JSON. Comment puis-je recevoir un e-mail avec une notification personnalisée ?

Brève description

Utilisez une règle EventBridge avec un modèle d'événement personnalisé et un transformateur d'entrée pour correspondre à une sortie de règle d'évaluation AWS Config en tant que NON_COMPLIANT (non conforme). Dirigez ensuite la réponse vers une rubrique Amazon SNS (Amazon Simple Notification Service).

Solution

Dans l’exemple suivant, les notifications SNS sont reçues lorsque la règle gérée ec2-security-group-attached-to-eni signale les ressources AWS comme étant NON_COMPLIANT (non conformes) pour un groupe de sécurité Amazon EC2 (Amazon Elastic Compute Cloud).

Remarque : vous pouvez remplacer le type de ressource AWS Config et la règle pour votre service AWS spécifique et les règles AWS Config.

1.    Si vous n'avez pas déjà créé de rubrique Amazon SNS, rendez-vous sur la page Mise en route d'Amazon SNS et suivez les instructions affichées.

Important : la rubrique Amazon SNS doit se trouver dans la même région que votre service AWS Config.

2.    Ouvrez la console EventBridge.

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

4.    DansRule name (Nom de la règle), saisissez un nom pour votre règle.

5.    Dans Define Pattern (Définir le modèle), choisissez Event pattern (Modèle d’événement).

6.    Dans Event Matching pattern (Modèle de correspondance d'événement), choisissez Custom pattern(Modèle personnalisé).

7.    Dans le volet d'aperçu Build custom event pattern (Créer un modèle d'événement personnalisé), copiez et collez l'exemple de modèle d'événement suivant :

{
    "source": [
        "aws.config"
    ],
    "detail-type": [
        "Config Rules Compliance Change"
    ],
    "detail": {
        "messageType": [
            "ComplianceChangeNotification"
        ],
        "configRuleName": [
            "ec2-security-group-attached-to-eni"
        ],
        "resourceType": [
            "AWS::EC2::SecurityGroup"
        ],
        "newEvaluationResult": {
            "complianceType": [
                "NON_COMPLIANT"
            ]
        }
    }
}

8.    Choisissez Save (Enregistrer).

9.    Dans Select targets (Sélectionner les cibles), choisissez SNS topic (Rubrique SNS).

10.    Dans Topic (Rubrique), choisissez votre rubrique SNS.

11.    Développez Configurer input (Configurer l'entrée), puis sélectionnez Input transformer (Transformateur d'entrée).

12.    Dans la zone de texte Input Path (Chemin d'entrée), copiez et collez l'exemple de chemin suivant :

{
    "awsRegion": "$.detail.awsRegion",
    "resourceId": "$.detail.resourceId",
    "awsAccountId": "$.detail.awsAccountId",
    "compliance": "$.detail.newEvaluationResult.complianceType",
    "rule": "$.detail.configRuleName",
    "time": "$.detail.newEvaluationResult.resultRecordedTime",
    "resourceType": "$.detail.resourceType"
}

13.    Copiez et collez l'exemple de modèle suivant dans la zone de texte  Input Template (Modèle d’entrée) :

"On <time> AWS Config rule <rule> evaluated the <resourceType> with Id <resourceId> in the account <awsAccountId> region <awsRegion> as <compliance> For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=<awsRegion>#/timeline/<resourceType>/<resourceId>/configuration"

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

15.    Si un type d'événement est déclenché, vous recevez une notification SNS par e-mail avec les champs personnalisés renseignés de l'étape 13, semblable à ceci :

"On ExampleTime AWS Config rule ExampleRuleName evaluated the ExampleResourceType with Id ExampleResource_ID in the account ExampleAccount_Id in Region ExampleRegion as ExamplecomplianceType. For more details open the AWS Config console at https://console.aws.amazon.com/config/home?region=ExampleRegion#/timeline/ExampleResourceType/ExampleResource_ID/configuration"