Speedtest - Kulichanin/speedtest GitHub Wiki

Speedtest

Сборка приложения с SBOM

SBOM (Software Bill of Materials) – это документ, который содержит полный перечень компонентов, библиотек и модулей, используемых в программном обеспечении. В контексте Docker, SBOM помогает отслеживать все зависимости и версии, используемые в контейнерных образах, что упрощает управление уязвимостями и соответствие нормативным требованиям.

Основные преимущества SBOM:

  • Прозрачность: Предоставляет детальную информацию о том, что входит в состав ПО, что важно для безопасности и соответствия требованиям. Управление уязвимостями: Помогает быстрее выявлять и устранять уязвимости, так как точно известно, какие компоненты подвержены рискам.
  • Соответствие требованиям: SBOM помогает соблюдать стандарты и законы, связанные с безопасностью ПО, такие как стандарты NIST и директивы по безопасности цепочки поставок.
  • Docker Scout может автоматически генерировать SBOM для образов, что значительно упрощает процесс управления безопасностью и отслеживания зависимостей в контейнерных средах.

Docker (docker driver) не поддерживает создание SBOM (Software Bill of Materials) через аттестации. Вам нужно использовать другой драйвер или включить использование хранилища изображений containerd.

Сборка с генерацией sbom

Стандартный sbom

To use the latest release of BuildKit, create a docker-container builder using buildx:

docker buildx create --use --name=buildkit-container --driver=docker-container
docker buildx build --sbom=true --tag harbor-192-168-1-20.nip.io/speedtest/app:0.1  --attest type=sbom .

Использую кастомный генератор необходимо переклюситься на containerd

Переключение на containerd

Убедитесь, что Docker использует containerd как хранилище образов.

Добавьте следующую строку в файл конфигурации Docker (/etc/docker/daemon.json):

{
  "features": {
    "containerd-snapshotter": true
  }
}

Перезапустите Docker:

sudo systemctl restart docker

Кастомный SBOM

docker build --tag harbor-192-168-1-20.nip.io/speedtest/app:sbom  --attest type=sbom,generator=docker/scout-sbom-indexer:latest .

Test db connect

mysql connect

kubectl exec -it mysql-x-x -- mysql -u speedtest -ppass -h 127.0.0.1 speedtest_db  --execute="SHOW DATABASES;"

Show envirement

kubectl exec -it mysql-x-x -- printenv | grep "MYSQL"

Сборка с генерацией sbom в registry

Иногда проще доверить Vulnerabilities и SBOM в private registry

docker build --tag harbor-192-168-1-20.nip.io/speedtest/app:vault --no-cache --push .

Create deploy with helm

Debug deploy

Get full deploy

helm template --debug speedtest ./

Get yaml template one element

helm template -s templates/deployment.yaml .

Push deploy

helm install speedtest speedtest/