Integrieren der Defender for Cloud-CLI in CI/CD-Pipelines
Die Defender for Cloud-Befehlszeilenschnittstelle (Command Line Interface, CLI) ist eine Anwendung, die Sie in CI/CD-Pipelines (Continuous Integration und Continuous Deployment) verwenden können. Sie führt statische Analysetools aus und verbindet Code mit Clouddiensten. Sie können die Defender for Cloud-CLI in jedem Buildprozess verwenden, um Images mit integrierten Sicherheitsscannern auf Sicherheitsrisiken zu überprüfen. Sie sendet die Scanergebnisse an das Defender for Cloud-Portal. Der Cloudsicherheits-Explorer kann dann auf das Containerimage und seine Sicherheitsrisiken zugreifen.
Voraussetzungen
Ein Azure-Abonnement, in das Defender for Cloud integriert ist. Wenn Sie noch kein Azure-Konto besitzen, erstellen Sie ein kostenloses Konto.
Eins der folgenden CI/CD-Pipelinetools: Jenkins, BitBucket Pipelines, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, Oracle DevOps Services, AWS CodeBuild
Für Azure DevOps wurde die Microsoft Security DevOps (MSDO)-Erweiterung in der Azure DevOps-Organisation installiert.
Defender CSPM muss aktiviert sein.
Berechtigung als Sicherheitsadministrator zum Erstellen der Client-ID und des Geheimnisses.
Setup
In den folgenden Abschnitten wird erläutert, wie Sie Client-ID und Geheimnisse abrufen, das CI/CD-Pipelineskript aktualisieren und Umgebungsvariablen zur CI/CD-Pipeline hinzufügen.
Abrufen des API-Tokens
Damit Sicherheitsdaten aus der Defender for Cloud-CLI an das Defender for Cloud-Back-End übergeben werden können, muss der Sicherheitsadministrator in Defender for Cloud zunächst einen API-Schlüssel aus Defender for Cloud für die Authentifizierung generieren.
Wenn Token generiert werden, wählt der Sicherheitsadministrator einen Abonnementbereich aus, der dem Token zugeordnet werden soll. Die Daten, die aus diesem Token in Defender for Cloud gepusht werden, sind auf das Abonnement festgelegt, dem das Token zugeordnet ist. Diese API-Token sind unveränderlich und können nur generiert/gelöscht werden.
Von dort aus muss der Sicherheitsadministrator das Token sicher an Entwickler übergeben, damit es der CI/CD-Pipeline hinzugefügt werden kann.
Melden Sie sich beim Azure-Portal an.
Navigieren Sie zu Microsoft Defender for Cloud>Verwaltung>Umgebungseinstellungen>Integrationen.
Wählen Sie Integration hinzufügen und dann DevOps-Erfassung aus.
Geben Sie einen aussagekräftigen Namen für das Token ein, und der ausgewählte Mandant speichert die Tokeninformationen. Der geheime Clientschlüssel wird generiert, wenn Sie eine Beschreibung für das Geheimnis und das Ablaufdatum eingeben.
Aktivieren Sie das Token unter Konfiguration, und erstellen Sie die Token.
Kopieren Sie die einzelnen Token. Sie können nicht bearbeitet oder abgerufen werden, nachdem Sie OK/ ausgewählt haben.
In der Tabelle Integrationen wird die neue Erfassung angezeigt.
Aktualisieren des CI/CD-Pipelineskripts
Jedes CI/CD-Pipelinetool hat eine andere Syntax. Dieser Code ist ein Beispiel für eine Bitbucket-Pipeline:
image: atlassian/default-image:3
pipelines:
default:
- parallel:
- step:
name: 'MSDO trivy test'
script:
- curl -L -o ./msdo_linux.zip https://www.nuget.org/api/v2/package/Microsoft.Security.DevOps.Cli.linux-x64/
- unzip ./msdo_linux.zip
- chmod +x tools/guardian
- chmod +x tools/Microsoft.Guardian.Cli
- ls -lah .
- tools/guardian init --force
- tools/guardian run -t trivy --export-file ./ubuntu-test.sarif --publish-file-folder-path ./ubuntu-test.sarif
Pipelinevariablen
Nachdem die Token sicher empfangen wurden, muss der Entwickler eine Umgebungsvariable für den Schlüssel konfigurieren. Die Umgebungsvariable wird über das Shellskript, das der Entwickler über curl erhalten kann, an die CLI übergeben. Oder er kann das Shellskript manuell in das Repository kopieren.
Name | Wert |
---|---|
GDN_PUSH_TOKEN_CLIENT_ID | <Client-ID> |
GDN_PUSH_TOKEN_CLIENT_ID | <Client-ID> |
GDN_PUSH_TOKEN_CLIENT_SECRET | <Geheimer Clientschlüssel> |
GDN_PIPELINENAME | bitbucket, jenkins, gcp, bamboo, circle, travis, teamcity, oci, aws |
GDN_PUSH_TOKEN_TENANT_ID | <Mandanten-ID> |
Überprüfen der Ergebnisse im Cloudsicherheits-Explorer
Navigieren Sie nach der erfolgreichen Ausführung der Pipeline erneut zu Microsoft Defender for Cloud.
Wählen Sie im Defender for Cloud-Menü den Cloudsicherheits-Explorer aus.
Wählen Sie das Dropdownmenü Ressourcentypen auswählen und anschließend DevOps und Fertig aus.
Wählen Sie das Symbol + aus, um neue Suchkriterien hinzuzufügen.
Wählen Sie die Dropdownliste Bedingung auswählen aus. Wählen Sie anschließend Daten und dann Pushes aus.
Wählen Sie das Dropdownmenü Ressourcentypen auswählen aus. Wählen Sie dann Container und Containerimages und anschließend Fertig aus.
Wählen Sie den Bereich aus, der während der Erstellung der Integration in den Umgebungseinstellungen ausgewählt wurde.
Klicken Sie auf Suchen.
Sehen Sie sich die Ergebnisse der Zuordnung zwischen Pipeline und Image an.
Korrelieren mit überwachten Containern
Geben Sie im Cloudsicherheits-Explorer die folgende Abfrage ein: CI/CD-Pipeline >Pipeline + Containerimages >Enthalten in + Containerregistrierungen (Gruppe).
Überprüfen Sie die Ressourcennamen, um die Containerzuordnung anzuzeigen.