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. -
**Continuidad de los datos**. Al pausar una secuencia, conserva un búfer durante siete días, por lo que no hay ninguna pérdida de datos durante la primera semana. Si la secuencia permanece en pausa durante más de siete días, se reanudará desde un punto una semana antes de la hora actual. Si se pausa durante tres semanas o más, la secuencia no conservará ningún dato y se iniciará de nuevo desde la marca de tiempo actual. -
**Retención de datos**. Mantener los registros de auditoría exportados y los datos de eventos de Git siempre que sea necesario.
Puede configurar, poner en pausa 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.
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)
Nota:
Para obtener una lista de intervalos de direcciones IP que GitHub usa para las conexiones al punto de conexión de Streaming, puede usar la API REST. El punto de conexión meta de GitHub.com incluye una clave hooks con una lista de las direcciones IP. Consulta Puntos de conexión de la API de REST para metadatos.
Transmisión a múltiples puntos de conexión
Nota:
Esta función está actualmente en versión preliminar pública y está sujeta a cambios.
Puedes transmitir registros de auditoría a varios puntos de conexión. Por ejemplo, puedes transmitir tu registro de auditoría a dos puntos de conexión del mismo tipo, o bien transmitirlo a dos proveedores distintos. Para configurar varias secuencias, siga las instrucciones de cada proveedor.
Configurar la transmisión para Amazon S3
Puedes configurar la transmisión a S3 con claves de acceso o bien, para evitar almacenar secretos de larga duración en GitHub, con OpenID Connect (OIDC).
-
[Configuración de la transmisión a S3 con claves de acceso](#setting-up-streaming-to-s3-with-access-keys) -
[Configuración de la transmisión a S3 con OpenID Connect](#setting-up-streaming-to-s3-with-openid-connect) -
[Deshabilitación de la transmisión a S3 con OpenID Connect](#disabling-streaming-to-s3-with-openid-connect) -
[Integración con AWS CloudTrail Lake](#integrating-with-aws-cloudtrail-lake)
Configuración de la transmisión a S3 con claves de acceso
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:
-
Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
-
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.
-
En "Autenticación", haz clic en Claves de acceso.
-
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.
Configuración de la transmisión a S3 con OpenID Connect
Nota:
La transmisión de registros de auditoría a S3 con OpenID Connect para Nube de GitHub Enterprise con residencia de datos no se encuentra disponible actualmente. Consulta Información general sobre las características de GitHub Enterprise Cloud con residencia de datos.
Desde AWS:
-
Agregue el proveedor OIDC de GitHub a IAM. Consulte Creación de proveedores de identidades de OpenID Connect (OIDC) en la documentación de AWS.
- Para la dirección URL del proveedor, usa
https://oidc-configuration.audit-log.githubusercontent.com. - Para "Audiencia", utiliza
sts.amazonaws.com.
- Para la dirección URL del proveedor, usa
-
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.
-
Configure el rol y la política de confianza para el IdP de GitHub. Consulte Creación de un rol para identidades federadas web u OpenID Connect (consola) en la documentación de AWS.
-
Agregue la directiva de permisos que creó anteriormente para permitir operaciones de escritura en el cubo.
-
Edita la relación de confianza para agregar el campo
suba las condiciones de validación. ReemplazaENTERPRISEpor el nombre de la empresa.Nota:
El valor
ENTERPRISEno distingue mayúsculas de minúsculas. Si el nombre de tu entidad contiene letras mayúsculas, usa el mismo formato en la política de confianza."Condition": { "StringEquals": { "oidc-configuration.audit-log.githubusercontent.com:aud": "sts.amazonaws.com", "oidc-configuration.audit-log.githubusercontent.com:sub": "https://github.com/ENTERPRISE" } } -
Anota el nombre de recurso de Amazon (ARN) del rol creado.
-
Desde GitHub:
-
Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
-
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. 1. Selecciona el menú desplegable Configurar secuencia y haz clic en Amazon S3.
-
En "Autenticación", haz clic en OpenID Connect.
-
Configura la configuración de transmisión.
- En "Región", selecciona la región del bucket. Por ejemplo,
us-east-1; también hay disponible una opción para detección automática. - En "Bucket", escribe el nombre del bucket al que quieres transmitir. Por ejemplo:
auditlog-streaming-test. - En "función ARN", escribe la función ARN que anotaste anteriormente. Por ejemplo:
arn:aws::iam::1234567890:role/github-audit-log-streaming-role.
- 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.
Deshabilitación de la transmisión a S3 con OpenID Connect
Para deshabilitar la transmisión a S3 con OIDC, elimine el proveedor de OIDC GitHub que creó en AWS al configurar la transmisión. Consulte Creación de proveedores de identidades de OpenID Connect (OIDC) en la documentación de AWS.
Si deshabilita el streaming debido a una vulnerabilidad de seguridad en OIDC, después de eliminar el proveedor, configure el streaming con claves de acceso hasta que se resuelva la vulnerabilidad. Consulte Configurando la transmisión a S3 con claves de acceso.
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:
- Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
- 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:
- Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
- 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.
- Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
- 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.
-
Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
-
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.
-
Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
-
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.
Pausar la transmisión de bitácoras de auditoría
El pausar la transmisión le permite realizar el mantenimiento de la aplicación receptora sin perder datos de auditoría. Los registros de auditoría se almacenan durante un máximo de siete días en GitHub y luego se exportan cuando deja de pausar la transmisión.
Datadog solo acepta registros de hasta 18 horas en el pasado. Si pausas una secuencia en un punto de conexión de Datadog durante más de 18 horas, corres el riesgo de perder los registros que Datadog no aceptará después de reanudar la transmisión.
- Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
- 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.
- A la derecha de la transmisión configurada, haz clic en Pausar transmisión.
- Se muestra un mensaje de confirmación. Haga clic en Pause stream (Pausar secuencia) para confirmar.
Para reiniciar el streaming, haga clic en Reanudar secuencia.
Borrar el flujo de registros de auditoría
- Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
- 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.
Habilitación de la transmisión de registros de auditoría de solicitudes de API
Nota:
No todas las solicitudes de API se incluyen en la secuencia de registro de auditoría después de habilitar esta característica. El streaming de solicitudes de API se limita a los puntos de conexión pertinentes de seguridad.
- Vaya a su empresa. Por ejemplo, desde la página Empresas en GitHub.com.
- 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 Configuración.
- En "Solicitudes de API", selecciona Habilitar eventos de solicitud de API.
- Haz clic en Guardar.