Примечание.
Веб-перехватчики могут быть хорошей альтернативой журналу аудита или опросу API для определенных вариантов использования. Веб-перехватчики — это способ GitHub для уведомления сервера о конкретных событиях для репозитория, организации или предприятия. По сравнению с API или поиском в журнале аудита веб-перехватчики могут быть более эффективными, если вы просто хотите узнать и, возможно, журнал при возникновении определенных событий в организации, организации или репозитории. См . раздел AUTOTITLE.
Сведения о потоковой передаче журналов аудита
Вы можете защитить интеллектуальную собственность и обеспечить соответствие вашей компании с помощью потоковой передачи для хранения копий данных журнала аудита. События журнала аудита, такие как изменения параметров и доступа, членство пользователей, разрешения приложения и многое другое. См. раздел AUTOTITLE, AUTOTITLE[ и [AUTOTITLE. ](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/audit-log-events-for-your-organization)](/authentication/keeping-your-account-and-data-secure/security-log-events)
Данные журнала аудита потоковой передачи имеют следующие преимущества:
- Исследование данных. Проверьте потоковые события с помощью предпочтительного средства для запроса больших объемов данных. Поток содержит как аудитские события, так и события Git для всего корпоративного аккаунта.
- Непрерывность данных. Если вы приостанавливаете поток, он сохраняет буфер в течение семи дней, поэтому на первую неделю нет потери данных. Если поток остается приостановлен более семи дней, он будет возобновляться с точки на одну неделю до текущего времени. Если приостановить поток на три недели и более, поток не будет сохранять данные и начинается заново с текущей временной метки.
- Хранение данных. Сохраняйте экспортированные журналы аудита и данные событий Git до тех пор, пока вам нужно.
Вы можете настроить, приостановить или удалить поток в любое время. Поток экспортирует данные о событиях аудита и Git для всех организаций в вашей организации с момента включения потока.
Все потоковые журналы аудита отправляются в виде сжатых JSON-файлов. Формат имени файла включенYYYY/MM/HH/MM/<uuid>.json.gz.
Примечание.
GitHub использует метод доставки как минимум один раз. Из-за определенных проблем с сетью или системой некоторые события могут дублироваться.
Проверки работоспособности потоков журнала аудита
Каждые 24 часа проверка работоспособности выполняется для каждого потока. Если поток настроен неправильно, сообщение электронной почты будет отправлено владельцам предприятия. Чтобы избежать удаления событий журнала аудита из потока, необходимо исправить неправильно настроенный поток в течение шести дней.
Чтобы исправить конфигурацию потоковой передачи, выполните действия, описанные в разделе "Настройка потоковой передачи журнала аудита".
Настройка потоковой передачи журналов аудита
Чтобы настроить поток журнала аудита, следуйте инструкциям поставщика.
Примечание.
Чтобы получить список диапазонов IP-адресов, используемых GitHub для подключения к потоковой конечной точке, используйте REST API. Конечная meta точка для GitHub.com включает hooks ключ со списком IP-адресов. См . раздел AUTOTITLE.
Потоковая передача в несколько конечных точек
Примечание.
Эта функция сейчас включена public preview и может измениться.
Журналы аудита можно передавать в несколько конечных точек. Например, журнал аудита можно передавать в две конечные точки одного типа или передавать в два разных поставщика. Чтобы настроить несколько потоков, следуйте инструкциям для каждого поставщика.
Настройка потоковой передачи в Amazon S3
Вы можете настроить трансляцию на S3 с помощью ключей доступа или, чтобы избежать хранения долгоживущих секретов на GitHub, с помощью OpenID Connect (OIDC).
- Настройка потоковой передачи в S3 с помощью ключей доступа
- Настройка потоковой передачи в S3 с помощью OpenID Connect
- Отключение потоковой передачи в S3 с помощью OpenID Connect
- Интеграция с AWS CloudTrail Lake
Настройка потоковой передачи в S3 с помощью ключей доступа
Чтобы настроить потоковый GitHub поток аудита, вам понадобится:
- ИД ключа доступа AWS;
- секретный ключ AWS.
Сведения о создании ИД ключа доступа и секретного ключа или доступе к ним см. в статье Основные сведения об учетных данных AWS и их получение документации по AWS.
Из AWS:
-
Создайте контейнер и заблокируйте открытый доступ к нему. См. статью "Создание, настройка и работа с контейнерами Amazon S3" в документации 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" в документации ПО AWS.
От GitHub:
-
Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
-
В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
-
В разделе "Параметры" щелкните журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
Выберите раскрывающееся меню "Настройка потока" и щелкните Amazon S3.
-
В разделе «Аутентификация» нажмите клавиши доступа.
-
Настройте параметры потоковой передачи.
- В разделе "Регион" выберите регион контейнера. Например:
us-east-1. - В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например:
auditlog-streaming-test. - В разделе "Идентификатор ключа доступа" введите идентификатор ключа доступа. Например:
ABCAIOSFODNN7EXAMPLE1. - В разделе "Секретный ключ" введите секретный ключ. Например:
aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY.
- В разделе "Регион" выберите регион контейнера. Например:
-
Нажмите кнопку Проверить конечную точку, чтобы убедиться, что GitHub может подключиться к конечной точке Amazon S3 и записывать в нее.
-
После успешной проверки конечной точки щелкните Сохранить.
Настройка потоковой передачи в S3 с помощью OpenID Connect
Примечание.
Потоковая трансляция журнала аудита на S3 с OpenID Connect GitHub Enterprise Cloud с размещением данных в настоящее время недоступна. См . раздел AUTOTITLE.
Из AWS:
-
Добавьте GitHub провайдера OIDC в IAM. Сведения о создании поставщиков удостоверений OpenID Connect (OIDC) см. в документации ПО AWS.
- Для URL-адреса поставщика используйте
https://oidc-configuration.audit-log.githubusercontent.com. - Для параметра "Аудитория" используйте
sts.amazonaws.com.
- Для URL-адреса поставщика используйте
-
Создайте контейнер и заблокируйте открытый доступ к нему. См. статью "Создание, настройка и работа с контейнерами Amazon S3" в документации 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" в документации ПО AWS.
-
Настройте роль и политику доверия для GitHub IDP. Сведения о создании роли для веб-удостоверений или федерации OpenID Connect (консоль) в документации AWS.
-
Добавьте политику разрешений, созданную ранее, чтобы разрешить запись в контейнер.
-
Измените отношение доверия, чтобы добавить поле
subв условия проверки, заменивENTERPRISEна имя предприятия.Примечание.
Значение
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) созданной роли.
-
От GitHub:
-
Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
-
В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
-
В разделе "Параметры" щелкните журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
Выберите раскрывающееся меню "Настройка потока" и щелкните Amazon S3.
-
В разделе "Проверка подлинности" щелкните OpenID Connect.
-
Настройте параметры потоковой передачи.
- В разделе "Регион" выберите регион контейнера. Например,
us-east-1также доступна опция Auto Discovery. - В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например:
auditlog-streaming-test. - В разделе "Роль ARN" введите роль ARN, записанную ранее. Например:
arn:aws::iam::1234567890:role/github-audit-log-streaming-role.
- В разделе "Регион" выберите регион контейнера. Например,
-
Нажмите кнопку Проверить конечную точку, чтобы убедиться, что GitHub может подключиться к конечной точке Amazon S3 и записывать в нее.
-
После успешной проверки конечной точки щелкните Сохранить.
Отключение потоковой передачи в S3 с помощью OpenID Connect
Чтобы отключить трансляцию в S3 с OIDC, удалите GitHub провайдера OIDC, которого вы создали в AWS при настройке стриминга. Сведения о создании поставщиков удостоверений OpenID Connect (OIDC) см. в документации ПО AWS.
Если вы отключите потоковую передачу из-за уязвимости безопасности в OIDC, после удаления поставщика настройте потоковую передачу с ключами доступа до устранения уязвимости. См. раздел "Настройка потоковой передачи в S3 с ключами доступа".
Интеграция с AWS CloudTrail Lake
Журналы аудита можно объединить, интегрируя потоковую передачу в S3 с AWS CloudTrail Lake. См. документацию AWS CloudTrail или журнал аудита GitHub для открытого аудита CloudTrail в репозитории aws-samples/aws-cloudtrail-lake-github-audit-log.
Настройка потокового потока в Хранилище BLOB-объектов Azure
Примечание.
Потоковая передача журнала аудита в blob storage в Azure для государственных организаций не поддерживается.
Перед тем как настраивать поток в GitHub, сначала создайте аккаунт хранения и контейнер в Microsoft Azure. См. Введение в Хранилище BLOB-объектов Azure в документации Microsoft.
Чтобы настроить поток, вам потребуется URL-адрес маркера SAS.
Из портал Microsoft Azure:
- На домашней странице выберите Учетные записи хранения.
- В разделе "Имя" щелкните имя учетной записи хранения, которую вы хотите использовать.
- В разделе "Хранилище данных" щелкните "Контейнеры".
- Щелкните имя контейнера, который хотите использовать.
- В левой боковой панели в разделе "Параметры" щелкните "Общие маркеры доступа".
-
**Выберите раскрывающееся меню "Разрешения"**, а затем выберите `Create` и `Write` отмените выбор всех остальных параметров. - Задайте дату окончания срока действия, соответствующую политике смены секретов.
- Щелкните Создать маркер SAS и URL-адрес.
- Скопируйте значение отображаемого поля URL-адрес SAS BLOB-объекта. Вы будете использовать этот URL в GitHub.
От GitHub:
- Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
- В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
- В разделе "Параметры" щелкните журнал аудита.
- В разделе "Журнал аудита" щелкните Потоковая передача журналов.
- Выберите выпадающее меню Configure stream и нажмите Хранилище BLOB-объектов Azure.
- На странице конфигурации введите blob SAS URL, который вы скопировали в Azure. Поле Container (Контейнер) заполняется автоматически на основе URL-адреса.
- Нажмите Check endpoint чтобы проверить, может ли GitHub подключиться и записать на Хранилище BLOB-объектов Azure конечную точку.
- После успешной проверки конечной точки щелкните Сохранить.
Setting streaming to Центры событий Azure
Примечание.
Экземпляры Event Hubs в Azure для государственных организаций не поддерживаются.
Перед установкой потока GitHubв , вам нужно:
- An event hub namespace in Microsoft Azure
- Экземпляр event hub внутри пространства имён (см. Быстрый старт: Создать event hub с помощью Azure portal в документации Microsoft)
Из портал Microsoft Azure:
- В верхней части страницы используйте поле поиска для поиска "Центры событий".
- Выберите Концентраторы событий. Здесь перечислены имена концентраторов событий.
- Запишите имя концентратора событий, в который требуется выполнить потоковую передачу. Щелкните концентратор событий.
- В меню слева щелкните "Политики общего доступа".
- Выберите политику общего доступа из списка политик или создайте новую политику.
- Скопируйте строка подключения из поля Connection string-primary key.
От GitHub:
- Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
- В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
- В разделе "Параметры" щелкните журнал аудита.
- В разделе "Журнал аудита" щелкните Потоковая передача журналов.
- Выберите выпадающее меню Configure stream и нажмите Центры событий Azure.
- На странице конфигурации введите:
- Название экземпляра Центры событий Azure.
- Строка подключения.
- Нажмите Check endpoint, чтобы убедиться, что GitHub может подключиться и записать на конечную точку Azure Events Hub.
- После успешной проверки конечной точки щелкните Сохранить.
Настройка потоковой передачи в Datadog
Чтобы настроить потоковую трансляцию в Datadog, создайте клиентский токен или API в Datadog, затем настройте потоковый GitHub поток аудита с помощью токена для аутентификации. Вам не нужно создавать контейнер bucket или другой контейнер хранилища в Datadog.
После настройки потоковой передачи в Datadog можно просмотреть данные журнала аудита, отфильтровав их по github.audit.streaming. См. раздел "Управление журналами".
- Если у вас еще нет учетной записи Datadog, создайте ее.
- В Datadog создайте маркер клиента или ключ API и нажмите кнопку " Копировать ключ". См. раздел API и ключи приложений в документации Datadog.
- Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
- В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
- В разделе "Параметры" щелкните журнал аудита.
- В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
**Выберите раскрывающийся список "Настройка потока**" и щелкните **Datadog**. - В поле токена **** вставьте скопированный ранее маркер.
-
**Выберите раскрывающийся список "Сайт"** и щелкните сайт Datadog. Чтобы определить сайт, сравните URL-адрес Datadog с таблицей на [сайтах](https://docs.datadoghq.com/getting_started/site/) Datadog в Документациях Datadog. - Чтобы убедиться, что GitHub можно подключиться и записать на конечную точку Datadog, нажмите « Check endpoint».
- После успешной проверки конечной точки щелкните Сохранить.
- Через несколько минут убедитесь, что данные журнала аудита отображаются на вкладке "Журналы " в Datadog. Если он не отображается, убедитесь, что ваш токен и сайт находятся в GitHub.
Настройка потоковой передачи в Google Cloud Storage
Чтобы настроить потоковую трансляцию в Google Cloud Storage, создайте сервисную учетную запись в Google Cloud с соответствующими учётными данными и правами, затем настройте потоковую GitHub запись аудита, используя учетные данные сервисной учетной записи для аутентификации.
-
Создайте учетную запись службы для Google Cloud. Для этой учетной записи не требуется задавать элементы управления доступом или роли IAM. См. статью "Создание учетных записей служб и управление ими" в документации по Google Cloud.
-
Создайте ключ JSON для учетной записи службы и безопасно его храните. Сведения о создании ключей учетной записи службы и управлении ими см. в документации по Google Cloud.
-
Если вы еще не сделали этого, создайте контейнер. См. статью "Создание контейнеров хранилища" в документации по Google Cloud.
-
Предоставьте учетной записи службы роль Storage Object Creator (Создатель объектов хранилища) для контейнера. Ознакомьтесь с разрешениями Cloud IAM в документации по Google Cloud.
-
Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
-
В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
-
В разделе "Параметры" щелкните журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
**Выберите раскрывающийся список "Настройка потока**" и щелкните Google **Cloud Storage**. -
В поле Bucket (Контейнер) введите имя контейнера Google Cloud Storage.
-
В разделе "Учетные данные JSON" вставьте все содержимое файла ключа учетной записи службы в формате JSON.
-
Чтобы убедиться, что GitHub можно подключиться и записать в корзину Google Cloud Storage, нажмите Check endpoint.
-
После успешной проверки конечной точки щелкните Сохранить.
Настройка потоковой передачи в Splunk
Чтобы передавать журналы аудита в конечную точку сборщика событий HTTP (HEC) Splunk, убедитесь, что конечная точка настроена для приема подключений HTTPS. Сведения о настройке и использовании сборщика событий HTTP в Splunk Web см. в документации по Splunk.
Примечание.
GitHub валидирует конечную точку HEC с помощью <Domain>:port/services/collector. Если локальная размещение конечной точки (например, с приемником HEC Splunk через OpenTelemetry), убедитесь, что она недоступна в этом месте.
-
Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
-
В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
-
В разделе "Параметры" щелкните журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
**Выберите раскрывающийся список "Настройка потока**" и щелкните **Splunk**. -
На странице конфигурации введите:
-
Домен, в котором размещено приложение, для которого требуется выполнить потоковую передачу.
Если вы используете 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 можно использовать для аутентификации в стороннем приложении.
-
-
Оставьте флажок Enable SSL verification (Включить проверку SSL).
Журналы аудита всегда транслируются в виде зашифрованных данных, однако с этой GitHub опцией проверка SSL-сертификата вашего экземпляра Splunk при доставке событий. Проверка SSL помогает обеспечить безопасную доставку событий в конечную точку URL-адреса. Проверка является необязательной, но рекомендуется оставить включенную проверку SSL.
-
Нажмите Check endpoint , чтобы убедиться, что GitHub можно подключиться и записать на конечную точку Splunk.
-
После успешной проверки конечной точки щелкните Сохранить.
Приостановка потоковой передачи журналов аудита
Приостанавливайте поток для выполнения обслуживания в принимающем приложении, не теряя данные аудита. Журналы аудита хранятся до семи дней GitHub , а затем экспортируются при снятии трансляции на паузу.
Datadog принимает журналы только с 18 часов в прошлом. Если вы приостанавливаете поток в конечной точке Datadog более чем на 18 часов, вы рискуете потерять журналы, которые Datadog не примет после возобновления потоковой передачи.
- Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
- В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
- В разделе "Параметры" щелкните журнал аудита.
- В разделе "Журнал аудита" щелкните Потоковая передача журналов.
- Справа от настроенного потока нажмите кнопку "Приостановить поток".
- Отображается сообщение подтверждения. Нажмите кнопку Pause stream (Приостановить поток), чтобы подтвердить.
Чтобы перезапустить потоковую передачу, нажмите кнопку "Возобновить поток".
Удаление потока журналов аудита
- Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
- В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
- В разделе "Параметры" щелкните журнал аудита.
- В разделе "Журнал аудита" щелкните Потоковая передача журналов.
- В разделе "Зона опасности" нажмите кнопку "Удалить поток".
- Отображается сообщение подтверждения. Нажмите кнопку Delete stream (Удалить поток), чтобы подтвердить.
Включение потоковой передачи журналов аудита запросов API
Примечание.
Не все запросы API включаются в поток журнала аудита после включения этой функции. Потоковая передача запросов API ограничена соответствующими конечными точками безопасности.
- Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
- В левой части страницы на боковой панели учетной записи предприятия щелкните Settings.
- В разделе "Параметры" щелкните журнал аудита.
- В разделе "Журнал аудита" нажмите кнопку "Параметры".
- В разделе "Запросы API" выберите "Включить события запроса API".
- Нажмите кнопку Сохранить.