Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung werden Sie mit den Schritten eingeführt, die zum Konfigurieren von Dependabot und Copacetic erforderlich sind, wodurch Sie Softwareabhängigkeitsupdates automatisieren und die Sicherheit von Containerimages in einer sicheren Lieferkettenumgebung stärken können. Mithilfe dieser Tools können Sie sicherstellen, dass Ihre Containerimages immer aktuell und sicher sind.
In dieser Schnellstartanleitung wird Folgendes vermittelt:
- Aktualisieren Von Containerimageabhängigkeiten und Sicherheit mithilfe von Dependabot.
- Dependabot automatisiert den Prozess, ihre Containerimageabhängigkeiten auf dem neuesten Stand zu halten, wodurch das Risiko von Sicherheitsrisiken verringert wird.
- Überwachen, Scannen und Patchen von Containerimages kontinuierlich mithilfe von Copacetic.
- Copacetic bietet fortlaufende Überwachung und Überprüfung Ihrer Containerimages, um sicherzustellen, dass sie sicher sind und mit bekannten Sicherheitsrisiken gepatcht werden.
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Die neueste Version der Azure CLI wurde installiert und für Ihr Abonnement konfiguriert.
- Eine vorhandene Azure Container Registry (ACR) in Ihrem Abonnement.
Aktualisieren von Containerimageabhängigkeiten und Sicherheit mithilfe von Dependabot
Dependabot ist ein Tool, mit dem der Prozess der Verwaltung von Softwareabhängigkeiten auf dem neuesten Stand ist. Es funktioniert, indem Sie Ihr Repository auf veraltete Abhängigkeiten überprüfen und Pullanforderungen erstellen, um sie auf die neueste Version zu aktualisieren. Sie sucht täglich nach Updates für Ihre Abhängigkeiten und erstellt Pullanforderungen, um sie zu aktualisieren. Sie können Dependabot so konfigurieren, dass Pullanforderungen für alle Arten von Abhängigkeiten erstellt werden, einschließlich Docker-Images. Wir empfehlen die Verwendung von Dependabot, um Abhängigkeiten in Ihren Dockerfiles, Kubernetes-Yaml-Dateien und Helm-Diagrammwerten automatisch zu stoßen, um die neuesten Sicherheitspatches abzurufen und Sicherheitsrisiken zu reduzieren.
Verwenden von Dependabot mit GitHub
Befolgen Sie die Anleitungen und Empfehlungen für die effektive Verwaltung von Pullanforderungen, die von Dependabot ausgelöst werden, mithilfe von GitHub-Aktionen, um die Leistung von Dependabot zu verbessern und häufige Dependabot-Fehler zu beheben.
- Richten Sie Dependabot hier mit GitHub ein.
Verwenden von Dependabot mit Azure DevOps
Befolgen Sie die Anweisungen zum Konfigurieren von Dependabot mit Azure DevOps, um sicherzustellen, dass Ihre Containerimageabhängigkeiten Standard mit den neuesten Versionen und Sicherheitsverbesserungen auf dem neuesten Stand sind.
- Berechtigungen erteilen: Erstellen Sie ein Dienstkonto mit dem Namen
YOUR-PROJECT-NAME Build Service (YOUR-ORGANIZATION-NAME), und erteilen Sie ihm die folgenden Berechtigungen:
- Push erzwingen
- Zu Pull-Requests beitragen
- Verzweigung erstellen

Stellen Sie sicher, dass Sie die tatsächlichen Namen Ihres Projekts und Ihrer Organisation ersetzenYOUR-PROJECT-NAME.YOUR-ORGANIZATION-NAME
Configure Dependabot: To configure Dependabot, add a
dependabot.ymlconfiguration file to your repository. Hier ist ein Beispiel dafür, wie Ihre Konfigurationsdatei aussehen kann:version: 2 updates: - package-ecosystem: "docker" directory: "/" assignees: - "dependabot"
Diese Konfiguration richtet Dependabot für ein Projekt ein, das Docker verwendet, wobei angegeben wird, dass sich das Stammverzeichnis ("/") befindet, in dem sich die Docker-Dateien befinden und Dependabot zum Behandeln der Updates zuweisen. Sie können die Konfiguration an die Anforderungen Ihres Projekts anpassen.
Erstellen Sie eine Azure DevOps-Pipeline: Um eine Azure DevOps-Pipeline zu erstellen, fügen Sie Ihrem Repository eine
azure-pipeline.ymlDatei mit den folgenden Inhalten hinzu: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 }
Führen Sie die Pipeline aus: Erstellen und Überprüfen der neuen ADO-Pipeline aus der obigen
azure-pipelines.yamlDatei.
Dependabot kann Containerimageabhängigkeiten in verschiedenen Szenarien aktualisieren, z. B.:
- Dockerfile
- Kubernetes YAML
- Helm values.yaml
Hinweis
Mit der Syntax kann Dependabot Containerimageabhängigkeiten innerhalb Ihrer Konfigurationsdateien identifizieren und aktualisieren, um sicherzustellen, dass Sie mit den neuesten Versionen und Sicherheitspatches auf dem neuesten Stand bleiben.
Wenn Sie Bilder in Ihren Konfigurationsdateien angeben, verwenden Sie die folgende Syntax:
# 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
Alternativ können Sie für Helm values.yamldas Feld die version Bildversion angeben:
foo:
image:
repository: sql/sql
version: 1.2.3
Fortlaufendes Überwachen, Scannen und Patchen von Containerimages mit Copacetic
Copacetic (copa) ist ein von Microsoft unterstütztes CNCF Open-Source-Projekt, das Sicherheitsrisiken des Linux-Betriebssystempakets direkt in Containerimages patches, da die Ergebnisse der Sicherheitsrisikoüberprüfung von beliebten Scannertools vorliegen. Copacetic ermöglicht es, Container schnell zu patchen, ohne für eine vollständige Neuerstellung vorgelagert zu werden. Dadurch können die Containerimages schnell in die Produktion erneut bereitgestellt werden. Copacetic ist nur für Linux-Betriebssystemrisiken vorgesehen. Bei Sicherheitsrisiken auf App-Ebene müssen Patches ausgeführt werden, bevor das Image erstellt wird.
Verwenden von Copacetic
Befolgen Sie die Schnellstartanleitung für Copacetic, um Containerimages zu patchen, indem Sie Die Ergebnisse der Sicherheitsrisikoüberprüfung verwenden.
Überprüfen Sie die Beispiel-ADO-Pipeline für eine Beispielkonfigurationsdatei der Azure DevOps-Pipeline für die Verwendung von Copacetic. Die Pipeline wurde entwickelt, um Copacetic in Ihren CI/CD-Workflow zu integrieren, sodass eine kontinuierliche Überwachung, Überprüfung und Patching von Containerimages für Sicherheitsrisiken ermöglicht wird.
Copacetic kann auch in Github Actions-Workflows integriert werden, um Imagerisiken mithilfe der Copacetic-Aktion zu patchen. Mit dieser Aktion wird eine Reihe von festgelegten Bildern für ein Repository mithilfe der zugehörigen Sicherheitsrisikenberichte gepatcht.