Перейти к содержанию

Интеграция с CodeScoring.OSA

CodeScoring.Save можно использовать как upstream-репозиторий для OSA Proxy. В такой схеме пакетные менеджеры обращаются к OSA Proxy, OSA Proxy проверяет запрашиваемые компоненты через CodeScoring.OSA и при необходимости перенаправляет разрешенные запросы в proxy-репозиторий Save.

CodeScoring.Save не подключается к OSA Proxy через отдельный API интеграции. Для проверки загружаемых компонентов пакетные менеджеры должны быть настроены на работу через OSA Proxy, а сам OSA Proxy должен быть настроен на соответствующий upstream-репозиторий.

Если upstream-репозиторием выступает proxy-репозиторий CodeScoring.Save, его URL указывается в поле registry репозитория OSA Proxy. В этом сценарии трафик проходит по цепочке:

Пакетный менеджер -> OSA Proxy -> CodeScoring.Save proxy-репозиторий -> внешний upstream

OSA Proxy выполняет сканирование пакетов и манифестов, обращается к CodeScoring API для проверки политик и блокирует небезопасные компоненты в зависимости от выбранного work-mode.

Что настраивается в OSA Proxy

Конфигурация выполняется в сервисе OSA Proxy. Для каждого поддерживаемого формата включается соответствующая секция и задаётся список репозиториев:

maven:
  enabled: true
  repository:
    - name: save-maven
      scan-manifest: true
      scan-package: true
      work-mode: strict_wait
      url-encoded-config: true
      registry: https://save.example.com/maven/<project>/maven-central-proxy

npm:
  enabled: true
  repository:
    - name: save-npm
      scan-manifest: true
      scan-package: true
      work-mode: strict_wait
      url-encoded-config: true
      registry: https://save.example.com/npm/<project>/npmjs-proxy

codescoring:
  url: https://codescoring.example.com
  token: "<API_TOKEN>"
  work-mode: strict_wait
  osa-proxy-url: https://osa-proxy.example.com
  block-on-codescoring-errors: true
  remove-blocked-versions: true
  block-status-code: 403

Для PyPI дополнительно указывается packages-registry, для Go — sumdb-registry, для Docker — auth-token-url, если upstream registry требует отдельный token service.

Режимы работы

Поведение проверки управляется параметром work-mode. Его можно задать глобально в секции codescoring или переопределить на уровне отдельного репозитория.

Поддерживаются режимы:

  • warmup — загрузка данных в кэш CodeScoring без блокировки компонентов;
  • spectator — загрузка данных в кэш CodeScoring без блокировки компонентов, с сохранением результатов запросов компонентов в платформе;
  • moderate — блокировка компонентов, не прошедших проверку политик; загрузка непросканированных компонентов разрешена;
  • strict — блокировка компонентов, не прошедших проверку политик; загрузка непросканированных компонентов запрещена;
  • strict_wait — блокировка компонентов, не прошедших проверку политик; для непросканированных компонентов выполняется ожидание проверки.

Ограничения

Проверка через OSA Proxy применяется к трафику, который проходит через OSA Proxy. Для hosted-репозиториев Save проверку нужно выполнять до публикации артефакта или выстраивать отдельный процесс контроля.

Политики безопасности настраиваются в CodeScoring. OSA Proxy использует CodeScoring API для сканирования компонентов, получения информации о пакетах и проверки политик, но не создаёт политики внутри Save.

См. также

Страница была полезна?