Remarques :
- Le streaming de journaux d’audit est actuellement en version bêta pour GitHub Enterprise Server et est susceptible d’être modifié.
- 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
Pour protéger votre propriété intellectuelle et assurer la conformité de votre entreprise, vous pouvez utiliser le streaming pour conserver des copies des données de vos données de journaux 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. Si vous activez le streaming pour les données des journaux d’audit, vous pouvez bénéficier des avantages suivants.
- Exploration des données. Vous pouvez examiner 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. Vous pouvez conserver les données exportées des journaux d’audit et des événements Git tant que vous en avez besoin.
Les propriétaires d’entreprise peuvent 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
.
Remarque : 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 de prévenir cet impact sur les performances, consultez «Augmentation des ressources processeur ou mémoire ».
Événements qui apparaissent dans les flux de journaux d’audit
Vous pouvez consulter les événements spécifiques qui apparaissent dans les journaux d’audit diffusés en continu. Pour plus d'informations, consultez les articles suivants.
- « Événements du journal d’audit pour votre entreprise »
- « Événements du journal d’audit pour votre organisation »
- « Événements du journal de sécurité »
Configuration du streaming de journaux d’audit
Vous configurez le flux de journaux d’audit sur GitHub Enterprise Server en suivant les instructions de votre fournisseur.
Configuration du streaming vers Amazon S3
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.
-
Dans AWS, créez un compartiment et bloquez l’accès public au compartiment. Pour plus d’informations, consultez Création, configuration et utilisation des compartiments Amazon S3 dans la documentation AWS.
-
Dans AWS, créez une stratégie qui permet à GitHub d’écrire dans le compartiment en copiant le code JSON suivant et en remplaçant
EXAMPLE-BUCKET
par le nom de votre compartiment. 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/*" } ] }
Pour plus d’informations, consultez Création de stratégies de gestion des identités et des accès dans la documentation AWS.
-
Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.
-
Dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.
-
Sous « Paramètres », cliquez sur Journal d’audit.
-
Sous « Journal d’audit », cliquez sur Streaming de journaux.
-
Sélectionnez le menu déroulant Configurer le flux, puis cliquez sur Amazon S3.
-
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
.
- Sous « Compartiment », entrez le nom du compartiment destinataire du streaming. Par exemple :
-
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.
-
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 de GitHub Enterprise Server avec les journaux d’activité AWS en intégrant le streaming de journaux d’audit vers S3 à AWS CloudTrail Lake. Pour plus d’informations, consultez 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, vous devez créer un compte de stockage et un conteneur dans Microsoft Azure. Pour plus d’informations, consultez la documentation Microsoft « Présentation du Stockage Blob Azure ».
Pour configurer le flux dans GitHub, vous avez besoin de l’URL d’un jeton SAS.
Dans le portail Microsoft Azure :
- Sur la page d’accueil, cliquez sur Comptes de stockage.
- Sous « Nom », cliquez sur le nom du compte de stockage que vous souhaitez utiliser.
- Sous « Stockage de données », cliquez sur Conteneurs.
- Cliquez sur le nom du conteneur à utiliser.
- Dans la barre latérale gauche, sous « Paramètres », cliquez sur Jetons d’accès partagé.
- Sélectionnez le menu déroulant Autorisations, puis sélectionnez
Create
etWrite
et désélectionnez toutes les autres options. - Définissez une date d’expiration conforme à votre stratégie de rotation de secret.
- Cliquez sur Générer une URL et un jeton SAS.
- Copiez la valeur du champ URL SAP d’objet blob. Vous utiliserez cette URL dans GitHub.
Dans GitHub :
-
Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.
-
Dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.
-
Sous « Paramètres », cliquez sur Journal d’audit.
-
Sous « Journal d’audit », cliquez sur Streaming de journaux.
-
Sélectionnez le menu déroulant Configurer le flux, puis cliquez sur Stockage Blob Azure.
-
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.
-
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.
-
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, vous devez créer 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. Pour plus d’informations, consultez la documentation Microsoft « Démarrage rapide : Créer un hub d’événements avec le portail Azure ».
Vous avez besoin de deux informations sur votre hub d’événements : son nom d’instance et la chaîne de connexion.
Dans le portail Microsoft Azure :
- En haut de la page, en regard de « Microsoft Azure », utilisez le champ de recherche pour rechercher « Event Hubs ».
- Sélectionnez Event Hubs. Les noms de vos hubs d’événements sont listés.
- Notez le nom du hub d’événements auquel le streaming est destiné. Cliquez sur le hub d’événements.
- Dans le menu de gauche, cliquez sur Stratégies d’accès partagé.
- Sélectionnez une stratégie d’accès partagé dans la liste des stratégies ou créez-en une.
- Copiez la chaîne de connexion à partir du champ Clé primaire de la chaîne de connexion.
Dans GitHub :
-
Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.
-
Dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.
-
Sous « Paramètres », cliquez sur Journal d’audit.
-
Sous « Journal d’audit », cliquez sur Streaming de journaux.
-
Sélectionnez le menu déroulant Configurer le flux, puis cliquez sur Azure Event Hubs.
-
Sur la page de configuration, entrez :
- Le nom de l’instance Azure Event Hubs
- Chaîne de connexion
-
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.
-
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, vous devez créer 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 ». Pour plus d’informations, consultez « Gestion des journaux ».
-
Si vous ne disposez pas encore d’un compte Datadog, créez-en un.
-
Dans Datadog, générez un jeton client ou une clé API, puis cliquez sur Copier la clé. Pour plus d’informations, consultez Clés API et clés d’application dans la documentation Datadog.
-
Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.
-
Dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.
-
Sous « Paramètres », cliquez sur Journal d’audit.
-
Sous « Journal d’audit », cliquez sur Streaming de journaux.
-
Sélectionnez le menu déroulant Configurer le flux, puis cliquez sur Datadog.
-
Dans le champ Jeton, collez le jeton que vous avez copié précédemment.
-
Sélectionnez le menu déroulant Site, puis cliquez sur votre site Datadog. Pour déterminer votre site Datadog, comparez votre URL Datadog avec la table dans la documentation Datadog Sites Datadog.
-
Pour vérifier que GitHub peut se connecter au point de terminaison Datadog et écrire dessus, cliquez sur Vérifier le point de terminaison.
-
Une fois que vous avez vérifié le point de terminaison, cliquez sur Enregistrer.
-
Après quelques minutes, vérifiez que les données du journal d’audit apparaissent sous l’onglet Journaux dans Datadog. Si les données du journal d’audit n’apparaissent 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, vous devez créer 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.
-
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 le compte de service. Pour plus d’informations, consultez Créer et gérer des comptes de service dans la documentation Google Cloud.
-
Créez une clé JSON pour le compte de service et stockez-la clé de manière sécurisée. Pour plus d’informations, consultez Créer et gérer les clés de comptes de service dans la documentation Google Cloud.
-
Créez le compartiment si ce n’est déjà fait. Pour plus d’informations, consultez Créer des buckets de stockage dans la documentation Google Cloud.
-
Attribuez au compte de service le rôle Créateur des objets de l’espace de stockage pour le compartiment. Pour plus d’informations, consultez Utiliser des autorisations IAM dans la documentation Google Cloud.
-
Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.
-
Dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.
-
Sous « Paramètres », cliquez sur Journal d’audit.
-
Sous « Journal d’audit », cliquez sur Streaming de journaux.
-
Sélectionnez le menu déroulant Configurer le flux, puis cliquez sur Google Cloud Storage.
-
Sous « Compartiment », tapez le nom de votre compartiment Google Cloud Storage.
-
Sous « Informations d’identification JSON », collez tout le contenu du fichier pour la clé JSON de votre compte de service.
-
Pour vérifier que GitHub peut se connecter au compartiment Google Cloud Storage et écrire dessus, cliquez sur Vérifier le point de terminaison.
-
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, vous devez vérifier que le point de terminaison est configuré pour accepter les connexions HTTPS. Pour plus d’informations, consultez Set up and use HTTP Event Collector in Splunk Web (Configurer et utiliser le collecteur d’événements HTTP) dans la documentation Splunk.
Remarque : GitHub valide le point de terminaison HEC via <Domain>:port/services/collector
. Si vous hébergez vous-même le point de terminaison HEC (par exemple, avec Splunk HEC Receiver via OpenTelemetry), assurez-vous que le point de terminaison est accessible à cette destination.
-
Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.
-
Dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.
-
Sous « Paramètres », cliquez sur Journal d’audit.
-
Sous « Journal d’audit », cliquez sur Streaming de journaux.
-
Sélectionnez le menu déroulant Configurer le flux, puis cliquez sur Splunk.
-
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 êtrehttp-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 êtreinputs.<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 et que vous n’avez pas modifié la configuration de port,
Port
doit être443
.Si vous utilisez la version d’essai gratuite de Splunk Cloud,
Port
doit être8088
. -
Un jeton que GitHub peut utiliser pour s’authentifier auprès de l’application tierce.
-
-
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. Vous pouvez désactiver cette case, mais nous recommandons de garder la vérification SSL activée.
-
Cliquez sur Vérifier le point de terminaison pour vérifier que GitHub peut se connecter au point de terminaison Splunk et écrire dessus.
-
Une fois que vous avez vérifié le point de terminaison, cliquez sur Enregistrer.
Suppression du flux de journaux d’audit
-
Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.
-
Dans la barre latérale du compte d’entreprise, cliquez sur Paramètres.
-
Sous « Paramètres », cliquez sur Journal d’audit.
-
Sous « Journal d’audit », cliquez sur Streaming de journaux.
-
Sous « Zone de danger », cliquez sur Supprimer le flux.
-
Un message de confirmation s’affiche. Cliquez sur Supprimer le flux pour confirmer.