Интеграция с 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 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.
См. также¶
- Общее описание OSA Proxy
- Настройка сервиса OSA Proxy
- Поддерживаемые протоколы OSA Proxy
- Настройка Redis и кэширования OSA Proxy