Skip to main content

Предоставление доступа к частным реестрам функций безопасности

Если ваша организация использует частные реестры, вы можете улучшить code scanning результаты анализа и поддерживать Dependabot больше зависимостей, настроив доступ к этим реестрам.

О важности предоставления доступа к частным реестрам

Когда код в репозитории содержит зависимости, хранящиеся в приватном реестре, некоторым функциям безопасности необходим доступ к реестру для эффективной работы. Без доступа ко всем зависимостям репозитория эффективность Code Quality (public preview), code scanning по умолчанию и Dependabot ограничена.

          Code scanning Доступ к частным реестрам по умолчанию

Если вы не определите доступ к частным реестрам, которые использует ваша организация, то code scanning будут собирать необходимые данные только из зависимостей, доступных в публичных реестрах. В большинстве случаев это достаточно для обнаружения большинства уязвимостей. Однако в некоторых случаях отсутствие доступа может привести к ложноотрицательным результатам. Другими словами, code scanning он не может обнаружить уязвимость в коде, потому что не обладает всей необходимой информацией для анализа кода. Например, некоторые пути потоков данных могут не быть обнаружены, потому что шаги определены в зависимостях, которые недоступны и code scanning не знают, как их интерпретировать.

Когда вы настраиваете доступ к частным реестрам, используемым в вашей организации, code scanning вы получаете доступ ко всей необходимой информации и гораздо реже упускаете уязвимость.

          Code scanning Настройка по умолчанию поддерживает следующие типы реестров:
LanguageТипы реестра
C#NuGet Feed
GoGOPROXY сервер, Git Source
JavaРепозиторий Maven

Совет

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

Определение доступа к реестру для code scanning настройки по умолчанию

Вам нужно быть владелец организации для настройки доступа к частным реестрам в пользовательском интерфейсе. Вы также можете использовать REST API с владельцем организации или {read,write}_org_private_registries разрешениями.

  1.        **На вкладке "Параметры" организации прокрутите вниз до раздела "Безопасность" и выберите **секреты** и переменные**.
    
  2. В развернутом списке секретов и переменных выберите частные реестры , чтобы отобразить страницу "Частные реестры".

  3. Выберите новый частный реестр , чтобы добавить сведения о доступе для частного реестра.

  4.        **Используйте поля URL-адреса** и **типа** для определения расположения и типа реестра:
    
    • URL-адрес — это расположение, в котором осуществляется доступ к частному реестру. Например, чтобы использовать GitHub Packages реестр для NuGet: https://nuget.pkg.github.com/ORGANIZATION/index.json, где ORGANIZATION — название вашей организации на GitHub.
    • Тип реестра.
  5. Выберите метод аутентификации для реестра:

    • Токен: Введите токен, используемый для аутентификации в реестре.

    • Имя пользователя и пароль: Введите имя пользователя и пароль, используемые для аутентификации в реестре. Некоторые типы токенов аутентификации, такие GitHubPersonal Access Tokenкак , привязаны к конкретной идентификации пользователя. Выберите этот вариант и введите соответствующее имя пользователя как имя пользователя и токен как пароль.

    • OIDC (OpenID Connect): используйте кратковременные учетные данные от облачного провайдера идентификации вместо хранения долгоживущих секретов. При выборе этой опции выберите поставщика и заполните поля, соответствующие конкретному провайдеру. Для получения дополнительной информации см. раздел «Конфигурирование аутентификации OIDC для приватного реестра».

  6. Определите, какие репозитории в организации могут получить доступ к частному реестру, используя следующие сведения: все, частные и внутренние или выбранные репозитории.

  7. Завершив определение частного реестра, нажмите кнопку "Добавить реестр ", чтобы сохранить сведения о реестре.

Совет

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

Включение code scanning настройки по умолчанию для использования определения реестра

При включении code scanning настройки по умолчанию для репозитория или группы репозиториев, GitHub проверяется, имеют ли репозитории доступ к существующим частным реестрам. Если в репозитории доступны частные реестры, code scanning при анализе будут использоваться соответствующие определения.

При первой настройке приватных реестров нужно отключить и заново включить code scanning настройки по умолчанию для любых репозиториев, которые вы хотите использовать новое определение. Новые или измененные конфигурации будут автоматически выбраны при последующих запусках.

Для языков, поддерживающих частные реестры пакетов, code scanning настройка по умолчанию будет создавать информацию о Страница состояния средства. Это показывает, какие конфигурации приватного реестра были доступны для анализа, но не показывает, удалось ли code scanning по умолчанию успешно скачать приватные зависимости из них. Дополнительные сведения см. в Страница состояния средстваразделе Используйте страницу статуса инструмента для сканирования кода.

В качестве альтернативы можно проверить, успешно ли использовались частные реестры с code scanning помощью анализа, посмотрев в журнале действий (см. Логи сканирования кода).

          Code scanning Расширенный доступ к частным реестрам

          Code scanning Расширенная настройка использует любые приватные реестры, доступные для рабочего процесса, который запускает анализ с помощью `codeql-action`. У него нет доступа к частным реестрам уровня организации, используемым по умолчанию.

Для скомпилированных языков codeql-action необходимо наблюдать за сборкой кода. Можно изменить существующий рабочий процесс сборки, чтобы также запустить codeql-action или создать новый рабочий процесс, который создает рабочую версию кода, а также запускает его codeql-action.

Все частные реестры, используемые сборкой, также должны быть доступны рабочему процессу, который выполняется codeql-action. Дополнительные сведения о расширенной настройке см. в разделе Настройка расширенной настройки для сканирования кода.

          Dependabot Обновляет доступ к частным реестрам

          Dependabot может использовать любой из частных реестров на уровне организации, а также любые приватные реестры, `dependabot.yml` определённые в файле репозитории.

          Dependabot Нельзя проверить безопасность или обновления версии кода, хранящегося в частном реестре, если не может получить доступ к нему. Если вы не настроите доступ к приватному реестру, Dependabot то нельзя вызвать pull request-запросы на обновление зависимостей, хранящихся в реестре.

Когда вы настраиваете доступ к одному или нескольким частным реестрам, Dependabot можете предлагать pull requests для обновления уязвимой зависимости или сохранения зависимости, см. Настройка доступа к частным реестрам для Dependabot и Руководство по настройке частных реестров для Dependabot.

Конфигурирование аутентификации OIDC для приватного реестра

Аутентификация OIDC (OpenID Connect) позволяет Dependabot использовать кратковременные учетные данные вашего облачного провайдера для доступа к частным реестрам, устраняя необходимость хранить долговременные секреты. С OIDC учетные данные генерируются динамически для каждого Dependabot задания обновления. Вы должны настроить доверительные отношения между вашим облачным провайдером и GitHub до Dependabot того, как он сможет аутентифицироваться.

Примечание.

Аутентификация OIDC для частных реестров на уровне организаций в настоящее время поддерживается .Dependabot По умолчанию он не поддерживается code scanning .

Когда вы выбираете OIDC в качестве метода аутентификации для частного реестра, выберите одного из поддерживаемых провайдеров и заполните необходимые поля:

  • Azure: Введите ID арендатора (Azure идентификатор арендатора AD) и идентификатор клиента (Azure идентификатор клиента приложения AD). Необходимо настроить федеративную учетную запись в Azure AD, которая доверяет провайдеру OIDC GitHub.
  • AWS CodeArtifact: Введите регион AWS, идентификатор аккаунта (AWS account ID), имя роли (имя роли IAM), домен (домен CodeArtifact) и владельца домена (владелец домена CodeArtifact / AWS аккаунт). Вы можете по желанию предоставить аудиторию. Вам необходимо настроить провайдера идентификации IAM OIDC в AWS, который доверяет GitHubпровайдеру OIDC.
  • JFrog Artifactory: Введите имя провайдера OIDC. Вы можете по желанию указать имя для отображения аудитории и идентичности.

Тип аутентификации в частном реестре нельзя изменять после создания. Чтобы переключиться с OIDC на другой метод аутентификации или наоборот, удалите существующий реестр и создайте новый.

Для получения дополнительной информации о том, как работает OIDC, см. OpenID Connect.

          Code Quality Доступ к частным реестрам

Примечание.

GitHub Code Quality в настоящее время находится в public preview и может быть изменен. Во время public preview, Code Quality не будут оплачиваться, хотя Code Quality сканирование займет GitHub Actions минут.

          GitHub Code Quality может использовать любой из частных реестров организационного уровня, доступных при включении репозитория.

Если вы добавляете новые реестры в организацию, вам нужно отключить и повторно включить Code Quality их, чтобы анализ обнаружил и использовал новые реестры.

Сведения о настройке доступа к частному реестру для организации см. в статье Определение доступа к реестру для настройки code scanning по умолчанию.