Поделиться через


CI/CD в сканировании конвейера с помощью Defender для Cloud CLI

Интерфейс командной строки Microsoft Defender для облака (Defender для Cloud CLI) позволяет внедрять проверку безопасности непосредственно в рабочие процессы непрерывной интеграции и непрерывного развертывания (CI/CD). Интерфейс командной строки управляет сканерами безопасности и может выполняться локально для разработчиков.

Ключевые возможности

  • Оценка уязвимостей образа контейнера и автоматическое внедрение в Cloud Security Explorer.
  • Унифицированный кроссплатформенный интерфейс командной строки, который работает с любыми инструментами CI/CD.
  • Выходные данные SARIF, соответствующие стандартам, которые интегрируются с аннотациями к запросам на вытягивание и порогами качества.
  • Проверка подлинности, основанная на токенах, охватывает одну подписку Azure для детализированного контроля или аутентификацию через Azure DevOps Connector.

Предпосылки

  • Подписка Azure с Defender для облака подключена. Если у вас еще нет учетной записи Azure, создайте ее бесплатно.

  • В Защитнике включен CSPM.

  • Один из следующих средств конвейера CI/CD: Azure Pipelines, GitHub Actions, Jenkins, BitBucket Pipelines, GitLab, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, Oracle DevOps services или AWS CodeBuild.

  • Терминал Windows или Linux/WSL для проверки локального рабочего стола.

  • Разрешение администратора безопасности для создания идентификатора клиента и секретных токенов при использовании аутентификации на основе токенов или наличие установленного соединителя Azure DevOps или GitHub при использовании аутентификации на основе соединителя.

Настройка проверки подлинности

Defender для Cloud CLI поддерживает два метода проверки подлинности для соответствия корпоративным методам безопасности. В настоящее время проверка подлинности на основе соединителя доступна и является предпочтительным методом проверки подлинности для Azure DevOps и GitHub.

  1. Проверка подлинности на основе коннектора
  2. Проверка подлинности на основе токенов

Настройка конвейера CI/CD

Выберите пример конфигурации, соответствующий платформе CI/CD и методу проверки подлинности.

Azure DevOps (аутентификация с использованием соединителя)

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

GitHub (проверка подлинности на основе токенов)

- 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 (проверка подлинности на основе токенов)

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}'
      }
    }
  }
}