Création d’une intégration avec une source d’événements externe à AWS - 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 avec une source d’événements externe à AWS

Vous pouvez utiliser CloudTrail pour journaliser et stocker les données d’activité des utilisateurs à partir d’une source faisant partie de vos environnements hybrides, telle qu’une application interne ou SaaS hébergée sur site ou dans le cloud, une machine virtuelle ou un conteneur. Vous pouvez stocker ces données, y accéder, effectuer des analyses, résoudre des problèmes et agir sur celles-ci sans avoir à gérer plusieurs agrégateurs de journaux et outils de création de rapports.

Les événements d'activité de sources externes à AWS utilisent des canaux permettant l'intégration dans CloudTrail Lake d'événements provenant de vos propres sources ou de partenaires externes travaillant avec CloudTrail. Lorsque vous créez un canal, vous sélectionnez un ou plusieurs stockage(s) de données d'événement pour stocker les événements provenant de la source du canal. Vous pouvez modifier les stockages de données d'événement de destination d'un canal selon vos besoins, à condition qu'ils soient configurés pour journaliser les événements eventCategory="ActivityAuditLog". Lorsque vous créez un canal pour les événements d'un partenaire externe, vous fournissez un ARN de canal au partenaire ou à l'application source. La politique de ressources attachée au canal permet à la source de transmettre des événements via celui-ci. Si un canal ne dispose d'aucune politique de ressources, seul le propriétaire du canal peut appeler l'API PutAuditEvents sur celui-ci.

CloudTrail est partenaire de nombreux fournisseurs de source d'événements, tels qu'Okta et LaunchDarkly. Lorsque vous créez une intégration avec une source d'événements externe à AWS, vous pouvez choisir l'un de ces partenaires comme source d'événements, ou sélectionner My custom integration (Mon intégration personnalisée) pour intégrer des événements provenant de vos propres sources dans CloudTrail. Un seul canal est autorisé par source.

Il existe deux types d'intégrations : directe et solution. Avec les intégrations directes, le partenaire appelle l'API PutAuditEvents pour transmettre les événements au stockage de données d'événement pour votre compte AWS. Avec les intégrations solutions, l’application s’exécute sur votre compte AWS et appelle l’API PutAuditEvents pour transmettre les événements au magasin de données d’événement pour votre compte AWS.

Sur la page Integrations (Intégrations), vous pouvez sélectionner l'onglet Available sources (Sources disponibles) afin d'afficher Integration type (Type d'intégration) pour les partenaires.


            Type d'intégration de partenaire

Pour commencer, créez une intégration pour journaliser les événements provenant de partenaires ou d'autres applications sources à l'aide de la console CloudTrail.

Création d’une intégration avec un partenaire CloudTrail

Lorsque vous créez une intégration avec une source d’événements externe à AWS, vous pouvez choisir l’un de ces partenaires comme source d’événements. Lorsque vous créez une intégration dans CloudTrail avec une application partenaire, le partenaire a besoin de l'Amazon Resource Name (ARN) du canal que vous créez dans ce flux pour envoyer des événements à CloudTrail. Après avoir créé l'intégration, vous terminez de configurer l'intégration en suivant les instructions du partenaire pour lui fournir l'ARN de canal requis. L'intégration commence à ingérer les événements du partenaire dans CloudTrail une fois que celui-ci appelle PutAuditEvents sur le canal de l'intégration.

  1. Connectez-vous à AWS Management Console et ouvrez la console CloudTrail à 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 la source d'application partenaire à partir de laquelle vous souhaitez obtenir des événements. Si vous intégrez des événements à partir de vos propres applications hébergées sur site ou dans le cloud, sélectionnez My custom integration (Mon intégration personnalisée).

  5. Dans Emplacement de réception des événements, choisissez de journaliser ces événements d’activité dans des magasins 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. Le magasin de données d’événement conserve les données d’événement pendant le nombre de jours spécifié.

    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. Le propriétaire de la ressource dispose d'un accès implicite à la ressource si sa politique IAM autorise l'action cloudtrail-data:PutAuditEvents.

    Les informations requises pour la politique sont déterminées par le type d'intégration. Pour une intégration directe, CloudTrail ajoute automatiquement les ID de compte AWS du partenaire et vous demande de saisir l'ID externe unique fourni par ce dernier. Pour une intégration solution, vous devez spécifier au moins un ID de compte AWS en tant que principal et pouvez éventuellement saisir un ID externe afin d'éviter tout problème d'adjoint confus.

    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. Pour une intégration directe, saisissez l'ID externe fourni par votre partenaire. Le partenaire d'intégration fournit un ID externe unique, tel qu'un ID de compte ou une chaîne générée aléatoirement, à utiliser pour l'intégration afin d'éviter tout problème d'adjoint confus. Le partenaire est responsable de la création et de la transmission d'un ID externe unique.

      Vous pouvez sélectionner How to find this? (Comment trouver cela ?) pour consulter la documentation du partenaire expliquant comment trouver l'ID externe.

      
                                    Documentation du partenaire concernant l'ID externe
      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 pas d'ID externe, le partenaire peut appeler l'API PutAuditEvents et spécifier un paramètre externalId.

    2. Pour une intégration de solution, sélectionnez Ajouter un compte AWS afin de spécifier un ID de compte AWS à ajouter en tant que principal dans la politique.

  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 l'utilisation des balises dans AWS, veuillez consulter Tagging AWS resources dans la 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 aucune page de révision. CloudTrail crée l'intégration, mais vous devez fournir l'Amazon Resource Name (ARN) du canal à l'application partenaire. Les instructions pour fournir l'ARN du canal à l'application partenaire se trouvent sur le site Web de documentation du partenaire. Afin d'obtenir davantage d'informations et ouvrir la page du partenaire dans AWS Marketplace, cliquez sur le lien Learn more (En savoir plus) pour le partenaire dans l'onglet Available sources (Sources disponibles) de la page Integrations (Intégrations).

Afin de terminer la configuration de votre intégration, fournissez l'ARN du canal au partenaire ou à l'application source. Selon le type d'intégration, vous, le partenaire ou l'application exécutez l'API PutAuditEvents pour transmettre les événements d'activité au stockage de données d'événement de votre compte AWS. Une fois vos événements d'activité transmis, vous pouvez utiliser CloudTrail Lake pour effectuer des recherches, interroger et analyser les données journalisées à partir de vos applications. Vos données d'événement incluent des champs qui correspondent à la charge utile d'événement CloudTrail, tels que eventVersion, eventSource et userIdentity.

Création d’une intégration personnalisée

Vous pouvez utiliser CloudTrail pour journaliser et stocker les données d’activité des utilisateurs à partir d’une source faisant partie de vos environnements hybrides, telle qu’une application interne ou SaaS hébergée sur site ou dans le cloud, une machine virtuelle ou un conteneur. Effectuez la première moitié de cette procédure dans la console CloudTrail Lake, puis appelez l'API PutAuditEvents pour ingérer les événements, en fournissant l'ARN de votre canal et la charge utile d'événement. Après avoir utilisé l'API PutAuditEvents afin d'ingérer l'activité de vos applications dans CloudTrail, vous pouvez utiliser CloudTrail Lake pour effectuer des recherches, interroger et analyser les données journalisées à partir de vos applications.

  1. Connectez-vous à AWS Management Console et ouvrez la console CloudTrail à 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. Sélectionnez Ajouter un compte AWS pour spécifier chaque ID de compte AWS à ajouter en tant que principal dans la politique de ressources du canal.

  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 l'utilisation des balises dans AWS, veuillez consulter Tagging AWS resources dans la 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 aucune page de révision. CloudTrail crée l'intégration mais vous devez spécifier l'ARN du canal dans une demande PutAuditEvents pour intégrer vos événements personnalisés.

  9. Appelez l'API PutAuditEvents pour ingérer vos événements d'activité dans CloudTrail. 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éé lors des étapes précédentes, de la charge utile d'événement que vous souhaitez que CloudTrail ajoute et de l'ID externe (si spécifié dans votre politique de ressources). Assurez-vous qu'aucune information sensible ou d'identification personnelle ne figure dans la charge utile d'événement avant de l'ingérer dans CloudTrail. Les événements que vous ingérez dans CloudTrail doivent suivre le Schéma d'événements d'intégrations CloudTrail Lake.

    Astuce

    Utilisez AWS CloudShell afin de vous assurer que vous exécutez les API AWS 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énement. --audit-events inclut un ID requis pour l'événement, la charge utile requise de l'événement sous forme de valeur de EventData ainsi qu'une somme de contrôle facultative pour faciliter la validation de l'intégrité de l'événement après son ingestion dans 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 demande PutAuditEvents vous permet de vérifier que CloudTrail reçoit l'événement correspondant à la somme de contrôle. Cela 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 erreur InvalidChecksum.

Informations supplémentaires sur les partenaires d'intégration

Le tableau de cette section fournit le nom source de chaque partenaire d'intégration et identifie le type d'intégration (directe ou solution).

Les informations de la colonne Source name (Nom de source) sont requises lors de l'appel de l'API CreateChannel. Vous spécifiez le nom de la source comme valeur pour le paramètre Source.

Nom du partenaire (console) Nom de la source (API) Type d’intégration
Mon intégration personnalisée Custom solution
Sécurité du stockage dans le cloud CloudStorageSecurityConsole solution
Clumio Clumio directe
CrowdStrike CrowdStrike solution
CyberArk CyberArk solution
GitHub GitHub solution
Kong Inc KongGatewayEnterprise solution
LaunchDarkly LaunchDarkly directe
Netskope NetskopeCloudExchange solution
Nordcloud, une société d'IBM IBMMulticloud directe
MontyCloud MontyCloud directe
Okta OktaSystemLogEvents solution
One Identity OneLogin solution
Shoreline.io Shoreline solution
Snyk.io Snyk directe
Wiz WizAuditLogs solution

Consulter la documentation des partenaires

Pour en savoir plus sur l'intégration d'un partenaire avec CloudTrail Lake, consultez sa documentation.

Pour consulter la documentation des partenaires

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

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

  3. Sur la page Intégrations, sélectionnez Sources disponibles, puis En savoir plus pour le partenaire dont vous souhaitez consulter la documentation.