Rychlý start: Aktualizace a zabezpečení závislostí imagí kontejneru pomocí Dependabot a Copacetic
V tomto rychlém startu se seznámíte s kroky nezbytnými ke konfiguraci Dependabot a Copacetic, což vám pomůže automatizovat aktualizace závislostí softwaru a posílit zabezpečení imagí kontejnerů v zabezpečeném prostředí dodavatelského řetězce. Pomocí těchto nástrojů můžete zajistit, aby image kontejnerů byly vždy aktuální a zabezpečené.
V tomto rychlém startu se naučíte:
- Aktualizujte závislosti imagí kontejneru a zabezpečení pomocí Dependabotu.
- Dependabot automatizuje proces udržování závislostí imagí kontejnerů v aktualizovaném stavu a snižuje riziko ohrožení zabezpečení.
- Nepřetržitě monitorujte, kontrolujte a opravujte image kontejnerů pomocí Copacetic.
- Copacetic poskytuje průběžné monitorování a kontrolu imagí kontejnerů a zajišťuje jejich zabezpečení a opravy proti známým ohrožením zabezpečení.
Požadavky
- Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
- Nainstalovaná a nakonfigurovaná nejnovější verze Azure CLI pro vaše předplatné
- Existující služba Azure Container Registry (ACR) ve vašem předplatném.
Aktualizace závislostí imagí kontejneru a zabezpečení pomocí Dependabotu
Dependabot je nástroj, který automatizuje proces udržování softwarových závislostí v aktualizovaném stavu. Funguje to tak, že v úložišti vyhledáte zastaralé závislosti a vytvoříte žádosti o přijetí změn, abyste je aktualizovali na nejnovější verzi. Každý den kontroluje aktualizace závislostí a vytváří žádosti o přijetí změn, které je aktualizují. Dependabot můžete nakonfigurovat tak, aby vytvářel žádosti o přijetí změn pro všechny typy závislostí, včetně imagí Dockeru. Pokud chcete získat nejnovější opravy zabezpečení a snížit rizika zabezpečení, doporučujeme použít dependabot k automatickému přehánění závislostí v souborech Dockerfiles, souborů yaml souborů yaml a hodnot chartů Helm.
Použití Dependabotu s GitHubem
Postupujte podle pokynů a doporučení pro efektivní správu žádostí o přijetí změn vyvolaných dependabotem, pomocí GitHub Actions vylepšete výkon Dependabotu a vyřešte běžné chyby Dependabot.
- Tady nastavte Dependabot s GitHubem .
Použití Dependabotu s Azure DevOps
Podle pokynů nakonfigurujte Dependabot s Azure DevOps a zajistěte, aby závislosti imagí kontejneru zůstaly aktuální s nejnovějšími verzemi a vylepšeními zabezpečení.
- Udělení oprávnění: Vytvořte účet služby s názvem
YOUR-PROJECT-NAME Build Service (YOUR-ORGANIZATION-NAME)
a udělte mu následující oprávnění:
- Vynucení nabízení
- Přispívat k žádostem o odeslání
- Vytvářet větve
Nezapomeňte nahradit YOUR-PROJECT-NAME
a YOUR-ORGANIZATION-NAME
nahradit skutečnými názvy projektu a organizace.
Konfigurace Dependabot: Pokud chcete nakonfigurovat Dependabot, přidejte
dependabot.yml
do úložiště konfigurační soubor. Tady je příklad toho, jak může konfigurační soubor vypadat:version: 2 updates: - package-ecosystem: "docker" directory: "/" assignees: - "dependabot"
Tato konfigurace nastaví Dependabot pro projekt, který používá Docker, a určí, že kořenový adresář ("/") je umístění souborů Dockeru a přiřazení Dependabot pro zpracování aktualizací. Konfiguraci můžete přizpůsobit tak, aby vyhovovala potřebám projektu.
Vytvořte kanál Azure DevOps: Pokud chcete vytvořit kanál Azure DevOps, přidejte
azure-pipeline.yml
do úložiště soubor s následujícím obsahem:schedules: - cron: '0 14 * * *' displayName: 'Every day at 7am PST' branches: include: [main] always: true trigger: none jobs: - job: steps: - script: | git clone https://github.com/dependabot/dependabot-core.git cd dependabot-core DOCKER_BUILDKIT=1 docker build \ --build-arg "USER_UID=$(id -u)" \ --build-arg "USER_GID=$(id -g)" \ -t "dependabot/dependabot-core" . cd .. displayName: build dependabot-core Docker image - script: | git clone https://github.com/dependabot/dependabot-script.git cd dependabot-script docker run -v "$(pwd):/home/dependabot/dependabot-script" -w /home/dependabot/dependabot-script dependabot/dependabot-core bundle install -j 3 --path vendor displayName: install dependencies - script: | #!/bin/bash SYSTEM_COLLECTIONURI_TRIM=`echo "${SYSTEM_COLLECTIONURI:22}"` PROJECT_PATH="$SYSTEM_COLLECTIONURI_TRIM$SYSTEM_TEAMPROJECT/_git/$BUILD_REPOSITORY_NAME" echo "path: $PROJECT_PATH" docker run -v "$(pwd)/dependabot-script:/home/dependabot/dependabot-script" \ -w '/home/dependabot/dependabot-script' \ -e AZURE_ACCESS_TOKEN=$(System.AccessToken) \ -e PACKAGE_MANAGER=docker \ -e PROJECT_PATH=$PROJECT_PATH \ -e DIRECTORY_PATH=/ \ -e OPTIONS="$OPTIONS" \ dependabot/dependabot-core bundle exec ruby ./generic-update-script.rb displayName: "run dependabot" env: OPTIONS: | { "kubernetes_updates": true }
Spusťte kanál: Vytvořte a ověřte nový kanál ADO z výše uvedeného
azure-pipelines.yaml
souboru.
Dependabot může aktualizovat závislosti imagí kontejneru v různých scénářích, například:
- Dockerfile
- Kubernetes YAML
- Helm values.yaml
Poznámka:
Syntaxe umožňuje Dependabotu identifikovat a aktualizovat závislosti image kontejneru v konfiguračních souborech a zajistit tak aktuály nejnovější verze a opravy zabezpečení.
Při zadávání imagí v konfiguračních souborech použijte následující syntaxi:
# Dockerfile
foo:
image:
repository: sql/sql
tag: 1.2.3
registry: docker.io
# Helm values.yaml
foo:
image:
repository: sql/sql
tag: 1.2.3
registry: docker.io
Alternativně Helm values.yaml
můžete version
použít pole k určení verze image:
foo:
image:
repository: sql/sql
version: 1.2.3
Průběžné monitorování, prohledávání a opravy imagí kontejnerů pomocí Copacetic
Copacetic (copa) je opensourcový projekt CNCF založený na Microsoftu, který přímo opravuje chyby zabezpečení balíčku operačního systému Linux v imagích kontejnerů vzhledem k výsledkům kontroly ohrožení zabezpečení z oblíbených nástrojů skeneru. Copacetic umožňuje rychle opravovat kontejnery, aniž by se upstreamovat pro úplné opětovné sestavení. To pomůže imagím kontejnerů rychle znovu nasadit do produkčního prostředí. Copacetic je pouze pro chyby zabezpečení operačního systému Linux. V případě ohrožení zabezpečení na úrovni aplikace je potřeba před sestavením image provést opravy.
Použití kopacetické
Postupujte podle úvodní příručky pro Copacetic a postupujte podle pokynů k opravě imagí kontejnerů s využitím výsledků kontroly ohrožení zabezpečení.
Projděte si ukázkový kanál ADO pro ukázkový konfigurační soubor kanálu Azure DevOps pro použití Copacetic. Kanál je navržený tak, aby integrovali Copacetic do pracovního postupu CI/CD, což umožňuje nepřetržité monitorování, kontrolu a opravy imagí kontejnerů kvůli ohrožením zabezpečení.
Copacetic je také možné integrovat do pracovních postupů GitHub Actions k opravě ohrožení zabezpečení obrázků pomocí copacetické akce. Tato akce opraví sadu určených imagí úložiště pomocí souvisejících sestav ohrožení zabezpečení.