Création d'une intégration personnalisée avec la console - AWS CloudTrail

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'une intégration personnalisée avec la console

Vous pouvez l'utiliser CloudTrail pour enregistrer et stocker les données d'activité des utilisateurs provenant de n'importe quelle source dans vos environnements hybrides, comme les applications internes ou SaaS hébergées sur site ou dans le cloud, les machines virtuelles ou les conteneurs. Effectuez la première moitié de cette procédure dans la console CloudTrail Lake, puis appelez l'PutAuditEventsAPI pour ingérer les événements, en fournissant l'ARN de votre canal et la charge utile des événements. Après avoir utilisé l'PutAuditEventsAPI pour intégrer l'activité de votre application CloudTrail, vous pouvez utiliser CloudTrail Lake pour rechercher, interroger et analyser les données enregistrées par vos applications.

  1. Connectez-vous à la CloudTrail console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudtrail/.

  2. Dans le panneau de navigation, sous Lake, choisissez Intégrations.

  3. Sur la page Ajouter une intégration, saisissez un nom pour votre chaîne. Le nom doit comporter entre 3 et 128 caractères. Les noms peuvent contenir uniquement des lettres, des chiffres, des points, des tirets et des traits de soulignement.

  4. Sélectionnez My custom integration (Mon intégration personnalisée).

  5. Dans Event delivery location (Emplacement de réception des événements), choisissez de journaliser ces événements d'activité dans des stockages de données d'événement existants ou d'en créer un nouveau.

    Si vous choisissez de créer un nouveau magasin de données d’événement, saisissez un nom pour celui-ci et spécifiez la période de conservation en jours. Vous pouvez conserver les données d’événement dans une banque de données d’événement jusqu’à 3 653 jours (environ 10 ans) si vous choisissez l’option de tarification de rétention extensible d’un an, ou jusqu’à 2 557 jours (environ 7 ans) si vous choisissez l’option de tarification de rétention de sept ans.

    Si vous choisissez de journaliser les événements d’activité dans un ou plusieurs magasins de données d’événement existants, sélectionnez-les dans la liste. Les stockages de données d'événement ne peuvent inclure que des événements d'activité. Le type d'événement dans la console doit être Events from integrations (Événements issus des intégrations). Dans l'API, la valeur eventCategory doit être ActivityAuditLog.

  6. Dans Resource policy (Politique de ressources), configurez la politique de ressources pour le canal de l'intégration. Les politiques de ressources sont des documents de politique JSON précisant les actions qu'un principal spécifié peut effectuer sur la ressource ainsi que les conditions dans lesquelles ces actions peuvent être effectuées. Les comptes définis comme principaux dans la politique de ressources peuvent appeler l’API PutAuditEvents pour transmettre des événements à votre canal.

    Note

    Si vous ne créez pas de politique de ressources pour le canal, seul son propriétaire peut appeler l'API PutAuditEvents sur celui-ci.

    1. (Facultatif) Entrez un ID externe unique pour fournir un niveau de protection supplémentaire. L'ID externe est une chaîne unique, telle qu'un ID de compte ou une chaîne générée aléatoirement, pour éviter tout problème d'adjoint confus.

      Note

      Si la politique de ressources inclut un ID externe, tous les appels à l’API PutAuditEvents doivent l’inclure. Cependant, si la politique ne définit aucun ID externe, vous pouvez appeler l'API PutAuditEvents et spécifier un paramètre externalId.

    2. Choisissez Ajouter un AWS compte pour spécifier chaque identifiant de AWS compte à ajouter en tant que principal dans la politique de ressources de la chaîne.

  7. (Facultatif) Dans la zone Tags (Balises), vous pouvez ajouter jusqu'à 50 paires clé-valeur de balise pour vous aider à identifier, trier et contrôler l'accès à votre stockage de données d'événement. Pour plus d’informations sur l’utilisation des politiques IAM pour autoriser l’accès à un magasin de données d’événement basé sur des identifications, consultez Exemples : rejeter l'accès à la création ou à la suppression de magasins de données d'événement en fonction des identifications. Pour plus d'informations sur la manière dont vous pouvez utiliser les balises dans AWS, consultez la section Marquage de vos AWS ressources dans le Références générales AWS.

  8. Lorsque vous souhaitez créer la nouvelle intégration, sélectionnez Ajouter une intégration. Il n'y a pas de page d'évaluation. CloudTrail crée l'intégration, mais pour intégrer vos événements personnalisés, vous devez spécifier l'ARN du canal dans une PutAuditEventsdemande.

  9. Appelez l'PutAuditEventsAPI pour y intégrer CloudTrail les événements de votre activité. Vous pouvez ajouter jusqu'à 100 événements d'activité (ou jusqu'à 1 Mo) par demande PutAuditEvents. Vous aurez besoin de l'ARN du canal que vous avez créé au cours des étapes précédentes, de la charge utile des événements que vous CloudTrail souhaitez ajouter et de l'ID externe (si spécifié dans votre politique de ressources). Assurez-vous qu'aucune information sensible ou d'identification personnelle ne se trouve dans la charge utile de l'événement avant de l'ingérer. CloudTrail Les événements auxquels vous participez CloudTrail doivent suivre leCloudTrail Schéma des événements Lake Integrations.

    Astuce

    AWS CloudShellUtilisez-le pour vous assurer que vous utilisez les AWS API les plus récentes.

    Les exemples suivants montrent comment utiliser la commande de la CLI put-audit-events. Les paramètres --audit-events et --channel-arn sont obligatoires. Vous avez besoin de l'ARN du canal que vous avez créé lors des étapes précédentes. Vous pouvez le copier depuis la page des détails de l'intégration. La valeur de --audit-events est un tableau JSON d'objets d'événements. --audit-eventsinclut un identifiant requis pour l'événement, la charge utile requise de l'événement comme valeur deEventData, et une somme de contrôle facultative pour aider à valider l'intégrité de l'événement après son ingestion. CloudTrail

    aws cloudtrail-data put-audit-events \ --region region \ --channel-arn $ChannelArn \ --audit-events \ id="event_ID",eventData='"{event_payload}"' \ id="event_ID",eventData='"{event_payload}"',eventDataChecksum="optional_checksum"

    Voici un exemple de commande avec deux exemples d'événement.

    aws cloudtrail-data put-audit-events \ --region us-east-1 \ --channel-arn arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --audit-events \ id="EXAMPLE3-0f1f-4a85-9664-d50a3EXAMPLE",eventData='"{\"eventVersion\":\0.01\",\"eventSource\":\"custom1.domain.com\", ... \}"' \ id="EXAMPLE7-a999-486d-b241-b33a1EXAMPLE",eventData='"{\"eventVersion\":\0.02\",\"eventSource\":\"custom2.domain.com\", ... \}"',eventDataChecksum="EXAMPLE6e7dd61f3ead...93a691d8EXAMPLE"

    L'exemple de commande suivant ajoute le paramètre --cli-input-json pour spécifier un fichier JSON (custom-events.json) de charge utile d'événement.

    aws cloudtrail-data put-audit-events \ --channel-arn $channelArn \ --cli-input-json file://custom-events.json \ --region us-east-1

    Voici les exemples de contenu de l’exemple de fichier JSON, custom-events.json.

    { "auditEvents": [ { "eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"source_IP_address\",\"recipientAccountId\":\"recipient_account_ID\"}", "id": "1" } ] }

(Facultatif) Calcul d'une valeur de somme de contrôle

La somme de contrôle que vous spécifiez comme valeur de EventDataChecksum dans une PutAuditEvents demande vous permet de vérifier qui CloudTrail reçoit l'événement correspondant à la somme de contrôle ; elle permet de vérifier l'intégrité des événements. La valeur de la somme de contrôle est un algorithme base64-SHA256 que vous calculez en exécutant la commande suivante.

printf %s "{"eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"source_IP_address\", \"recipientAccountId\":\"recipient_account_ID\"}", "id": "1"}" \ | openssl dgst -binary -sha256 | base64

La commande renvoie la somme de contrôle. Voici un exemple.

EXAMPLEHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=

La valeur de la somme de contrôle devient la valeur de EventDataChecksum dans votre demande PutAuditEvents. Si la somme de contrôle ne correspond pas à celle de l'événement fourni, CloudTrail rejette l'événement avec une InvalidChecksum erreur.