Udostępnij przez


CI/CD w skanowaniu przepływów za pomocą interfejsu wiersza polecenia Defender for Cloud

Interfejs wiersza polecenia usługi Microsoft Defender for Cloud (interfejs wiersza polecenia usługi Defender for Cloud) umożliwia osadzanie skanowania zabezpieczeń bezpośrednio w przepływach pracy ciągłej integracji i ciągłego wdrażania (CI/CD). Interfejs wiersza polecenia koordynuje skanery zabezpieczeń i może działać lokalnie na maszynach deweloperów.

Kluczowe możliwości

  • Ocena podatności obrazu kontenera i automatyczna integracja z Eksploratorem Bezpieczeństwa w Chmurze.
  • Ujednolicony, międzyplatformowy interfejs wiersza polecenia współdziałający z dowolnymi narzędziami ciągłej integracji/ciągłego wdrażania.
  • Wynik SARIF oparty na standardach, integrujący się z adnotacjami pull requestów i kontrolami jakości.
  • Uwierzytelnianie oparte na tokenach ograniczone do pojedynczej subskrypcji platformy Azure na potrzeby szczegółowej kontroli lub uwierzytelniania łącznika usługi Azure DevOps.

Wymagania wstępne

  • Subskrypcja platformy Azure z dołączonym Defender dla Chmury. Jeśli nie masz jeszcze konta platformy Azure, utwórz je bezpłatnie.

  • Usługa Defender CSPM jest włączona.

  • Jedno z następujących narzędzi do CI/CD potoków: Azure Pipelines, GitHub Actions, Jenkins, BitBucket Pipelines, GitLab, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, usługi Oracle DevOps lub AWS CodeBuild.

  • Terminal systemu Windows lub Linux/WSL na potrzeby skanowania pulpitu lokalnego.

  • Uprawnienia administratora zabezpieczeń do tworzenia identyfikatora klienta i tokenów tajnych w przypadku korzystania z uwierzytelniania opartego na tokenach lub łącznika usługi Azure DevOps lub GitHub ustanowionego w przypadku korzystania z uwierzytelniania opartego na łączniku.

Ustawienia uwierzytelniania

Interfejs wiersza polecenia usługi Defender for Cloud obsługuje dwie metody uwierzytelniania zgodne z praktykami zabezpieczeń przedsiębiorstwa. Uwierzytelnianie oparte na łącznikach jest obecnie dostępne i preferowana metoda uwierzytelniania dla usług Azure DevOps i GitHub.

  1. Uwierzytelnianie oparte na łączniku
  2. Uwierzytelnianie oparte na tokenach

Skonfiguruj swój potok ciągłej integracji/ciągłego wdrażania

Wybierz przykład konfiguracji zgodny z platformą CI/CD i metodą uwierzytelniania.

Azure DevOps (uwierzytelnianie oparte na łączniku)

- task: MicrosoftDefenderCLI@2
    inputs:
      command: 'run'
      scanType: 'image'
      imageName: $(ImageName)
      break: false

GitHub (uwierzytelnianie oparte na tokenach)

- name: Download Defender for Cloud CLI
  run: |
    curl -L -o defender "https://aka.ms/defender-cli_linux-x64" && chmod +x defender
- name: Run Defender for Cloud CLI Scan (Built)
  run: |
    #replace image-name with the Container image built      
    ./defender scan image '${{ image-name }}'
  continue-on-error: true
  env:
    DEFENDER_TENANT_ID: ${{ secrets.DEFENDER_TENANT_ID }}
    DEFENDER_CLIENT_ID: ${{ secrets.DEFENDER_CLIENT_ID }}
    DEFENDER_CLIENT_SECRET: ${{ secrets.DEFENDER_CLIENT_SECRET }}

Jenkins (uwierzytelnianie oparte na tokenach)

environment {
  DEFENDER_TENANT_ID=credentials('defender-tenant-id')
  DEFENDER_CLIENT_ID=credentials('defender-client-id')
  DEFENDER_CLIENT_SECRET=credentials('defender-client-secret')
} 

stage('Download & Run Defender for Cloud CLI') {
  steps {
    script {
      node {
        sh 'curl -L -o defender "https://aka.ms/defender-cli_linux-x64"'
        sh 'chmod +x defender'
        sh './defender scan image ${IMAGE_NAME}'
      }
    }
  }
}