Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Потоковая передача журнала аудита для предприятия

Можно выполнять потоковую передачу аудита и данных событий Git из GitHub во внешнюю систему управления данными.

Кто может использовать эту функцию

Enterprise owners can configure audit log streaming.

Сведения о потоковой передаче журналов аудита

Чтобы обеспечить безопасность интеллектуальной собственности и соответствие требованиям вашей организации, можно использовать потоковую передачу для хранения копий данных журнала аудита и мониторинга: * обращение к параметрам вашей организации или репозитория;

  • изменения в разрешениях;
  • добавление или удаление пользователей в организации, репозитории или команде;
  • повышение пользователей до администратора;
  • Изменения в разрешениях GitHub App * События Git, такие как клонирование, выборка и отправка

Преимущества потоковой передачи данных аудита включают в себя следующее:

  • Исследование данных. Вы можете изучить передаваемые потоком события с помощью предпочтительного средства для запроса больших объемов данных. Поток содержит события аудита и события Git во всей учетной записи предприятия.
  • Непрерывность данных. Поток можно приостановить до семи дней без потери данных аудита.
  • Хранение данных. Вы можете хранить экспортированные журналы аудита и данные событий Git до тех пор, пока это необходимо.

Владельцы предприятия могут в любое время настроить, приостановить, или удалить поток. Поток экспортирует данные аудита и событий Git для всех организаций на предприятии.

Примечание: Все журналы аудита передаются в потоковом режиме в формате JSON.

Настройка потоковой передачи журналов аудита

Настраивайте поток журнала аудита в GitHub Enterprise Cloud, следуя инструкциям поставщика.

Настройка потоковой передачи в Amazon S3

Вы можете настроить потоковую передачу в S3 с помощью ключей доступа или, чтобы не хранить долгоживущие секреты в GitHub Enterprise Cloud, с помощью OpenID Connect (OIDC).

Настройка потоковой передачи в S3 с помощью ключей доступа

Для потоковой передачи журналов аудита в конечную точку Amazon S3 необходимо иметь контейнер и ключи доступа. Дополнительные сведения см. в статье Создание, настройка и работа с контейнерами Amazon S3 документации по Amazon Web Services. Не забудьте заблокировать общий доступ к контейнеру для защиты сведений журнала аудита.

Чтобы настроить потоковую передачу журналов аудита из GitHub, вам потребуется:

  • имя контейнера Amazon S3;
  • ИД ключа доступа AWS;
  • секретный ключ AWS.

Сведения о создании ИД ключа доступа и секретного ключа или доступе к ним см. в статье Основные сведения об учетных данных AWS и их получение документации по AWS.

  1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  3. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  4. В разделе "Журнал аудита" щелкните Потоковая передача журналов. 1. Выберите раскрывающийся список Настройка потока и щелкните Amazon S3.

    Выбор Amazon S3 в раскрывающемся меню

  5. В разделе "Проверка подлинности" нажмите кнопку Ключи доступа.

    Снимок экрана: параметры проверки подлинности для потоковой передачи в Amazon S3

  6. Настройте параметры потоковой передачи.

    • В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например, auditlog-streaming-test.
    • В разделе "Идентификатор ключа доступа" введите идентификатор ключа доступа. Например, ABCAIOSFODNN7EXAMPLE1.
    • В разделе "Секретный ключ" введите секретный ключ. Например, aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY.
  7. Нажмите кнопку Проверить конечную точку, чтобы убедиться, что GitHub может подключиться к конечной точке Amazon S3 и записывать в нее.

    Проверка конечной точки 1. После успешной проверки конечной точки щелкните Сохранить.

Настройка потоковой передачи в S3 с помощью OpenID Connect

  1. В AWS добавьте поставщика OIDC GitHub в IAM. Дополнительные сведения см. в статье Создание поставщиков удостоверений OpenID Connect (OIDC) в документации по Amazon Web Services.

    • Для URL-адреса поставщика используйте https://oidc-configuration.audit-log.githubusercontent.com.
    • Для параметра "Аудитория" используйте sts.amazonaws.com.
  2. Создайте контейнер и заблокируйте открытый доступ к нему. Дополнительные сведения см. в статье Создание, настройка и работа с контейнерами Amazon S3 документации по Amazon Web Services.

  3. Создайте политику, которая позволяет GitHub записывать данные в контейнер, скопировав следующий код JSON и заменив EXAMPLE-BUCKET именем контейнера. GitHub требуются только разрешения в этом JSON.

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

    Дополнительные сведения см. в статье Создание политик IAM в документации по Amazon Web Services.

  4. Настройте политику роли и доверия для поставщика удостоверений GitHub. Дополнительные сведения см. в статье Создание роли для веб-удостоверений или федерации OpenID Connect (консоль) в документации по Amazon Web Services.

    • Добавьте политику разрешений, созданную ранее, чтобы разрешить запись в контейнер.
    • Измените отношение доверия, чтобы добавить поле sub в условия проверки, заменив ENTERPRISE на имя предприятия.
      "Condition": {
         "StringEquals": {
            "oidc-configuration.audit-log.githubusercontent.com:aud": "sts.amazonaws.com",
            "oidc-configuration.audit-log.githubusercontent.com:sub": "https://github.com/ENTERPRISE"
          }
       }
      
    • Запишите имя ресурса Amazon (ARN) созданной роли.
  5. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  6. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  7. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  8. В разделе "Журнал аудита" щелкните Потоковая передача журналов. 1. Выберите раскрывающийся список Настройка потока и щелкните Amazon S3.

    Выбор Amazon S3 в раскрывающемся меню

  9. В разделе "Проверка подлинности" щелкните OpenID Connect.

    Снимок экрана: параметры проверки подлинности для потоковой передачи в Amazon S3

  10. Настройте параметры потоковой передачи.

    • В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например, auditlog-streaming-test.
    • В разделе "Роль ARN" введите роль ARN, записанную ранее. Например, arn:aws::iam::1234567890:role/github-audit-log-streaming-role.
  11. Нажмите кнопку Проверить конечную точку, чтобы убедиться, что GitHub может подключиться к конечной точке Amazon S3 и записывать в нее.

    Проверка конечной точки 1. После успешной проверки конечной точки щелкните Сохранить.

Отключение потоковой передачи в S3 с помощью OpenID Connect

Если по какой-либо причине необходимо отключить потоковую передачу в S3 с помощью OIDC, например, если обнаружена уязвимость безопасности в OIDC, удалите поставщика OIDC GitHub, созданного в AWS, при настройке потоковой передачи. Дополнительные сведения см. в статье Создание поставщиков удостоверений OpenID Connect (OIDC) в документации по Amazon Web Services.

Затем настройте потоковую передачу с помощью ключей доступа, пока уязвимость не будет устранена. Дополнительные сведения см. в статье "Настройка потоковой передачи в S3 с помощью ключей доступа".

Интеграция с AWS CloudTrail Lake

Вы можете консолидировать журналы аудита из GitHub Enterprise Cloud с журналами действий AWS, интегрируя потоковую передачу журналов аудита в S3 с AWS CloudTrail Lake. Дополнительные сведения см. в документации по AWS CloudTrail или в журнале аудита GitHub to CloudTrail Open Audit в репозитории aws-samples/aws-cloudtrail-lake-github-audit-log .

Настройка потоковой передачи в Хранилище BLOB-объектов Azure

Перед настройкой потока в GitHub необходимо сначала создать учетную запись хранения и контейнер в Microsoft Azure. Дополнительные сведения см. в статье Общие сведения о Хранилище BLOB-объектов Azure документация Майкрософт.

Чтобы настроить поток в GitHub, вам потребуется URL-адрес маркера SAS.

На портале Microsoft Azure:

  1. На домашней странице выберите Учетные записи хранения.

  2. Щелкните имя учетной записи хранения, которую вы хотите использовать, а затем выберите Контейнеры.

    Ссылка "Контейнеры" в Azure

  3. Щелкните имя контейнера, который хотите использовать.

  4. Щелкните Shared access tokens (Маркеры общего доступа).

    Ссылка на маркеры общего доступа в Azure

  5. В раскрывающемся меню Разрешения измените разрешения, чтобы разрешить только Create и Write.

    Раскрывающееся меню разрешений

  6. Задайте дату окончания срока действия, соответствующую политике смены секретов.

  7. Щелкните Создать маркер SAS и URL-адрес.

  8. Скопируйте значение отображаемого поля URL-адрес SAS BLOB-объекта. Этот URL-адрес вы используете в GitHub.

В GitHub: 1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  1. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  2. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  3. В разделе "Журнал аудита" щелкните Потоковая передача журналов.

  4. Щелкните Configure stream (Настроить поток) и выберите Azure Blob Storage (Хранилище BLOB-объектов Azure).

    Выбор Хранилища BLOB-объектов Azure в раскрывающемся меню

  5. На странице конфигурации введите URL-адрес SAS BLOB-объекта, скопированный в Azure. Поле Container (Контейнер) заполняется автоматически на основе URL-адреса.

    Ввод параметров потока

  6. Нажмите кнопку Check endpoint (Проверить конечную точку), чтобы убедиться, что GitHub может подключиться к конечной точке Хранилища BLOB-объектов Azure и записывать в нее.

    Проверка конечной точки

  7. После успешной проверки конечной точки щелкните Сохранить.

Настройка потоковой передачи в Центры событий Azure

Перед настройкой потока в GitHub необходимо иметь пространство имен концентратора событий в Microsoft Azure. Затем необходимо создать экземпляр концентратора событий в пространстве имен. При настройке потока потребуются сведения об этом экземпляре концентратора событий. Дополнительные сведения см. в статье Краткое руководство. Создание концентратора событий с помощью портала Azure документации Майкрософт.

Вам потребуется информация о двух значениях концентратора событий: имя экземпляра и строка подключения.

На портале Microsoft Azure:

  1. Найдите "Центры событий".

    Поле поиска на портале Azure

  2. Выберите Концентраторы событий. Здесь перечислены имена концентраторов событий.

    Список концентраторов событий

  3. Запишите имя концентратора событий, в который требуется выполнить потоковую передачу.

  4. Щелкните необходимый концентратор событий. Затем в меню слева выберите пункт Политики общего доступа.

  5. Выберите политику общего доступа в списке политик или создайте ее.

    Список политик общего доступа

  6. Нажмите кнопку справа от поля Строка подключения — первичный ключ, чтобы скопировать строку подключения.

    Строка подключения концентратора событий

В GitHub: 1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  1. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  2. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  3. В разделе "Журнал аудита" щелкните Потоковая передача журналов.

  4. Щелкните Configure stream (Настроить поток) и выберите Центры событий Azure.

    Выбор Центров событий Azure в раскрывающемся меню

  5. На странице конфигурации введите:

    • Имя экземпляра Центров событий Azure.
    • Строка подключения.

    Ввод параметров потока

  6. Нажмите кнопку Check endpoint (Проверить конечную точку), чтобы убедиться, что GitHub может подключиться к конечной точке Центров событий Azure и записывать в нее.

    Проверка конечной точки

  7. После успешной проверки конечной точки щелкните Сохранить.

Настройка потоковой передачи в Datadog

Чтобы настроить потоковую передачу в Datadog, необходимо создать маркер клиента или ключ API в Datadog, а затем настроить потоковую передачу журнала аудита в GitHub Enterprise Cloud с помощью маркера для проверки подлинности. Вам не нужно создавать контейнер bucket или другой контейнер хранилища в Datadog.

После настройки потоковой передачи в Datadog можно просмотреть данные журнала аудита, отфильтровав их по github.audit.streaming. Дополнительные сведения см. в разделе Управление журналами.

  1. Если у вас еще нет учетной записи Datadog, создайте ее.

  2. В Datadog создайте маркер клиента или ключ API, а затем нажмите кнопку Копировать ключ. Дополнительные сведения см. в разделе API и ключи приложений в документации по Datadog. 1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  3. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  4. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  5. В разделе "Журнал аудита" щелкните Потоковая передача журналов.

  6. Выберите раскрывающийся список Настройка потока и щелкните Datadog.

    Снимок экрана: раскрывающееся меню "Настройка потока" с выделенным элементом Datadog

  7. В поле "Маркер" вставьте скопированный ранее маркер.

    Снимок экрана: поле "Маркер"

  8. Выберите раскрывающееся меню "Сайт" и щелкните сайт Datadog. Чтобы определить сайт Datadog, сравните URL-адрес Datadog с таблицей на сайтах Datadog в документации по Datadog.

    Снимок экрана: раскрывающееся меню "Сайт"

  9. Нажмите кнопку Проверить конечную точку, чтобы убедиться, что GitHub может подключиться к конечной точке Datadog и записывать в нее.

    Проверка конечной точки 1. После успешной проверки конечной точки щелкните Сохранить.

  10. Через несколько минут убедитесь, что данные журнала аудита отображаются на вкладке Журналы в Datadog. Если данные журнала аудита не отображаются, убедитесь, что маркер и сайт верны в GitHub.

Настройка потоковой передачи в Google Cloud Storage

Чтобы настроить потоковую передачу в Google Cloud Storage, необходимо создать учетную запись службы в Google Cloud с соответствующими учетными данными и разрешениями. Затем настроить потоковую передачу журналов аудита в GitHub Enterprise Cloud, используя данные для входа учетной записи службы для проверки подлинности.

  1. Создайте учетную запись службы для Google Cloud. Не нужно настраивать управление доступом или роли IAM для учетной записи службы. Дополнительные сведения см. в статье Создание учетных записей служб и управление ими документации Google Cloud.

  2. Создайте ключ JSON для учетной записи службы и безопасно его храните. Дополнительные сведения см. в статье Создание ключей учетной записи службы и управление ими документации Google Cloud.

  3. Если вы еще не создали контейнер, сделайте это. Дополнительные сведения см. в статье Создание контейнеров хранилища документации Google Cloud.

  4. Предоставьте учетной записи службы роль Storage Object Creator (Создатель объектов хранилища) для контейнера. Дополнительные сведения см. в статье Использование разрешений Cloud IAM документации Google Cloud.

  5. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  6. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  7. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  8. В разделе "Журнал аудита" щелкните Потоковая передача журналов.

  9. Выберите раскрывающееся меню Configure stream (Настроить поток) и щелкните Google Cloud Storage.

    Снимок экрана: раскрывающееся меню Configure stream (Настроить поток)

  10. В поле Bucket (Контейнер) введите имя контейнера Google Cloud Storage.

    Снимок экрана: текстовое поле Bucket (Контейнер)

  11. В поле JSON Credentials (Учетные данные JSON) вставьте все содержимое файла для ключа JSON учетной записи службы.

    Снимок экрана: текстовое поле JSON Credentials (Учетные данные JSON)

  12. Чтобы убедиться, что GitHub может подключиться к контейнеру Google Cloud Storage и записывать в него, нажмите кнопку Check endpoint (Проверить конечную точку).

    Снимок экрана: кнопка Check endpoint (Проверить конечную точку)

  13. После успешной проверки конечной точки щелкните Сохранить.

Настройка потоковой передачи в Splunk

Для потоковой передачи журналов аудита в конечную точку сборщика событий HTTP (HEC) Splunk необходимо убедиться, что эта конечная точка настроена для приема подключений HTTPS. Дополнительные сведения см. в статье Настройка и использование сборщика событий HTTP в Splunk Web документации Splunk.

  1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  3. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  4. В разделе "Журнал аудита" щелкните Потоковая передача журналов.

  5. Щелкните Configure stream (Настроить поток) и выберите Splunk.

    Выбор Splunk в раскрывающемся меню

  6. На странице конфигурации введите:

    • Домен размещенного приложения, для которого требуется выполнить потоковую передачу.

      Если вы используете Splunk Cloud, параметр Domain должен быть такого вида: http-inputs-<host>. Где host — это домен, используемый в Splunk Cloud. Например: http-inputs-mycompany.splunkcloud.com.

    • Порт, на котором приложение принимает данные.

      Если вы используете Splunk Cloud, параметр Port должен иметь значение — 443, если вы не изменили конфигурацию порта. Если вы используете бесплатную пробную версию Splunk Cloud, параметр Port должен иметь значение — 8088.

    • Маркер, который GitHub может использовать для проверки подлинности в стороннем приложении.

    Ввод параметров потока

  7. Оставьте флажок Enable SSL verification (Включить проверку SSL).

    Журналы аудита всегда передаются в виде зашифрованных данных, но при выборе этого параметра GitHub проверяет SSL-сертификат экземпляра Splunk при доставке событий. Проверка SSL помогает обеспечить безопасную доставку событий в конечную точку URL-адреса. Можно снять флажок с этого параметра, но рекомендуем оставить проверку SSL включенной.

  8. Нажмите кнопку Check endpoint (Проверить конечную точку), чтобы убедиться, что GitHub может подключиться к конечной точке Splunk и записывать в нее. Проверка конечной точки 1. После успешной проверки конечной точки щелкните Сохранить.

Приостановка потоковой передачи журналов аудита

Приостановка потока позволяет выполнять обслуживание принимающего приложения без потери данных аудита. Журналы аудита хранятся в GitHub.com в течение семи дней, а затем экспортируются при распаку потока.

Datadog принимает только журналы за последние 18 часов. Если вы приостанавливаете поток в конечной точке Datadog более чем на 18 часов, вы рискуете потерять журналы, которые Datadog не примет после возобновления потоковой передачи.

  1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  3. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  4. В разделе "Журнал аудита" щелкните Потоковая передача журналов.

  5. Нажмите кнопку Pause stream (Приостановить поток).

    Приостановка потока

  6. Вы увидите сообщение с подтверждением. Нажмите кнопку Pause stream (Приостановить поток), чтобы подтвердить.

Когда приложение будет готово к повторному получению журналов аудита, нажмите кнопку Resume stream (Возобновить поток), чтобы перезапустить потоковую передачу журналов аудита.

Удаление потока журналов аудита

  1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия. Раздел "Ваши предприятия" в раскрывающемся меню для фотографии профиля в GitHub Enterprise Cloud

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть. Название предприятия в списке ваших предприятий

  3. На боковой панели корпоративной учетной записи щелкните Параметры. Вкладка "Параметры" на боковой панели корпоративной учетной записи 1. В разделе «Параметры » нажмите Журнал аудита. Вкладка «Политики» на боковой панели корпоративной учетной записи

  4. В разделе "Журнал аудита" щелкните Потоковая передача журналов.

  5. Нажмите кнопку Delete stream (Удалить поток).

    Удаление потока

  6. Вы увидите сообщение с подтверждением. Нажмите кнопку Delete stream (Удалить поток), чтобы подтвердить.