Intégrer AWS CloudWatch à Google SecOps

Ce document explique comment intégrer AWS CloudWatch à Google Security Operations (Google SecOps).

Version de l'intégration : 6.0

Cas d'utilisation

Actions actives : recherche dans les journaux, création de groupes/flux de journaux, suppression de groupes/flux de journaux, mise à jour des règles de conservation.

Paramètres d'intégration

Utilisez les paramètres suivants pour configurer l'intégration :

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
AWS Access Key ID (ID de clé d'accès AWS) Chaîne N/A Oui ID de clé d'accès AWS à utiliser dans l'intégration.
Clé secrète AWS Mot de passe N/A Oui Clé secrète AWS à utiliser dans l'intégration.
Région AWS par défaut Chaîne N/A Oui Région AWS par défaut à utiliser dans l'intégration, par exemple "us-west-2".

Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement, si nécessaire. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis Votre bureau et Effectuer une action manuelle.

Ping

Testez la connectivité à AWS CloudWatch.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
en cas de réussite : "Connexion au serveur AWS CloudWatch établie avec succès à l'aide des paramètres de connexion fournis !"

L'action doit échouer et arrêter l'exécution d'un playbook :
if not successful : "Échec de la connexion au serveur AWS CloudWatch ! Error is {0}".format(exception.stacktrace)

Général

Lister les groupes de journaux

Affichez la liste des groupes de journaux disponibles dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Nombre maximal de groupes à renvoyer Integer 50 Non Spécifiez le nombre de groupes à renvoyer. Valeur par défaut : 50.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Résultat JSON
[
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1611581795766,
        "logGroupName": "CloudTrail/DefaultLogGroup",
        "metricFilterCount": 0,
        "storedBytes": 24529015
    },
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1606993203235,
        "logGroupName": "Example",
        "metricFilterCount": 1,
        "storedBytes": 730
    },
    {
        "arn": "arn:aws:logs:us-east-1:",
        "creationTime": 1611652265055,
        "logGroupName": "aws-cloudtrail-logs",
        "metricFilterCount": 0,
        "storedBytes": 51354815
    }
]
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
si des données sont disponibles (is_success = true) : "Successfully returned available log groups in AWS CloudWatch" (Groupes de journaux disponibles renvoyés avec succès dans AWS CloudWatch).

Si aucune donnée n'est disponible (is_success = true) : "Aucun groupe de journaux n'a été trouvé dans AWS CloudWatch".

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. "Erreur lors de l'exécution de l'action "Lister les groupes de journaux". Raison : {0}''.format(error.Stacktrace)

Général
Tableau du mur des cas

Nom : "Groupes de journaux"

Colonne :

Nom

Nombre de filtres de métriques

Octets stockés

Heure de création

Général

Lister les flux de journaux

Liste les flux de journaux disponibles dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Groupes de journaux CSV N/A Oui Spécifiez une liste de noms de groupes séparés par une virgule pour lesquels vous souhaitez récupérer les flux de journaux.
Order By (Trier par) LDD

Nom du flux de journaux

Valeurs possibles :

Nom du flux de journaux

Heure du dernier événement

Non Spécifiez l'ordre dans lequel les flux de journaux doivent être affichés.
Ordre de tri LDD

Croissant

Valeurs possibles :

Croissant

Décroissant

Non Spécifiez l'ordre de tri à utiliser.
Nombre maximal de flux à renvoyer Integer 50 Non Spécifiez le nombre de flux à renvoyer par groupe de journaux.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Résultat JSON
[{
    "group":"{group name}"
"logStreams": [
        {
            "arn": "arn:aws:logs:us-east-1:log-group:aws-cloudtrail-logs:log-stream:CloudTrail_us-east-1",
            "creationTime": 1611652272827,
            "firstEventTimestamp": 1611652287716,
            "lastEventTimestamp": 1612271538268,
            "lastIngestionTime": 1612271538289,
            "logStreamName": "CloudTrail_us-east-1",
            "storedBytes": 0,
            "uploadSequenceToken": "49039859450784908968417870788122674924958823185025535393"
        }
    ]
}
]
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
si des données sont disponibles pour au moins un groupe de journaux (is_success = true) : "Les flux de journaux disponibles ont été renvoyés pour les groupes de journaux suivants dans AWS CloudWatch : {group names}".

si les données ne sont pas disponibles pour au moins un groupe de journaux (is_success = true) : "L'action n'a pas pu renvoyer les flux de journaux disponibles pour les groupes de journaux suivants dans AWS CloudWatch : {group names}".

if data is not available for at least one log group (is_success = false): "No log streams were found for the provided log groups in AWS CloudWatch".

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "Lister les flux de journaux". Raison : {0}''.format(error.Stacktrace)

Général
Tableau du mur des cas

Nom : "{Nom du groupe} : flux de journaux"

Colonne :

Nom

Octets stockés

Heure de création

Code temporel du dernier événement

Général

Événement de journal de recherche

Recherchez des événements de journaux dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Groupe de journaux Chaîne N/A Oui Spécifiez le nom du groupe de journaux dans lequel vous souhaitez rechercher des événements.
Flux de journaux CSV N/A Non Spécifiez une liste de flux de journaux séparés par une virgule dans lesquels vous souhaitez rechercher des événements.
Période LDD

La dernière heure

Valeurs possibles :

La dernière heure

Les 6 dernières heures

Dernières 24 heures

La semaine dernière

Le mois dernier

Personnalisé

Non Spécifiez une période pour la recherche. Si vous sélectionnez "Personnalisé", vous devez également définir une heure de début.
Heure de début Chaîne N/A Non Spécifiez l'heure de début de la recherche. Ce paramètre est obligatoire si l'option "Personnalisé" est sélectionnée pour le paramètre "Période". Format : ISO 8601
Heure de fin Chaîne N/A Non Spécifiez l'heure de fin de la recherche. Format : ISO 8601. Si aucune valeur n'est fournie et que "Personnalisée" est sélectionné pour le paramètre "Période", ce paramètre utilisera l'heure actuelle.
Filtre personnalisé Chaîne N/A Non Spécifiez le filtre personnalisé pour la recherche. Pour en savoir plus, veuillez consulter le portail de documentation.
Nombre maximal d'événements à renvoyer Integer 50 Non Spécifiez le nombre d'événements à renvoyer. Valeur par défaut : 50.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Résultat JSON
[
        {
            "eventId": "ID",
            "ingestionTime": 1611652287896,
            "logStreamName": "CloudTrail_us-east-1",
            "message": {
                "eventVersion": "1.08",
                "userIdentity": {
                    "type": "AssumedRole",
                    "principalId": "ID",
                    "arn":"arn:aw
s:sts: : ACCOUNT_ID:assumed-role/AWSServiceRoleForAmazonMacie/AmazonMacieSession","accountId":"ACCOUNT_ID","accessKeyId":"KEY_ID","sessionC
ontext":{"sessionIssuer":{"type":"Role","principalId":"ID","arn":"arn:aws:iam: : ACCOUNT_ID:role/aws-service-role/macie.amazonaws.com/AW
SServiceRoleForAmazonMacie","accountId":"ACCOUNT_ID","userName":"AWSServiceRoleForAmazonMacie"},"webIdFederationData":{},"attributes":{"mfaAuthenticated": "false",
                    "creationDate": "2021-01-26T08:53:52Z"
                }
            },
            "invokedBy": "AWS Internal",
            "eventTime": "2021-01-26T08:53:52Z",
            "eventSource": "s3.amazonaws.com",
            "eventName": "GetBucketLogging",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "AWSInternal",
            "userAgent": "AWS Internal",
            "requestParameters": {
                "logging": "",
                "bucketName": "example",
                "Host": "example.s3.amazonaws.com"
            },
            "responseElements": null,
            "additionalEventData": {
                "SignatureVersion": "SigV4",
                "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
                "bytesTransferredIn": 0,
                "AuthenticationMethod": "AuthHeader",
                "x-amz-id-2": "PFM+6pyK/gCPy95gh8dtstgtXftrpHkL8s=",
                "bytesTransferredOut": 289
            },
            "requestID": "8FA919A428BC82D7",
            "eventID": "7eb5dd44-7021-4945-b9be-27f5b1e0d8d0",
            "readOnly": true,
            "resources": [
                {
                    "accountId": "ACCOUNT_ID",
                    "type": "AWS::S3::Bucket",
                    "ARN": "arn:aws:s3:::example"
                }
            ],
            "eventType": "AwsApiCall",
            "managementEvent": true,
            "eventCategory": "Management",
            "recipientAccountId": "ACCOUNT_ID"
        },
        "timestamp": 1611652287716
    }
]
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
si des données sont disponibles (is_success = true) : "Successfully executed search in AWS CloudWatch".

Si aucune donnée n'est disponible (is_success = false) : "Aucune donnée n'a été trouvée pour la recherche fournie."

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "Rechercher des événements de journaux". Raison : {0}''.format(error.Stacktrace)

Général
Tableau du mur des cas

Nom : "Résultats de recherche"

Colonne : toutes les clés disponibles.

Général

Définir une règle de conservation

Définissez la stratégie de conservation pour les groupes de journaux dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Groupe de journaux Chaîne N/A Oui Spécifiez le nom du groupe de journaux pour lequel vous souhaitez définir la règle de conservation.
Durée de rétention (en jours) LDD

1

Valeurs possibles

1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1 827 et 3 653

Oui Indiquez le nombre de jours pendant lesquels les données doivent être conservées dans le groupe de journaux.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
if data success: (is_success = true): "Successfully set the retention policy for log group {group} in AWS CloudWatch".

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "Définir le règlement sur la conservation". Raison : {0}''.format(error.Stacktrace)

Général

Supprimer une règle de conservation

Supprimez la règle de conservation du groupe de journaux dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Groupe de journaux Chaîne N/A Oui Spécifiez le nom du groupe de journaux pour lequel vous souhaitez supprimer la règle de conservation.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
if data success: (is_success = true): "Successfully removed the retention policy from log group {group} in AWS CloudWatch".

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "Supprimer la règle de conservation". Raison : {0}''.format(error.Stacktrace)

Général

Créer un groupe de journaux

Créez un groupe de journaux dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Nom du groupe de journaux Chaîne N/A Oui Spécifiez le nom du nouveau groupe de journaux.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Résultat JSON
{
"group_name": "GROUP_NAME"
}
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
if data success: (is_success = true): "Successfully created a new log group {group} in AWS CloudWatch".

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "Créer un groupe de journaux". Raison : {0}''.format(error.Stacktrace)

Général

Créer un flux de journaux

Créez un flux de journaux pour le groupe de journaux dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Groupe de journaux Chaîne N/A Oui Spécifiez le nom du groupe de journaux dans lequel vous souhaitez créer un flux de journaux.
Nom du flux de journaux Chaîne N/A Oui Spécifiez le nom du nouveau flux de journaux.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Résultat JSON
{
"log_stream": "STREAM_NAME"
}
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
if data success: (is_success = true): "Successfully created a new log stream in log group {group} in AWS CloudWatch".

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "Créer un flux de journaux". Raison : {0}''.format(error.Stacktrace)

Général

Supprimer un groupe de journaux

Supprimez un groupe de journaux dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Nom du groupe de journaux Chaîne N/A Oui Spécifiez le nom du groupe de journaux à supprimer.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
if data success: (is_success = true): "Successfully deleted log group {group} in AWS CloudWatch".

Si le groupe n'existe pas (is_success=false) : "L'action n'a pas pu supprimer le groupe de journaux {group} dans AWS CloudWatch. Motif : Le groupe de journaux {group} n'a pas été trouvé dans AWS CloudWatch."

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "Supprimer le groupe de journaux". Raison : {0}''.format(error.Stacktrace)

Général

Supprimer un flux de journaux

Supprimez un flux de journaux dans un groupe de journaux dans AWS CloudWatch.

Paramètres

Nom à afficher du paramètre> Type> Valeur par défaut> Obligatoire> Description >
Nom du groupe de journaux Chaîne N/A Oui Indiquez le nom du groupe de journaux contenant le flux de journaux.
Nom du flux de journaux Chaîne N/A Oui Spécifiez le nom du flux de journaux à supprimer.

Exécuter sur

Cette action ne s'applique pas aux entités.

Résultats de l'action

Résultat du script
Nom du résultat du script> Options de valeur>
is_success is_success=False
is_success is_success=True
Mur des cas
Type de résultat Valeur / Description Type
Message de sortie*

L'action ne doit pas échouer ni arrêter l'exécution d'un playbook :
if data success: (is_success = true): "Successfully deleted log stream {stream} from log group {group} in AWS CloudWatch".

Si le flux n'existe pas (is_success=false) : "L'action n'a pas pu supprimer le flux de journaux {stream} du groupe de journaux {group} dans AWS CloudWatch. Motif : Le flux de journaux {stream} n'a pas été trouvé dans le groupe de journaux {group} dans AWS CloudWatch."

Si le groupe n'existe pas (is_success=false) : "L'action n'a pas pu supprimer le flux de journaux {stream} du groupe de journaux {group} dans AWS CloudWatch. Motif : Le groupe de journaux {group} n'a pas été trouvé dans AWS CloudWatch."

L'action doit échouer et arrêter l'exécution d'un playbook :
en cas d'erreur fatale, comme des identifiants incorrects, l'absence de connexion au serveur, etc. : "Erreur lors de l'exécution de l'action "Supprimer le flux de journaux". Raison : {0}''.format(error.Stacktrace)

Général

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.