Skip to main content

Streaming de journaux d’audit pour votre entreprise

Apprenez à diffuser les données d’événements d’audit et Git à partir de GitHub vers un système de gestion des données externe.

Qui peut utiliser cette fonctionnalité ?

Enterprise owners

Note

Les webhooks peuvent être une bonne alternative au journal d’audit ou à l’interrogation d’API pour certains cas d'utilisation. Les webhooks sont un moyen pour GitHub de notifier votre serveur lorsque des événements spécifiques se produisent pour un référentiel, une organisation ou une entreprise. Par rapport à l’API ou à la recherche dans le journal d’audit, les webhooks peuvent être plus efficaces si vous souhaitez simplement apprendre et éventuellement journaliser quand certains événements se produisent sur votre entreprise, organisation ou référentiel. Pour plus d’informations, consultez « Documentation sur les webhooks ».

À propos du streaming de journaux d’audit

Vous pouvez contribuer à la protection de la propriété intellectuelle et au maintien de la conformité de votre entreprise en utilisant la diffusion en continu pour conserver des copies de vos données de journal d'audit. Les événements de journal d’audit, tels que les modifications apportées aux paramètres et à l’accès, à l’abonnement des utilisateurs, aux autorisations d’application, etc. Voir « Événements du journal d’audit pour votre entreprise », « Événements du journal d’audit pour votre organisation » et « Événements du journal de sécurité ».

La diffusion en continu des données du journal d'audit présente les avantages suivants :

  • Exploration des données. Examinez les événements envoyés en streaming à l’aide de votre outil préféré pour interroger de grandes quantités de données. Le flux contient à la fois les événements d’audit et les événements Git pour l’ensemble du compte d’entreprise.
  • Conservation des données. Conservez les données exportées des journaux d’audit et des événements Git tant que vous en avez besoin.

Vous pouvez configurer ou supprimer un flux à tout moment. Le flux exporte les données des événements d’audit et Git de toutes les organisations de votre entreprise pour les activités se produisant à compter de l’activation du flux.

Tous les journaux d’audit diffusés en continu sont envoyés sous forme de fichiers JSON compressés. Le format de nom de fichier est en YYYY/MM/HH/MM/<uuid>.json.gz.

Note

GitHub utilise une méthode de livraison Au moins une fois. En raison de certains problèmes réseau ou système, certains événements peuvent être dupliqués.

L'activation du streaming de journaux d'audit peut avoir un impact mineur sur les performances de votre instance GitHub Enterprise Server. Pour en savoir plus sur l'augmentation des ressources afin d'atténuer cet impact sur les performances, voir « Augmentation des ressources processeur ou mémoire ».

Configuration du streaming de journaux d’audit

Pour configurer le streaming de journaux d'audit, suivez les instructions de votre fournisseur :

Configuration du streaming vers Amazon S3

Note

La région Amazon us-east-1 doit être accessible depuis votre appareil pour que la diffusion en continu vers S3 fonctionne.

Pour configurer l’envoi en streaming de journaux d’audit à partir de GitHub vous aurez besoin des éléments suivants :

  • Votre ID de clé d’accès AWS
  • Votre clé secrète AWS

Pour obtenir des informations sur la création de votre ID de clé d’accès et de votre clé secrète et sur la manière d’y accéder, consultez Understanding and getting your AWS credentials (Compréhension et obtention de vos informations d’identification AWS) dans la documentation AWS.

À partir d’AWS :

  1. Créez un compartiment et bloquez l’accès public au compartiment. Voir Création, configuration et utilisation des compartiments Amazon S3 dans la documentation AWS.

  2. Créez une stratégie qui autorise GitHub à écrire dans le compartiment. Copiez le JSON suivant et remplacez EXAMPLE-BUCKET par le nom de votre seau. GitHub ne requiert que les autorisations indiquées dans ce code JSON.

    {
       "Version": "2012-10-17",
       "Statement": [
          {
             "Sid": "VisualEditor0",
             "Effect": "Allow",
             "Action": [
                "s3:PutObject"
             ],
             "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/*"
         }
       ]
    }
    

    Voir Création de stratégies de gestion des identités et des accès dans la documentation AWS.

De GitHub :

  1. Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.

    Capture d’écran du menu déroulant qui s’affiche lorsque vous cliquez sur la photo de profil sur GitHub Enterprise Server. L’option « Paramètres d’entreprise » est mise en évidence avec un contour orange foncé.

  2. Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.

  3. Sous «  Paramètres », cliquez sur Journal d’audit.

  4. Sous « Journal d’audit », cliquez sur Streaming de journaux.

  5. Sélectionnez le menu déroulant Configurer le flux, puis cliquez sur Amazon S3.

  6. Configurez les paramètres de flux.

    • Sous « Compartiment », entrez le nom du compartiment destinataire du streaming. Par exemple : auditlog-streaming-test.
    • Sous « ID de clé d’accès », tapez votre ID de clé d’accès. Par exemple : ABCAIOSFODNN7EXAMPLE1.
    • Sous « Clé secrète », tapez votre clé secrète. Par exemple : aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY.
  7. Pour vérifier que GitHub peut se connecter au point de terminaison Amazon S3 et écrire dessus, cliquez sur Vérifier le point de terminaison.

  8. Une fois que vous avez vérifié le point de terminaison, cliquez sur Enregistrer.

Intégration à AWS CloudTrail Lake

Vous pouvez consolider vos journaux d'audit en intégrant le streaming vers S3 avec AWS CloudTrail Lake. Voir la documentation AWS CloudTrail ou la procédure d’intégration des journaux d’audit GitHub à CloudTrail dans le dépôt aws-samples/aws-cloudtrail-lake-github-audit-log.

Configuration du streaming vers le Stockage Blob Azure

Avant de configurer un flux dans GitHub, créez d'abord un compte de stockage et un conteneur dans Microsoft Azure. Voir Introduction to Azure Blob Storage dans la documentation Microsoft.

Pour configurer le flux, vous avez besoin de l'URL d'un jeton SAS.

Du portail Microsoft Azure :

  1. Sur la page d’accueil, cliquez sur Comptes de stockage.
  2. Sous « Nom », cliquez sur le nom du compte de stockage que vous souhaitez utiliser.
  3. Sous « Stockage de données », cliquez sur Conteneurs.
  4. Cliquez sur le nom du conteneur à utiliser.
  5. Dans la barre latérale gauche, sous « Paramètres », cliquez sur Jetons d’accès partagé.
  6. Sélectionnez le menu déroulant Autorisations, puis sélectionnez Create et Write et désélectionnez toutes les autres options.
  7. Définissez une date d’expiration conforme à votre stratégie de rotation de secret.
  8. Cliquez sur Générer une URL et un jeton SAS.
  9. Copiez la valeur du champ URL SAP d’objet blob. Vous utiliserez cette URL dans GitHub.

De GitHub :

  1. Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.

    Capture d’écran du menu déroulant qui s’affiche lorsque vous cliquez sur la photo de profil sur GitHub Enterprise Server. L’option « Paramètres d’entreprise » est mise en évidence avec un contour orange foncé.

  2. Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.

  3. Sous «  Paramètres », cliquez sur Journal d’audit.

  4. Sous « Journal d’audit », cliquez sur Streaming de journaux.

  5. Sélectionnez le menu déroulant Configurer le flux, puis cliquez sur Stockage Blob Azure.

  6. Dans la page de configuration, entrez l’URL SAS d’objet blob que vous avez copiée dans Azure. Le champ Conteneur est rempli automatiquement en fonction de l’URL.

  7. Cliquez sur Vérifier le point de terminaison pour vérifier que GitHub peut se connecter au point de terminaison Stockage Blob Azure et écrire dessus.

  8. Une fois que vous avez vérifié le point de terminaison, cliquez sur Enregistrer.

Configuration du streaming vers Azure Event Hubs

Avant de configurer un flux dans GitHub, vous devez disposer d’un espace de noms de hub d’événements dans Microsoft Azure. Ensuite, créez une instance de hub d’événements dans l’espace de noms. Vous aurez besoin des détails de cette instance de hub d’événements quand vous configurerez le flux. Voir « Démarrage rapide : Créer un hub d’événements avec le portail Azure » dans la documentation Microsoft.

Vous aurez également besoin du nom de l'instance de votre hub d'événements et de la chaîne de connexion.

Du portail Microsoft Azure :

  1. En haut de la page, utilisez le champ de recherche pour rechercher « Event Hubs ».
  2. Sélectionnez Event Hubs. Les noms de vos hubs d’événements sont listés.
  3. Notez le nom du hub d’événements auquel le streaming est destiné. Cliquez sur le hub d’événements.
  4. Dans le menu de gauche, cliquez sur Stratégies d’accès partagé.
  5. Sélectionnez une stratégie d’accès partagé dans la liste des stratégies ou créez-en une.
  6. Copiez la chaîne de connexion à partir du champ Clé primaire de la chaîne de connexion.

De GitHub :

  1. Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.

    Capture d’écran du menu déroulant qui s’affiche lorsque vous cliquez sur la photo de profil sur GitHub Enterprise Server. L’option « Paramètres d’entreprise » est mise en évidence avec un contour orange foncé.

  2. Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.

  3. Sous «  Paramètres », cliquez sur Journal d’audit.

  4. Sous « Journal d’audit », cliquez sur Streaming de journaux.

  5. Sélectionnez le déroulant Configurer le flux, puis cliquez sur Azure Event Hubs.

  6. Sur la page de configuration, entrez :

    • Le nom de l’instance Azure Event Hubs
    • Chaîne de connexion
  7. Cliquez sur Vérifier le point de terminaison pour vérifier que GitHub peut se connecter au point de terminaison Azure Events Hubs et écrire dessus.

  8. Une fois que vous avez vérifié le point de terminaison, cliquez sur Enregistrer.

Configuration du streaming vers Datadog

Pour configurer le streaming vers Datadog, créez un jeton client ou une clé API dans Datadog, puis configurer le streaming de journaux d’audit dans GitHub Enterprise Server à l’aide du jeton pour l’authentification. Vous n’avez pas besoin de créer un compartiment ou un autre conteneur de stockage dans Datadog.

Après avoir configuré le streaming vers Datadog, vous pouvez voir vos données de journal d’audit en filtrant sur « github.audit.streaming ». Consultez Gestion des journaux d'activité.

  1. Si vous ne disposez pas encore d’un compte Datadog, créez-en un.

  2. Dans Datadog, générez un jeton client ou une clé API, puis cliquez sur Copier la clé. Voir Clés API et clés d’application dans la documentation Datadog.

  3. Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.

    Capture d’écran du menu déroulant qui s’affiche lorsque vous cliquez sur la photo de profil sur GitHub Enterprise Server. L’option « Paramètres d’entreprise » est mise en évidence avec un contour orange foncé.

  4. Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.

  5. Sous «  Paramètres », cliquez sur Journal d’audit.

  6. Sous « Journal d’audit », cliquez sur Streaming de journaux.

  7. Sélectionnez le déroulant Configurer le flux, puis cliquez sur Datadog.

  8. Dans le champ Jeton, collez le jeton que vous avez copié précédemment.

  9. Sélectionnez le déroulant Site, puis cliquez sur votre site Datadog. Pour déterminer votre site, comparez votre URL Datadog avec la table dans la documentation Datadog Sites Datadog.

  10. Pour vérifier que GitHub peut se connecter au point de terminaison Datadog et écrire dessus, cliquez sur Vérifier le point de terminaison.

  11. Une fois que vous avez vérifié le point de terminaison, cliquez sur Enregistrer.

  12. Après quelques minutes, vérifiez que les données du journal d’audit apparaissent sous l’onglet Journaux dans Datadog. S’il n’apparait pas, vérifiez que votre jeton et votre site sont corrects dans GitHub.

Configuration du streaming vers Google Cloud Storage

Pour configurer le streaming vers Google Cloud Storage, créez un compte de service dans Google Cloud avec les informations d’identification et les autorisations appropriées, puis configurer le streaming de journaux d’audit dans GitHub Enterprise Server à l’aide des informations d’identification du compte de service pour l’authentification.

  1. Créez un compte de service pour Google Cloud. Vous n’avez pas besoin de définir des contrôles d’accès ou des rôles IAM pour ce compte. Voir Créer et gérer des comptes de service dans la documentation Google Cloud.

  2. Créez une clé JSON pour le compte de service et stockez-la clé de manière sécurisée. Voir Créer et gérer les clés de comptes de service dans la documentation Google Cloud.

  3. Si vous ne l'avez pas encore fait, créez un seau. Voir Créer des buckets de stockage dans la documentation Google Cloud.

  4. Attribuez au compte de service le rôle Créateur des objets de l’espace de stockage pour le compartiment. Voir Utiliser des autorisations IAM dans la documentation Google Cloud.

  5. Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.

    Capture d’écran du menu déroulant qui s’affiche lorsque vous cliquez sur la photo de profil sur GitHub Enterprise Server. L’option « Paramètres d’entreprise » est mise en évidence avec un contour orange foncé.

  6. Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.

  7. Sous «  Paramètres », cliquez sur Journal d’audit.

  8. Sous « Journal d’audit », cliquez sur Streaming de journaux.

  9. Sélectionnez le déroulant Configurer le flux, puis cliquez sur Google Cloud Storage.

  10. Sous « Compartiment », tapez le nom de votre compartiment Google Cloud Storage.

  11. Sous « identifiants JSON », collez tout le contenu du fichier clé JSON de votre compte de service.

  12. Pour vérifier que GitHub peut se connecter au compartiment Google Cloud Storage et écrire dessus, cliquez sur Vérifier le point de terminaison.

  13. Une fois que vous avez vérifié le point de terminaison, cliquez sur Enregistrer.

Configuration du streaming vers Splunk

Pour envoyer des journaux d’audit en streaming vers le point de terminaison du collecteur d’événements HTTP (HEC, HTTP Event Collector) de Splunk, vérifiez que le point de terminaison est configuré pour accepter les connexions HTTPS. Voir Set up and use HTTP Event Collector in Splunk Web (Configurer et utiliser le collecteur d’événements HTTP) dans la documentation Splunk.

Note

GitHub valide le point de terminaison HEC via <Domain>:port/services/collector. Si vous hébergez vous-même le point de terminaison (comme avec Splunk HEC Receiver via OpenTelemetry), assurez-vous qu'il est accessible à cette destination.

  1. Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.

    Capture d’écran du menu déroulant qui s’affiche lorsque vous cliquez sur la photo de profil sur GitHub Enterprise Server. L’option « Paramètres d’entreprise » est mise en évidence avec un contour orange foncé.

  2. Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.

  3. Sous «  Paramètres », cliquez sur Journal d’audit.

  4. Sous « Journal d’audit », cliquez sur Streaming de journaux.

  5. Sélectionnez le déroulant Configurer le flux, puis cliquez sur Splunk.

  6. Sur la page de configuration, entrez :

    • Le domaine sur lequel l’application destinataire du streaming est hébergée.

      Si vous utilisez Splunk Cloud, Domain doit être http-inputs-<host>, où host est le domaine que vous utilisez dans Splunk Cloud. Par exemple : http-inputs-mycompany.splunkcloud.com.

      Si vous utilisez la version d’essai gratuite de Splunk Cloud, Domain doit être inputs.<host>, où host est le domaine que vous utilisez dans Splunk Cloud. Par exemple : inputs.mycompany.splunkcloud.com.

    • Le port sur lequel l’application accepte les données.

      Si vous utilisez Splunk Cloud, Port doit être 443.

      Si vous utilisez la version d’essai gratuite de Splunk Cloud, Port doit être 8088.

    • Un jeton que GitHub peut utiliser pour s’authentifier auprès de l’application tierce.

  7. Laissez la case Activer la vérification SSL cochée.

    Les journaux d’audit sont toujours envoyés en streaming sous forme de données chiffrées. Cependant, quand cette option est sélectionnée, GitHub vérifie le certificat SSL de votre instance Splunk au moment de la remise des événements. La vérification SSL permet de s’assurer que les événements sont remis à votre point de terminaison d’URL de manière sécurisée. La vérification est facultative, mais nous vous recommandons de laisser la vérification SSL activée.

  8. Cliquez sur Vérifier le point de terminaison pour vérifier que GitHub peut se connecter au point de terminaison Splunk et écrire dessus.

  9. Une fois que vous avez vérifié le point de terminaison, cliquez sur Enregistrer.

Suppression du flux de journaux d’audit

  1. Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.

    Capture d’écran du menu déroulant qui s’affiche lorsque vous cliquez sur la photo de profil sur GitHub Enterprise Server. L’option « Paramètres d’entreprise » est mise en évidence avec un contour orange foncé.

  2. Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.

  3. Sous «  Paramètres », cliquez sur Journal d’audit.

  4. Sous « Journal d’audit », cliquez sur Streaming de journaux.

  5. Sous « Zone de danger », cliquez sur Supprimer le flux.

  6. Un message de confirmation s’affiche. Cliquez sur Supprimer le flux pour confirmer.