Skip to main content

Streaming the audit log for your enterprise

Puedes trasmitir datos de eventos de Git y de auditorías desde GitHub hacia un sistema externo de administración de datos.

Enterprise owners can configure audit log streaming.

Acerca de la transmisión de bitácoras de auditoría

Para ayudarte a proteger tu propiedad intelectual y mantener el cumplimiento en tu organización, puedes utilizar la transmisión para mantener copias de tus datos de bitácoras de auditoría y monitorear:

  • El acceso a los parámetros de tu organización o repositorio
  • Los cambios en los permisos
  • Los usuarios agregados o eliminados en una organización, repositorio o equipo
  • Los usuarios que se están promoviendo a administradores
  • Cambios a los permisos de una GitHub App
  • Eventos de Git, tales como clonar, recuperar y subir

Los beneficios de transmitir datos de auditoría incluyen:

  • Exploración de datos. Puedes examinar los eventos transmitidos utilizando tu 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 datos. Puedes pausar la transmisión por hasta siete días sin perder datos de auditoría.
  • Retención de datos. You can keep your exported audit logs and Git events data as long as you need to.

Los propietrios de empresas pueden configurar, pausar o borrar una transmisión en cualquier momento. La transmisión exporta los datos de auditoría de todas las organizaciones en tu empresa.

Configurar la transmisión de bitácoras de auditoría

Puedes configurar la transmisión de bitácoras de auditoría en GitHub Enterprise Cloud si sigues las instrucciones para tu proveedor.

Configurar la transmisión para Amazon S3

You can set up streaming to S3 with access keys or, to avoid storing long-lived secrets in GitHub Enterprise Cloud, with OpenID Connect (OIDC).

Setting up streaming to S3 with access keys

Para transmitir bitácoras de auditoría a la terminal de Amazon S3, debes tener un bucket y llaves de acceso. Para obtener más información, consulta la sección Crear, configurar y trabajar con los buckets de Amazon S3 en la documentación de AWS. Asegúrate de bloquear el acceso público al bucket para proteger la información de tu bitácora de auditoría.

Para configurar la transmisión de bitácora de auditoría desde GitHub, necesitarás:

  • El nombrede tu bucket de Amazon S3
  • Tu ID de llave de acceso de AWS
  • Tu llave de secreto de AWS

Para obtener más información sobre cómo crear o acceder a tu ID de llave de acceso y llave de secreto, consulta la sección Entender y obtener tus credenciales de AWS en la documentación de AWS.

  1. En la esquina superior derecha de GitHub.com, da clic en tu foto de perfil y luego en Tus empresas. "Tus empresas" en el menú desplegable de la foto de perfil en GitHub Enterprise Cloud

  2. En la lista de empresas, da clic en aquella que quieras ver. Nombre de una empresa en la lista de tus empresas

  3. En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones). Pestaña Settings (Configuraciones) en la barra lateral de la cuenta de empresa

  4. Dentro de " Parámetros de ", haz clic en Audit log (Registro de auditoría). Pestaña de registro de auditoría en la barra lateral de la cuenta de empresa

  5. Under "Audit log", click Log streaming.

  6. Select the Configure stream dropdown and click Amazon S3.

    Elige Amazon S3 del menú desplegable

  7. Under "Authentication", click Access keys.

    Screenshot of the authentication options for streaming to Amazon S3

  8. Configure the stream settings.

    • Under "Bucket", type the name of the bucket you want to stream to. Por ejemplo, auditlog-streaming-test.
    • Under "Access Key ID", type your access key ID. Por ejemplo, ABCAIOSFODNN7EXAMPLE1.
    • Under "Secret Key", type your secret key. Por ejemplo, aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY.
  9. To verify that GitHub can connect and write to the Amazon S3 endpoint, click Check endpoint.

    Verificar la terminal

  10. Después de que hayas verificado la terminal con éxito, haz clic en Guardar.

Setting up streaming to S3 with OpenID Connect

  1. In AWS, add the GitHub OIDC provider to IAM. For more information, see Creating OpenID Connect (OIDC) identity providers in the AWS documentation.

    • For the provider URL, use https://oidc-configuration.audit-log.githubusercontent.com.
    • For "Audience", use sts.amazonaws.com.
  2. Create a bucket, and block public access to the bucket. For more information, see Creating, configuring, and working with Amazon S3 buckets in the AWS documentation.

  3. Create a policy that allows GitHub to write to the bucket. GitHub requires only the following permissions.

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

    For more information, see Creating IAM policies in the AWS documentation.

  4. Configure the role and trust policy for the GitHub IdP. For more information, see Creating a role for web identity or OpenID Connect Federation (console) in the AWS documentation.

    • Add the permissions policy you created above to allow writes to the bucket.
    • Edit the trust relationship to add the sub field to the validation conditions, replacing ENTERPRISE with the name of your enterprise.
      "Condition": {
         "StringEquals": {
            "oidc-configuration.audit-log.githubusercontent.com:aud": "sts.amazonaws.com",
            "oidc-configuration.audit-log.githubusercontent.com:sub": "https://github.com/ENTERPRISE"
          }
       }
      
    • Make note of the Amazon Resource Name (ARN) of the created role.
  5. En la esquina superior derecha de GitHub.com, da clic en tu foto de perfil y luego en Tus empresas. "Tus empresas" en el menú desplegable de la foto de perfil en GitHub Enterprise Cloud

  6. En la lista de empresas, da clic en aquella que quieras ver. Nombre de una empresa en la lista de tus empresas

  7. En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones). Pestaña Settings (Configuraciones) en la barra lateral de la cuenta de empresa

  8. Dentro de " Parámetros de ", haz clic en Audit log (Registro de auditoría). Pestaña de registro de auditoría en la barra lateral de la cuenta de empresa

  9. Under "Audit log", click Log streaming.

  10. Select the Configure stream dropdown and click Amazon S3.

    Elige Amazon S3 del menú desplegable

  11. Under "Authentication", click OpenID Connect.

    Screenshot of the authentication options for streaming to Amazon S3

  12. Configure the stream settings.

    • Under "Bucket", type the name of the bucket you want to stream to. Por ejemplo, auditlog-streaming-test.
    • Under "ARN Role" type the ARN role you noted earlier. For example, arn:aws::iam::1234567890:role/github-audit-log-streaming-role.
  13. To verify that GitHub can connect and write to the Amazon S3 endpoint, click Check endpoint.

    Verificar la terminal

  14. Después de que hayas verificado la terminal con éxito, haz clic en Guardar.

Configurar la transmisión hacia Azure Blob Storage

Antes de configurar una transmisión en GitHub, primero debes haber creado una cuenta de almacenamiento y un contenedor en Microsoft Azure. Para obtener más detalles, consulta la sección de "Introducción a Azure Blob Storage" em la documentación de Microsoft.

Para configurar la transmisión en GitHub, necesitarás la URL de un token SAS.

En el portal de Microsoft Azure:

  1. En la página principal, haz clic en Cuentas de almacenamiento.

  2. Haz clic en el nombre de la cuenta de almacenamiento que quieras utilizar y luego en Contenedores.

    El enlace de contenedores en Azure

  3. Haz clic en el nombre del contenedor que quieres utilizar.

  4. Haz clic en Tokens de acceso compartidos.

    El enlace de token de acceso compartido en Azure

  5. En el menú desplegable de Permisos, cambia los permisos para solo permitir Create y Write.

    El menú desplegable de permisos

  6. Configura una fecha de vencimiento que cumpla con tu política de rotación de secretos.

  7. Haz clic en Generar un token SAS y URL.

  8. Copia el valor del campo Blob SAS URL que se muestra. Utilizarás esta URL en GitHub.

En GitHub:

  1. En la esquina superior derecha de GitHub.com, da clic en tu foto de perfil y luego en Tus empresas. "Tus empresas" en el menú desplegable de la foto de perfil en GitHub Enterprise Cloud

  2. En la lista de empresas, da clic en aquella que quieras ver. Nombre de una empresa en la lista de tus empresas

  3. En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones). Pestaña Settings (Configuraciones) en la barra lateral de la cuenta de empresa

  4. Dentro de " Parámetros de ", haz clic en Audit log (Registro de auditoría). Pestaña de registro de auditoría en la barra lateral de la cuenta de empresa

  5. Under "Audit log", click Log streaming.

  6. Haz clic en Configurar transmisión y selecciona Azure Blob Storage.

    Elige Azure Blob Storage en el menú desplegable

  7. En la página de configuración, ingresa la URL de SAS del blob que copiaste en Azure. El campo Contenedor se llena automáticamente con base en la URL.

    Ingresar la configuración de transmisión

  8. Haz clic en Verificar terminal para verificar que GitHub pueda conectarse a la terminal de Azure Blob Storage.

    Verificar la terminal

  9. Después de que hayas verificado la terminal con éxito, haz clic en Guardar.

Configurar la transmisión hacia Azure Event Hubs

Antes de configurar una transmisión en GitHub, primero debes tener un espacio designador de nombre para concentradores de eventos en Microsoft Azure. Posteriormente, debes crear una instancia de concentrador de eventos dentro del designador de nombre. Necesitarás los detalles de esta instancia de concentrador de eventos cuando configures la transmisión. Para encontrar los detalles, consulta la documentación de Microsoft, en la aprte de "Inicio rápido: Crear un concentrador de eventos utilizando el portal de Azure".

Necesitas dos partes de información sobre tu concentrador de eventos: su nombre de instancia y la secuencia de conexión.

En el portal de Microsoft Azure:

  1. Busca "Event Hubs".

    La caja de búsqueda del portal de Azure

  2. Selecciona Event Hubs. Se listarán los nombres de tus concentradores de eventos.

    Una lista de concentradores de eventos

  3. Haz una nota del nombre del concentrador de eventos al cual quieras transmitir.

  4. Haz clic en el concentrador de eventos requerido. Posteriormente, en el menú de la izquierda, selecciona Políticas de Acceso Compartido.

  5. Selecciona las políticas de acceso compartido de la lista de políticas o crea una nueva.

    Una lista de políticas de acceso compartidas

  6. Haz clic en el botón a la derecha del campo Secuencia de conexión-llave primaria para copiar la secuencia de conexión.

    La secuencia de conexión del concentrador de eventos

En GitHub:

  1. En la esquina superior derecha de GitHub.com, da clic en tu foto de perfil y luego en Tus empresas. "Tus empresas" en el menú desplegable de la foto de perfil en GitHub Enterprise Cloud

  2. En la lista de empresas, da clic en aquella que quieras ver. Nombre de una empresa en la lista de tus empresas

  3. En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones). Pestaña Settings (Configuraciones) en la barra lateral de la cuenta de empresa

  4. Dentro de " Parámetros de ", haz clic en Audit log (Registro de auditoría). Pestaña de registro de auditoría en la barra lateral de la cuenta de empresa

  5. Under "Audit log", click Log streaming.

  6. Haz clic en Configurar transmisión y selecciona Azure Event Hubs.

    Elige Azure Events hub del menú desplegable

  7. En la página de configuración, ingresa:

    • El nombre de la instancia de Azure Event Hubs.
    • La secuencia de conexión.

    Ingresar la configuración de transmisión

  8. Haz clic en Verificar terminal para verificar que GitHub puede conectarse y escribir en la terminal de Azure Events Hub.

    Verificar la terminal

  9. Después de que hayas verificado la terminal con éxito, haz clic en Guardar.

Configurar la transmisión para Google Cloud Storage

Para configurar la transmisión al Almacenamiento de Google Cloud, debes crear una cuenta de servicio en Google Cloud con las credenciales y permisos adecuados y luego configurar la transmisión de bitácoras de auditoría en GitHub Enterprise Cloud utilizando las credenciales de la cuenta de servicio para la autenticación.

  1. Crea una cuenta de servicio de Google Cloud. No necesitas configurar controles de acceso o roles de IAM para la cuenta de servicio. Para obtener más información, consulta la sección Crear y administrar cuentas de servicio en la documentación de Google Cloud.

  2. Crear una llave de JSON para la cuenta de servicio y almacenarla de forma segura. Para obtener más información, consulta la sección Crear y administrar llaves de cuenta de servicio en la documentación de Google Cloud.

  3. Si aún no has creado un bucket, házlo ahora. Para obtener más información, consulta la sección Crear buckets de almacenamiento en la documentación de Google Cloud.

  4. Dale a la cuenta de servicio el el rol de Credor de Objetos de Almacenamiento para el bucket. Para obtener más información, consulta la sección Utilizar los permisos de Cloud IAM en la documentación de Google Cloud.

  5. En la esquina superior derecha de GitHub.com, da clic en tu foto de perfil y luego en Tus empresas. "Tus empresas" en el menú desplegable de la foto de perfil en GitHub Enterprise Cloud

  6. En la lista de empresas, da clic en aquella que quieras ver. Nombre de una empresa en la lista de tus empresas

  7. En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones). Pestaña Settings (Configuraciones) en la barra lateral de la cuenta de empresa

  8. Dentro de " Parámetros de ", haz clic en Audit log (Registro de auditoría). Pestaña de registro de auditoría en la barra lateral de la cuenta de empresa

  9. Under "Audit log", click Log streaming.

  10. Selecciona el menú desplegable de configurar transmisión y haz clic en Google Cloud Storage.

    Captura de pantalla del menú desplegable de "Configurar transmisión"

  11. Debajo de "Bucket", teclea el nombre de tu bucket de Google Cloud Storage.

    Caputra de pantalla del campo de texto de "Bucket"

  12. Debajo de "Credenciales de JSON", pega todo el contenido del archivo para tu llave JSON de la cuenta de servicio.

    Captura de pantalla del campo de texto de "Credenciales de JSON"

  13. Para verificar que GitHub pueda conectarse y escribir en el bucket de Google Cloud Storage, haz clic en Verificar terminal.

    Captura de pantalla del botón "Verificar terminal"

  14. Después de que hayas verificado la terminal con éxito, haz clic en Guardar.

Configurar la transmisión a Splunk

Para transmitir bitácoras de auditoría a la terminal del Recolector de Eventos HTTP (HEC) de Splunk, debes asegurarte de que la terminal se configure para aceptar conexiones HTTPS. Para obtener más información, consulta la sección Configurar y utilizar el Recolector de Eventos HTTP en Splunk Web en la documentación de Splunk.

  1. En la esquina superior derecha de GitHub.com, da clic en tu foto de perfil y luego en Tus empresas. "Tus empresas" en el menú desplegable de la foto de perfil en GitHub Enterprise Cloud

  2. En la lista de empresas, da clic en aquella que quieras ver. Nombre de una empresa en la lista de tus empresas

  3. En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones). Pestaña Settings (Configuraciones) en la barra lateral de la cuenta de empresa

  4. Dentro de " Parámetros de ", haz clic en Audit log (Registro de auditoría). Pestaña de registro de auditoría en la barra lateral de la cuenta de empresa

  5. Under "Audit log", click Log streaming.

  6. Haz clic en Configurar transmisión y selecciona Splunk.

    Elige Splunk desde el menú desplegable

  7. En la página de configuración, ingresa:

    • El dominio en el cual se hospeda la aplicación que quieres transmitir.

      Si estás utilizando Splunk Cloud, Domain debe ser http-inputs-<host>, en donde host es el dominio que utilizas en Splunk Cloud. Por ejemplo: http-inputs-mycompany.splunkcloud.com.

    • El puerto mediante el cual la aplicación acepta datos.

      Si estás utilizando Splunk Cloud, Port debería ser 443 si no has cambiado la configuración del puerto. Si estás utilizando la versión de prueba gratis de Splunk Cloud, Port debe ser 8088.

    • Un token que pueda utilizar GitHub para autenticarse a la aplicación de terceros.

    Ingresar la configuración de transmisión

  8. Deja seleccionada la casilla de Habilitar la verificación por 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. Puedes limpiar la selección de esta opción, pero te recomendamos que dejes habilitada la verificación por SSL.

  9. Haz clic en Verificar terminal para verificar que GitHub puede conectarse y escribir en la terminal de Splunk. Verificar la terminal

  10. Después de que hayas verificado la terminal con éxito, haz clic en Guardar.

Pausar la transmisión de bitácoras de auditoría

El pausar la transmisión te permite realizar el mantenimiento de la aplicación receptora sin perder datos de auditoría. Las bitácoras de auditoría se almacenan por hasta siete días en GitHub.com y luego se exportan cuando dejas de pausar la transmisión.

  1. En la esquina superior derecha de GitHub.com, da clic en tu foto de perfil y luego en Tus empresas. "Tus empresas" en el menú desplegable de la foto de perfil en GitHub Enterprise Cloud

  2. En la lista de empresas, da clic en aquella que quieras ver. Nombre de una empresa en la lista de tus empresas

  3. En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones). Pestaña Settings (Configuraciones) en la barra lateral de la cuenta de empresa

  4. Dentro de " Parámetros de ", haz clic en Audit log (Registro de auditoría). Pestaña de registro de auditoría en la barra lateral de la cuenta de empresa

  5. Under "Audit log", click Log streaming.

  6. Haz clic en Pausar transmisión.

    Pausar la transmisión

  7. Se mostrará un mensaje de confirmación. Haz clic en Pausar transmisión para confirmar.

Cuando la aplicación esté lista para recibir bitácoras de auditoría nuevamente, haz clic en Reanudar transmisión para reiniciar la transmisión de bitácoras de auditoría.

Borrar la transmisión de bitácoras de auditoría

  1. En la esquina superior derecha de GitHub.com, da clic en tu foto de perfil y luego en Tus empresas. "Tus empresas" en el menú desplegable de la foto de perfil en GitHub Enterprise Cloud

  2. En la lista de empresas, da clic en aquella que quieras ver. Nombre de una empresa en la lista de tus empresas

  3. En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones). Pestaña Settings (Configuraciones) en la barra lateral de la cuenta de empresa

  4. Dentro de " Parámetros de ", haz clic en Audit log (Registro de auditoría). Pestaña de registro de auditoría en la barra lateral de la cuenta de empresa

  5. Under "Audit log", click Log streaming.

  6. Haz clic en Borrar transmisión.

    Borrar la transmisión

  7. Se mostrará un mensaje de confirmación. Haz clic en Borrar transmisión para confirmar.