Сведения о потоковой передаче журналов аудита
Чтобы обеспечить безопасность интеллектуальной собственности и соответствие требованиям вашей организации, можно использовать потоковую передачу для хранения копий данных журнала аудита и мониторинга: * обращение к параметрам вашей организации или репозитория;
- изменения в разрешениях;
- добавление или удаление пользователей в организации, репозитории или команде;
- повышение пользователей до администратора;
- Изменения в разрешениях GitHub App
- Запросы API (должны быть включены) * События Git, такие как клонирование, выборка и отправка
Преимущества потоковой передачи данных аудита включают в себя следующее:
- Исследование данных. Вы можете изучить передаваемые потоком события с помощью предпочтительного средства для запроса больших объемов данных. Поток содержит события аудита и события Git во всей учетной записи предприятия.
- Непрерывность данных. Поток можно приостановить до семи дней без потери данных аудита.
- Хранение данных. Вы можете хранить экспортированные журналы аудита и данные событий Git до тех пор, пока это необходимо.
Владельцы предприятия могут в любое время настроить, приостановить, или удалить поток. Поток экспортирует данные аудита и событий Git для всех организаций на предприятии.
Примечание: Все журналы аудита передаются в потоковом режиме в формате JSON.
Настройка потоковой передачи журналов аудита
Настраивайте поток журнала аудита в GitHub Enterprise Cloud, следуя инструкциям поставщика.
Настройка потоковой передачи в Amazon S3
Вы можете настроить потоковую передачу в S3 с помощью ключей доступа или, чтобы не хранить долгоживущие секреты в GitHub Enterprise Cloud, с помощью OpenID Connect (OIDC).
- Настройка потоковой передачи в S3 с помощью ключей доступа
- Настройка потоковой передачи в S3 с помощью OpenID Connect
- Отключение потоковой передачи в S3 с помощью OpenID Connect
- Интеграция с AWS CloudTrail Lake
Настройка потоковой передачи в S3 с помощью ключей доступа
Чтобы настроить потоковую передачу журналов аудита из GitHub, вам потребуется:
- ИД ключа доступа AWS;
- секретный ключ AWS.
Сведения о создании ИД ключа доступа и секретного ключа или доступе к ним см. в статье Основные сведения об учетных данных AWS и их получение документации по AWS.
-
В 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 щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов. 1. Выберите раскрывающееся меню Настройка потока и выберите Amazon S3.
-
В разделе "Проверка подлинности" щелкните Ключи доступа.
-
Настройте параметры потоковой передачи.
- В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например,
auditlog-streaming-test
. - В разделе "Идентификатор ключа доступа" введите идентификатор ключа доступа. Например,
ABCAIOSFODNN7EXAMPLE1
. - В разделе "Секретный ключ" введите секретный ключ. Например,
aBcJalrXUtnWXYZ/A1MDENG/zPxRfiCYEXAMPLEKEY
.
- В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например,
-
Нажмите кнопку Проверить конечную точку, чтобы убедиться, что GitHub может подключиться к конечной точке Amazon S3 и записывать в нее. 1. После успешной проверки конечной точки щелкните Сохранить.
Настройка потоковой передачи в S3 с помощью OpenID Connect
-
В AWS добавьте поставщика OIDC GitHub в IAM. Дополнительные сведения см. в статье Создание поставщиков удостоверений OpenID Connect (OIDC) в документации по Amazon Web Services.
- Для URL-адреса поставщика используйте
https://oidc-configuration.audit-log.githubusercontent.com
. - Для параметра "Аудитория" используйте
sts.amazonaws.com
.
- Для URL-адреса поставщика используйте
-
В 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.
-
Создайте контейнер и заблокируйте открытый доступ к нему. Дополнительные сведения см. в статье Создание, настройка и работа с контейнерами Amazon S3 документации по Amazon Web Services.
-
Создайте политику, которая позволяет 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.
-
Настройте политику роли и доверия для поставщика удостоверений 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) созданной роли.
-
В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов. 1. Выберите раскрывающееся меню Настройка потока и выберите Amazon S3.
-
В разделе "Проверка подлинности" щелкните OpenID Connect.
-
Настройте параметры потоковой передачи.
- В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например,
auditlog-streaming-test
. - В разделе "Роль ARN" введите роль ARN, записанную ранее. Например,
arn:aws::iam::1234567890:role/github-audit-log-streaming-role
.
- В разделе "Контейнер" введите имя контейнера, в который нужно выполнять потоковую передачу. Например,
-
Нажмите кнопку Проверить конечную точку, чтобы убедиться, что 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:
- На домашней странице выберите Учетные записи хранения.
- В разделе "Имя" щелкните имя учетной записи хранения, которую вы хотите использовать.
- В разделе "Хранилище данных" щелкните Контейнеры.
- Щелкните имя контейнера, который хотите использовать.
- На левой боковой панели в разделе "Параметры" щелкните Общие маркеры доступа.
- Выберите раскрывающееся меню Разрешения , а затем выберите
Create
иWrite
снимите флажок все остальные параметры. - Задайте дату окончания срока действия, соответствующую политике смены секретов.
- Щелкните Создать маркер SAS и URL-адрес.
- Скопируйте значение отображаемого поля URL-адрес SAS BLOB-объекта. Этот URL-адрес вы используете в GitHub.
В GitHub: 1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
Выберите раскрывающееся меню Настройка потока и щелкните Хранилище BLOB-объектов Azure.
-
На странице конфигурации введите URL-адрес SAS BLOB-объекта, скопированный в Azure. Поле Container (Контейнер) заполняется автоматически на основе URL-адреса.
-
Нажмите кнопку Check endpoint (Проверить конечную точку), чтобы убедиться, что GitHub может подключиться к конечной точке Хранилища BLOB-объектов Azure и записывать в нее.
-
После успешной проверки конечной точки щелкните Сохранить.
Настройка потоковой передачи в Центры событий Azure
Перед настройкой потока в GitHub необходимо иметь пространство имен концентратора событий в Microsoft Azure. Затем необходимо создать экземпляр концентратора событий в пространстве имен. При настройке потока потребуются сведения об этом экземпляре концентратора событий. Дополнительные сведения см. в статье Краткое руководство. Создание концентратора событий с помощью портала Azure документации Майкрософт.
Вам потребуется информация о двух значениях концентратора событий: имя экземпляра и строка подключения.
На портале Microsoft Azure:
- В верхней части страницы рядом с полем "Microsoft Azure" используйте поле поиска для поиска "Центры событий".
- Выберите Концентраторы событий. Здесь перечислены имена концентраторов событий.
- Запишите имя концентратора событий, в который требуется выполнить потоковую передачу. Щелкните концентратор событий.
- В меню слева выберите Пункт Политики общего доступа.
- Выберите политику общего доступа из списка политик или создайте новую политику.
- Скопируйте строку подключения из поля Строка подключения — первичный ключ .
В GitHub: 1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
Выберите раскрывающееся меню Настройка потока и щелкните Центры событий Azure.
-
На странице конфигурации введите:
- Имя экземпляра Центров событий Azure.
- Строка подключения.
-
Нажмите кнопку Check endpoint (Проверить конечную точку), чтобы убедиться, что GitHub может подключиться к конечной точке Центров событий Azure и записывать в нее.
-
После успешной проверки конечной точки щелкните Сохранить.
Настройка потоковой передачи в Datadog
Чтобы настроить потоковую передачу в Datadog, необходимо создать маркер клиента или ключ API в Datadog, а затем настроить потоковую передачу журнала аудита в GitHub Enterprise Cloud с помощью маркера для проверки подлинности. Вам не нужно создавать контейнер bucket или другой контейнер хранилища в Datadog.
После настройки потоковой передачи в Datadog можно просмотреть данные журнала аудита, отфильтровав их по github.audit.streaming. Дополнительные сведения см. в разделе Управление журналами.
-
Если у вас еще нет учетной записи Datadog, создайте ее.
-
В Datadog создайте маркер клиента или ключ API и нажмите кнопку Копировать ключ. Дополнительные сведения см. в разделе API и ключи приложений в документации по Datadog. 1. В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
Выберите раскрывающийся список Настройка потока и щелкните Datadog.
-
В поле Токен вставьте скопированный ранее маркер.
-
Выберите раскрывающееся меню Сайт и выберите свой сайт Datadog. Чтобы определить сайт Datadog, сравните URL-адрес Datadog с таблицей на сайтах Datadog в документации по Datadog.
-
Нажмите кнопку Проверить конечную точку, чтобы убедиться, что GitHub может подключиться к конечной точке Datadog и записывать в нее.
-
После успешной проверки конечной точки щелкните Сохранить.
-
Через несколько минут убедитесь, что данные журнала аудита отображаются на вкладке Журналы в Datadog. Если данные журнала аудита не отображаются, убедитесь, что маркер и сайт верны в GitHub.
Настройка потоковой передачи в Google Cloud Storage
Чтобы настроить потоковую передачу в Google Cloud Storage, необходимо создать учетную запись службы в Google Cloud с соответствующими учетными данными и разрешениями. Затем настроить потоковую передачу журналов аудита в GitHub Enterprise Cloud, используя данные для входа учетной записи службы для проверки подлинности.
-
Создайте учетную запись службы для Google Cloud. Не нужно настраивать управление доступом или роли IAM для учетной записи службы. Дополнительные сведения см. в статье Создание учетных записей служб и управление ими документации Google Cloud.
-
Создайте ключ JSON для учетной записи службы и безопасно его храните. Дополнительные сведения см. в статье Создание ключей учетной записи службы и управление ими документации Google Cloud.
-
Если вы еще не создали контейнер, сделайте это. Дополнительные сведения см. в статье Создание контейнеров хранилища документации Google Cloud.
-
Предоставьте учетной записи службы роль Storage Object Creator (Создатель объектов хранилища) для контейнера. Дополнительные сведения см. в статье Использование разрешений Cloud IAM документации Google Cloud.
-
В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
Выберите раскрывающееся меню Настройка потока и выберите Google Cloud Storage.
-
В поле Bucket (Контейнер) введите имя контейнера Google Cloud Storage.
-
В поле JSON Credentials (Учетные данные JSON) вставьте все содержимое файла для ключа JSON учетной записи службы.
-
Чтобы убедиться, что GitHub может подключиться к контейнеру Google Cloud Storage и записывать в него, нажмите кнопку Check endpoint (Проверить конечную точку).
-
После успешной проверки конечной точки щелкните Сохранить.
Настройка потоковой передачи в Splunk
Для потоковой передачи журналов аудита в конечную точку сборщика событий HTTP (HEC) Splunk необходимо убедиться, что эта конечная точка настроена для приема подключений HTTPS. Дополнительные сведения см. в статье Настройка и использование сборщика событий HTTP в Splunk Web документации Splunk.
-
В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
Выберите раскрывающееся меню Настройка потока и щелкните 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.com в течение семи дней, а затем экспортируются при распаку потока.
Datadog принимает только журналы за последние 18 часов. Если вы приостанавливаете поток в конечной точке Datadog более чем на 18 часов, вы рискуете потерять журналы, которые Datadog не примет после возобновления потоковой передачи.
-
В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
Справа от настроенного потока щелкните Приостановить поток.
-
Вы увидите сообщение с подтверждением. Нажмите кнопку Pause stream (Приостановить поток), чтобы подтвердить.
Когда приложение будет готово к повторному получению журналов аудита, нажмите кнопку Resume stream (Возобновить поток), чтобы перезапустить потоковую передачу журналов аудита.
Удаление потока журналов аудита
-
В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Потоковая передача журналов.
-
В разделе "Зона опасности" щелкните Удалить поток.
-
Вы увидите сообщение с подтверждением. Нажмите кнопку Delete stream (Удалить поток), чтобы подтвердить.
Включение потоковой передачи журналов аудита для запросов API
Примечание: В настоящее время эта функция находится в общедоступной бета-версии и может быть изменена.
-
В правом верхнем углу GitHub.com щелкните фотографию профиля и выберите Ваши предприятия.
-
В списке предприятий щелкните предприятие, которое требуется просмотреть.
-
На боковой панели корпоративной учетной записи щелкните Параметры. 1. В разделе " Параметры щелкните Журнал аудита.
-
В разделе "Журнал аудита" щелкните Параметры.
-
В разделе "Запросы API" выберите Включить события запросов API.