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

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

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

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

Enterprise owners can configure audit log streaming.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. В AWS создайте контейнер и заблокируйте общий доступ к контейнеру. Дополнительные сведения см. в статье Создание, настройка и работа с контейнерами Amazon S3 документации по Amazon Web Services. 1. В AWS создайте политику, которая позволяет 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. 1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

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

  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. В AWS создайте контейнер и заблокируйте общий доступ к контейнеру. Дополнительные сведения см. в статье Создание, настройка и работа с контейнерами Amazon S3 документации по Amazon Web Services. 1. В AWS создайте политику, которая позволяет 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.

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

  4. Создайте политику, которая позволяет 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.

  5. Настройте политику роли и доверия для поставщика удостоверений 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) созданной роли.
  6. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.

  7. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

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

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

    • В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например, auditlog-streaming-test.
    • В разделе "Роль ARN" введите роль ARN, записанную ранее. Например, arn:aws::iam::1234567890:role/github-audit-log-streaming-role.
  12. Нажмите кнопку Проверить конечную точку, чтобы убедиться, что 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. В разделе "Имя" щелкните имя учетной записи хранения, которую вы хотите использовать.
  3. В разделе "Хранилище данных" щелкните Контейнеры.
  4. Щелкните имя контейнера, который хотите использовать.
  5. На левой боковой панели в разделе "Параметры" щелкните Общие маркеры доступа.
  6. Выберите раскрывающееся меню Разрешения , а затем выберите Create и Write снимите флажок все остальные параметры.
  7. Задайте дату окончания срока действия, соответствующую политике смены секретов.
  8. Щелкните Создать маркер SAS и URL-адрес.
  9. Скопируйте значение отображаемого поля URL-адрес SAS BLOB-объекта. Этот URL-адрес вы используете в GitHub.

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

  1. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

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

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

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

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

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

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

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

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

  1. В верхней части страницы рядом с полем "Microsoft Azure" используйте поле поиска для поиска "Центры событий".
  2. Выберите Концентраторы событий. Здесь перечислены имена концентраторов событий.
  3. Запишите имя концентратора событий, в который требуется выполнить потоковую передачу. Щелкните концентратор событий.
  4. В меню слева выберите Пункт Политики общего доступа.
  5. Выберите политику общего доступа из списка политик или создайте новую политику.
  6. Скопируйте строку подключения из поля Строка подключения — первичный ключ .

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

  1. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

  4. Выберите раскрывающееся меню Настройка потока и щелкните Центры событий 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 щелкните фотографию профиля и выберите Ваши предприятия.

  3. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

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

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

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

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

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

  11. Через несколько минут убедитесь, что данные журнала аудита отображаются на вкладке Журналы в 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 щелкните фотографию профиля и выберите Ваши предприятия.

  6. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

  9. Выберите раскрывающееся меню Настройка потока и выберите Google Cloud Storage.

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

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

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

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

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

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

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

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

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

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

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

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

      Если вы используете бесплатную пробную версию Splunk Cloud, Domain должно иметь значение inputs.<host>, где host — это домен, используемый в Splunk Cloud. Например, 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 и записывать в нее.

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

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

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

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

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

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

  5. Справа от настроенного потока щелкните Приостановить поток.

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

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

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

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

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

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

  5. В разделе "Зона опасности" щелкните Удалить поток.

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

Включение потоковой передачи журналов аудита для запросов API

Примечание: В настоящее время эта функция находится в общедоступной бета-версии и может быть изменена.

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

  2. В списке предприятий щелкните предприятие, которое требуется просмотреть.

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

  4. В разделе "Журнал аудита" щелкните Параметры.

  5. В разделе "Запросы API" выберите Включить события запросов API.