Nota:
Los webhooks pueden ser una buena alternativa al registro de auditoría o al sondeo de API para determinados casos de uso. Los webhooks son una manera de que GitHub notifique al servidor cuándo se producen eventos específicos para un repositorio, una organización o una empresa. En comparación con la API o la búsqueda en el registro de auditoría, los webhooks pueden ser más eficaces si solo deseas descubrir (y, posiblemente, registrar) cuándo se producen determinados eventos en tu empresa, organización o repositorio. Consulta Documentación de webhooks.
Acerca de la transmisión de bitácoras de auditoría
Para ayudar a proteger la propiedad intelectual y mantener el cumplimiento de su compañía, puede usar streaming para conservar copias de los datos del registro de auditoría. El registro de auditoría detalla eventos como cambios en la configuración y el acceso, la pertenencia a usuarios, los permisos de la aplicación, etc. Consulta Eventos de registro de auditoría de la empresa, Eventos de registro de auditoría para tu organización, y Eventos de registro de seguridad.
Los datos del registro de auditoría de streaming tienen estas ventajas:
-
**Exploración de datos**. Examinar los eventos transmitidos utilizando su herramienta preferida para consultar cantidades grandes de datos. La transmisión contiene tanto los eventos de auditoría como los de Git a lo largo de toda la cuenta empresarial. -
**Retención de datos**. Mantener los registros de auditoría exportados y los datos de eventos de Git siempre que sea necesario.
Puede configurar o eliminar una secuencia en cualquier momento. El flujo exporta los datos de eventos de Git y auditoría para todas las organizaciones de la empresa, para la actividad desde el momento en que la secuencia está habilitada en adelante.
Todos los registros de auditoría transmitidos se envían como archivos JSON comprimidos. El formato de nombre de archivo está enYYYY/MM/HH/MM/<uuid>.json.gz.
Nota:
GitHub usa un método de entrega al menos una vez. Debido a ciertos problemas de red o sistema, es posible que algunos eventos se dupliquen.
La habilitación de la transmisión de registros de auditoría puede provocar un impacto menor en el rendimiento de tu instancia de GitHub Enterprise Server. Para obtener información sobre cómo aumentar los recursos para mitigar este impacto en el rendimiento, consulta Aumentar el CPU o los recursos de memoria.
Comprobaciones de mantenimiento de las secuencias de registros de auditoría
Cada 24 horas, se ejecuta una verificación de salud para cada flujo. Si un flujo está configurado incorrectamente, se enviará un correo electrónico a los propietarios de la compañía. Para evitar que los eventos de registro de auditoría se excluyan de la secuencia, se debe corregir una secuencia mal configurada en un plazo de seis días.
Para corregir la configuración de transmisión, sigue los pasos descritos en Configuración de la transmisión de registros de auditoría.
Configurar la transmisión de registros de auditoría
Para configurar el flujo de registro de auditoría, siga las instrucciones del proveedor:
-
[Amazon S3](#setting-up-streaming-to-amazon-s3) -
[Azure Blob Storage](#setting-up-streaming-to-azure-blob-storage) -
[Azure Event Hubs](#setting-up-streaming-to-azure-event-hubs) -
[Datadog](#setting-up-streaming-to-datadog) -
[Google Cloud Storage](#setting-up-streaming-to-google-cloud-storage) -
[Splunk](#setting-up-streaming-to-splunk)
Configurar la transmisión para Amazon S3
Nota:
La región us-east-1 de Amazon debe ser accesible desde el dispositivo para que el streaming a S3 funcione. El almacén S3 puede ubicarse en otras regiones de AWS.
Para configurar la transmisión de bitácora de auditoría desde GitHub, necesitarás:
- Tu ID de llave de acceso de AWS
- Tu llave de secreto de AWS
Para obtener información sobre cómo crear o acceder a su ID de clave de acceso y la clave secreta, vea Comprender y obtener las credenciales de AWS en la documentación de AWS.
Desde AWS:
-
Crea un cubo y bloquea el acceso público a él. Consulte Creación, configuración y trabajo con cubos de Amazon S3 en la documentación de AWS.
-
Crea una directiva que permita que GitHub escriba en el cubo. Copie el siguiente código JSON y reemplace
EXAMPLE-BUCKETpor el nombre del cubo. GitHub solo requiere los permisos en este código JSON.{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/*" } ] }Consulte Crear directivas de IAM en la documentación de AWS.
Desde GitHub:
-
En la esquina superior derecha de GitHub Enterprise Server, haz clic en la foto de perfil y luego en Enterprise settings.
-
En la parte superior de la página, haz clic en Settings.
-
En "Configuración", haz clic en Registro de auditoría.
-
En "Registro de auditoría", haz clic en Streaming de registros.
-
Selecciona el menú desplegable Configurar secuencia y haz clic en Amazon S3.
-
Configura la configuración de transmisión.
- En "Región", selecciona la región del bucket. Por ejemplo,
us-east-1. - En "Bucket", escribe el nombre del bucket al que quieres transmitir. Por ejemplo:
auditlog-streaming-test. - En "Id. de clave de acceso", escribe el identificador de la clave de acceso. Por ejemplo:
ABCAIOSFODNN7EXAMPLE1. - En "Clave secreta", escribe la clave secreta. Por ejemplo:
aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY.
- En "Región", selecciona la región del bucket. Por ejemplo,
-
Para comprobar que GitHub se puede conectar al punto de conexión de Amazon S3 y puede escribir en él, haz clic en Comprobar punto de conexión.
-
Después de comprobar correctamente el punto de conexión, haga clic en Save.
Integración con AWS CloudTrail Lake
Puede consolidar los registros de auditoría mediante la integración del streaming a S3 con AWS CloudTrail Lake. Consulte la documentación de AWS CloudTrail o el registro de auditoría de GitHub en CloudTrail Open Audit en el repositorio aws-samples/aws-cloudtrail-lake-github-audit-log.
Configuración del streaming en Azure Blob Storage
Nota:
No se admite la transmisión de registros de auditoría a Blob Storage en Azure Government.
Antes de configurar un flujo en GitHub, primero cree una cuenta de almacenamiento y un contenedor en Microsoft Azure. Consulte Introducción a Azure Blob Storage en la documentación de Microsoft.
Para configurar el flujo, necesita la dirección URL de un token de SAS.
En el Microsoft Azure portal:
- En la página principal, haga clic en Cuentas de almacenamiento.
- En "Nombre", haz clic en el nombre de la cuenta de almacenamiento que quieres usar.
- En "Almacenamiento de datos", haz clic en Contenedores.
- Haz clic en el nombre del contenedor que quieres utilizar.
- En la barra lateral izquierda, en "Configuración", haz clic en Tokens de acceso compartido.
- Selecciona el menú desplegable Permisos, selecciona
CreateyWrite, y anula la selección de todas las demás opciones. - Configura una fecha de vencimiento que cumpla con tu política de rotación de secretos.
- Haga clic en Generar URL y token de SAS.
- Copie el valor del campo URL de SAS de blob que se muestra. Utilizarás esta URL en GitHub.
En GitHub:
- En la esquina superior derecha de GitHub Enterprise Server, haz clic en la foto de perfil y luego en Enterprise settings.
- En la parte superior de la página, haz clic en Settings.
- En "Configuración", haz clic en Registro de auditoría.
- En "Registro de auditoría", haz clic en Streaming de registros.
- Seleccione el menú desplegable Configurar secuencia y haga clic en Azure Blob Storage.
- En la página de configuración, ingrese la URL SAS del blob que copió en Azure. El campo Contenedor se rellena automáticamente en función de la dirección URL.
- Haga clic en Check endpoint para comprobar que GitHub puede conectarse y escribir en el punto de conexión de Azure Blob Storage.
- Después de comprobar correctamente el punto de conexión, haga clic en Save.
Configuración del streaming en Azure Event Hubs
Nota:
No se admiten instancias de Event Hubs en Azure Government.
Para configurar la transmisión en GitHub, necesitarás:
- Un espacio de nombres del centro de eventos en Microsoft Azure
- Una instancia del centro de eventos en el espacio de nombres (consulte Quickstart: Creación de un centro de eventos mediante Azure portal en la documentación de Microsoft).
En el Microsoft Azure portal:
- En la parte superior de la página, use el cuadro de búsqueda para buscar "Event Hubs".
- Seleccione Centro de eventos. Se enumeran los nombres de tus hubs de eventos.
- Anota el nombre del centro de eventos al que quieras realizar la transmisión. Haz clic en el centro de eventos.
- En el menú izquierdo, haz clic en Directivas de acceso compartido.
- Selecciona una directiva de acceso compartido de la lista de directivas o crea una nueva.
- Copie la cadena de conexión del campo Connection string-primary key.
En GitHub:
- En la esquina superior derecha de GitHub Enterprise Server, haz clic en la foto de perfil y luego en Enterprise settings.
- En la parte superior de la página, haz clic en Settings.
- En "Configuración", haz clic en Registro de auditoría.
- En "Registro de auditoría", haz clic en Streaming de registros.
- Seleccione el desplegable Configurar flujo y haga clic en Azure Event Hubs.
- En la página de configuración, ingresa:
- Nombre de la instancia de Azure Event Hubs.
- La cadena de conexión.
- Haga clic en Check endpoint para comprobar que GitHub puede conectarse y escribir en el punto de conexión del centro de eventos de Azure.
- Después de comprobar correctamente el punto de conexión, haga clic en Save.
Configuración de la transmisión a Datadog
Para configurar la transmisión a Datadog, debes crear un token de cliente o una clave de API en Datadog y, a continuación, configurar la transmisión de registros de auditoría en GitHub mediante el token para la autenticación. No es necesario crear un cubo u otro contenedor de almacenamiento en Datadog.
Después de configurar el streaming en Datadog, puedes ver los datos del registro de auditoría filtrando por "github.audit.streaming". Consulte Administración de registros.
- Si aún no tienes una cuenta de Datadog, crea una.
- En Datadog, genera un token de cliente o una clave de API y, luego, haz clic en Copiar clave. Consulte API y claves de aplicación en Datadog Docs.
- En la esquina superior derecha de GitHub Enterprise Server, haz clic en la foto de perfil y luego en Enterprise settings.
- En la parte superior de la página, haz clic en Settings.
- En "Configuración", haz clic en Registro de auditoría.
- En "Registro de auditoría", haz clic en Streaming de registros.
- Seleccione el menú desplegable Configurar secuencia y haga clic en Datadog.
- En el campo Token, pega el token que copiaste anteriormente.
- Seleccione el menú desplegable Sitio y haga clic en el sitio de Datadog. Para determinar su sitio, compare su dirección URL de Datadog con la tabla de sitios de Datadog en Datadog Docs.
- Para comprobar que GitHub se puede conectar al punto de conexión de Datadog y puedes escribir en él, haz clic en Comprobar punto de conexión.
- Después de comprobar correctamente el punto de conexión, haga clic en Save.
- Después de unos minutos, confirme que los datos del registro de auditoría aparecen en la pestaña Registros de Datadog. Si no aparecen, confirme que el token y el sitio son correctos en GitHub.
Configurar la transmisión para Google Cloud Storage
Para configurar la transmisión al Almacenamiento de Google Cloud, crea una cuenta de servicio en Google Cloud con las credenciales y permisos adecuados y luego configura la transmisión de registros de auditoría en GitHub utilizando las credenciales de la cuenta de servicio para la autenticación.
-
Crea una cuenta de servicio de Google Cloud. No necesita configurar controles de acceso o roles de IAM para esta cuenta de servicio. Consulte Crear y administrar cuentas de servicio en la documentación de Google Cloud.
-
Crear una llave de JSON para la cuenta de servicio y almacenarla de forma segura. Consulte Crear y administrar claves de cuentas de servicio en la documentación de Google Cloud.
-
Si aún no lo ha hecho, cree un depósito. Consulte Crear cubos de almacenamiento en la documentación de Google Cloud.
-
Dale a la cuenta de servicio el rol de Creador de Objetos de Almacenamiento para el bucket. Consulte Usar permisos de Cloud IAM en la documentación de Google Cloud.
-
En la esquina superior derecha de GitHub Enterprise Server, haz clic en la foto de perfil y luego en Enterprise settings.
-
En la parte superior de la página, haz clic en Settings.
-
En "Configuración", haz clic en Registro de auditoría.
-
En "Registro de auditoría", haz clic en Streaming de registros.
-
Seleccione el menú desplegable Configurar transmisión y haga clic en Google Cloud Storage.
-
Debajo de "Bucket", teclea el nombre de tu bucket de Google Cloud Storage.
-
Debajo de "Credenciales de JSON", pegue todo el contenido del archivo de clave JSON de la cuenta de servicio.
-
Para comprobar que GitHub puede conectarse y escribir en el cubo de Google Cloud Storage, haga clic en Check endpoint (Comprobar punto de conexión).
-
Después de comprobar correctamente el punto de conexión, haga clic en Save.
Configurar la transmisión a Splunk
Para transmitir registros de auditoría al punto de conexión del Recopilador de Eventos HTTP (HEC) de Splunk, asegúrese de que el punto de conexión se configure para aceptar conexiones HTTPS. Consulte Configuración y uso del recopilador de eventos HTTP en Splunk Web en la documentación de Splunk.
Nota:
GitHub valida el punto de conexión HEC a través de <Domain>:port/services/collector. Si está autoalojando el punto de conexión (por ejemplo, con el Receptor HEC de Splunk a través de OpenTelemetry), asegúrese de que sea accesible en este destino.
-
En la esquina superior derecha de GitHub Enterprise Server, haz clic en la foto de perfil y luego en Enterprise settings.
-
En la parte superior de la página, haz clic en Settings.
-
En "Configuración", haz clic en Registro de auditoría.
-
En "Registro de auditoría", haz clic en Streaming de registros.
-
Seleccione la lista desplegable Configurar transmisión y haga clic en Splunk.
-
En la página de configuración, ingresa:
-
El dominio en el cual se hospeda la aplicación que quiere transmitir.
Si usas Splunk Cloud,
Domaindebe serhttp-inputs-<host>, dondehostes el dominio que usas en Splunk Cloud. Por ejemplo:http-inputs-mycompany.splunkcloud.com.Si usas la versión de prueba de Splunk Cloud,
Domaindebe serinputs.<host>, dondehostes el dominio que usas en Splunk Cloud. Por ejemplo:inputs.mycompany.splunkcloud.com. -
El puerto mediante el cual la aplicación acepta datos.
Si usa Splunk Cloud,
Portdebe ser443.Si usas la versión de evaluación gratuita de Splunk Cloud,
Portdebe ser8088. -
Un token que pueda utilizar GitHub para autenticarse a la aplicación de terceros.
-
-
Deje activada la casilla Enable SSL verification (Habilitar comprobación SSL).
Las bitácoras de auditoría siempre se transmiten como datos cifrados, sin embargo, si seleccionas esta opción, GitHub verificará el certificado SSL de tu instancia de Splunk cuando entregue eventos. La verificación por SSL te ayuda a garantizar que los eventos se entreguen a tu terminal URL con seguridad. La comprobación es opcional, pero se recomienda dejar habilitada la comprobación SSL.
-
Haga clic en Check endpoint (Comprobar punto de conexión) para comprobar que GitHub puede conectarse y escribir en el punto de conexión de Splunk.
-
Después de comprobar correctamente el punto de conexión, haga clic en Save.
Borrar el flujo de registros de auditoría
- En la esquina superior derecha de GitHub Enterprise Server, haz clic en la foto de perfil y luego en Enterprise settings.
- En la parte superior de la página, haz clic en Settings.
- En "Configuración", haz clic en Registro de auditoría.
- En "Registro de auditoría", haz clic en Streaming de registros.
- En "Zona de peligro", haz clic en Eliminar transmisión.
- Se muestra un mensaje de confirmación. Haga clic en Delete stream (Eliminar secuencia) para confirmar.