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


Настройка развертываний репозитория (общедоступная предварительная версия)

Существует два основных способа настройки развертывания содержимого репозитория в рабочих областях Microsoft Sentinel. Каждый метод использует различные файлы и синтаксис, поэтому рассмотрим эти примеры, чтобы приступить к работе.

Метод настройки Описанные варианты развертывания
Рабочий процесс GitHub
Конвейер DevOps
Настройка триггера развертывания подключения
Настройка пути развертывания
Включение смарт-развертываний
Файлы конфигурации Управление приоритетом порядка развертываний содержимого
Выбор исключения определенных файлов содержимого из развертываний
Масштабирование развертываний в разных рабочих областях путем сопоставления файлов параметров с определенными файлами содержимого

Внимание

Функция Репозитории Microsoft Sentinel сейчас предоставляется в ПРЕДВАРИТЕЛЬНОЙ ВЕРСИИ. Дополнительные условия использования для предварительных версий Microsoft Azure см. в дополнительных юридических терминах, применимых к функциям Azure, которые находятся в бета-версии, предварительной версии или в противном случае еще не выпущены в общую доступность.

Необходимые компоненты

Чтобы настроить развертывание репозиториев, должно существовать подключение репозитория. Дополнительные сведения о создании подключения см. в статье "Развертывание пользовательского содержимого из репозитория". После подключения применяются следующие предварительные требования:

  • Доступ участника совместной работы к репозиторию GitHub или администратору проекта к репозиторию Azure DevOps
  • Включение GitHub Actions и Azure DevOps Pipelines.
  • Убедитесь, что пользовательские файлы содержимого, которые необходимо развернуть в рабочих областях, находятся в поддерживаемом формате. Поддерживаемые форматы см. в разделе "Планирование содержимого репозитория".

Дополнительные сведения о развернутых типах контента см. в разделе "Проверка содержимого".

Настройка рабочего процесса или конвейера

Рабочий процесс по умолчанию развертывает только содержимое, измененное с момента последнего развертывания, на основе фиксаций в репозитории. Настройте для настройки различных триггеров развертывания или развертывания содержимого исключительно из определенной корневой папки.

Выберите одну из следующих таблиц зависимости от вашего типа подключения.

Чтобы настроить рабочий процесс развертывания GitHub, выполните следующие действия.

  1. В GitHub перейдите в репозиторий и найдите рабочий процесс в каталоге github/workflows .

    Файл рабочего процесса — это файл YML, начинающийся с sentinel-deploy-xxxxx.yml. Откройте этот файл, и вы увидите в первой строке имя рабочего процесса, которое имеет следующее соглашение об именах по умолчанию: Deploy Content to <workspace-name> [<deployment-id>].

    Например: name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]

  2. Нажмите кнопку с изображением карандаша в правом верхнем углу страницы, чтобы открыть файл для редактирования, а затем измените развертывание следующим образом:

    • Чтобы изменить триггер развертывания, обновите в коде раздел on, описывающий событие, запускающее рабочий процесс.

      По умолчанию для этой конфигурации задано значение on: push, то есть рабочий процесс активируется при любой операции отправки в подключенную ветвь, включая изменение существующего и добавление нового содержимого в репозиторий. Например:

      on:
          push:
              branches: [ main ]
              paths:
              - `**`
              - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow
              - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
      

      Измените эти параметры, например, чтобы запланировать выполнение рабочего процесса периодически или объединить различные события рабочего процесса вместе.

      Дополнительные сведения см. в документации GitHub по настройке событий рабочего процесса.

    • Чтобы отключить интеллектуальные развертывания: поведение смарт-развертываний отличается от описанного триггера развертывания. Перейдите в раздел jobs рабочего процесса. Измените значение smartDeployment по умолчанию с true на false. После фиксации этого изменения функция интеллектуального развертывания отключена, а все будущие развертывания для этого подключения повторно разверните все соответствующие файлы содержимого репозитория в подключенных рабочих областях.

    • Чтобы изменить путь развертывания, выполните следующие действия.

      В конфигурации по умолчанию, показанной для on раздела, подстановочные знаки (**) в первой строке раздела paths указывают, что вся ветвь находится в пути для триггеров развертывания.

      Эта конфигурация по умолчанию означает, что рабочий процесс развертывания запускается всякий раз при отправке содержимого в любую часть ветви.

      В дальнейшем раздел jobs этого файла будет содержать следующую конфигурацию по умолчанию: directory: '${{ github.workspace }}'. Эта строка указывает, что вся ветвь GitHub находится в пути развертывания содержимого без фильтрации путей к папкам.

      Чтобы развернуть содержимое только из указанного пути к папке, добавьте его в конфигурацию paths и directory. Например, чтобы развернуть содержимое только из корневой папки с именем SentinelContent, обновите код следующим образом:

      paths:
      - `SentinelContent/**`
      - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow
      - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
      
      ...
          directory: '${{ github.workspace }}/SentinelContent'
      

Дополнительные сведения см. в документации GitHub по GitHub Actions и редактированию рабочих процессов GitHub.

Внимание

В GitHub и Azure DevOps убедитесь, что путь триггера соответствует каталогам путей развертывания.

Масштабирование развертываний с помощью файлов параметров

Вместо передачи параметров в виде встроенных значений в файлах содержимого рекомендуется использовать файл параметров Bicep или JSON-файл, содержащий значения параметров. Затем сопоставите эти файлы параметров с связанными файлами содержимого Microsoft Sentinel, чтобы лучше масштабировать развертывания в разных рабочих областях.

Существует несколько способов сопоставления файлов параметров с файлами содержимого. Помните, что файлы параметров Bicep поддерживают только шаблоны файлов Bicep, но файлы параметров JSON поддерживают оба. Конвейер развертывания репозиториев рассматривает файлы параметров в следующем порядке:

Схема, показывающая приоритет сопоставлений файлов параметров.

  1. Существует ли сопоставление в sentinel-deployment.config?
    Дополнительные сведения см. в разделе "Настройка конфигурации подключения".

  2. Существует ли файл параметров, сопоставленный с рабочей областью? Да, файлы содержимого находятся в одном каталоге с файлом параметров, сопоставленным с рабочей областью, соответствующим одному из следующих шаблонов:
    <WorkspaceID.bicepparam.parameters-WorkspaceID><
    >.json

  3. Существует ли файл параметров по умолчанию? Да, файлы содержимого находятся в одном каталоге с файлом параметров, соответствующим одному из следующих шаблонов:
    Bicepparam
    .parameters.json

Избегайте столкновений с несколькими развертываниями рабочих областей, сопоставляя файлы параметров с помощью файла конфигурации или указывая идентификатор рабочей области в имени файла.

Внимание

После определения сопоставления файла параметров на основе приоритета сопоставления конвейер игнорирует все оставшиеся сопоставления.

Изменение сопоставленного файла параметров, указанного в файле sentinel-deployment.config , активирует развертывание его парного файла содержимого. Добавление или изменение файла параметров, сопоставленного с рабочей областью, или файла параметров по умолчанию также активирует развертывание парных файлов содержимого вместе с новыми измененными параметрами, если только сопоставление параметров с более высоким приоритетом не выполняется. Другие файлы содержимого не развертываются, пока функция интеллектуального развертывания по-прежнему включена в файле определения рабочего процесса или конвейера.

Настройка конфигурации подключения

Сценарий развертывания для репозиториев поддерживает использование файла конфигурации развертывания для каждой ветви репозитория по состоянию на июль 2022 года. JSON-файл конфигурации помогает сопоставлять файлы параметров с соответствующими файлами содержимого, определять приоритеты содержимого в развертываниях и исключать определенное содержимое из развертываний.

  1. Создайте файл sentinel-deployment.config в корне репозитория. Добавление, удаление или изменение этого файла конфигурации активирует полное развертывание всего содержимого в репозитории в соответствии с обновленной конфигурацией.

    Снимок экрана: корневой каталог репозитория. РепозиторииSampleContent отображаются с расположением файла sentinel-deployment.config.

  2. Включите структурированное содержимое в три необязательных раздела, "prioritizedcontentfiles":"excludecontentfiles":а "parameterfilemappings":также . Если разделы не включены или файл конфигурации не указан, процесс развертывания по-прежнему выполняется. Недопустимые или неопознанные разделы игнорируются.

Ниже приведен пример всего содержимого допустимого файла sentinel-deployment.config . Этот пример также можно найти в примере репозиториев CICD Microsoft Sentinel.

{
  "prioritizedcontentfiles": [
    "parsers/Sample/ASimAuthenticationAWSCloudTrail.json",
    "workbooks/sample/TrendMicroDeepSecurityAttackActivity_ARM.json",
    "Playbooks/PaloAlto-PAN-OS/PaloAltoCustomConnector/azuredeploy.bicep"
  ], 
  "excludecontentfiles": [
     "Detections/Sample/PaloAlto-PortScanning.json",
     "parameters"
  ],
  "parameterfilemappings": {
    "879001c8-2181-4374-be7d-72e5dc69bd2b": {
      "Playbooks/PaloAlto-PAN-OS/Playbooks/PaloAlto-PAN-OS-BlockIP/azuredeploy.bicep": "parameters/samples/auzredeploy.bicepparam"
    },
    "9af71571-7181-4cef-992e-ef3f61506b4e": {
      "Playbooks/Enrich-SentinelIncident-GreyNoiseCommunity-IP/azuredeploy.json": "path/to/any-parameter-file.json"
    }
  },
  "DummySection": "This shouldn't impact deployment"
}

Примечание.

Не используйте символ обратной косой черты "\" в любом из путей содержимого. Вместо этого используйте косую черту /.

  • Чтобы определить приоритет файлов содержимого, выполните приведенные далее действия.

    По мере увеличения объема содержимого в репозитории время развертывания может увеличиться. Добавьте в этот раздел конфиденциальное время, чтобы определить приоритет развертывания при возникновении триггера.

    Добавьте полные имена путей в "prioritizedcontentfiles": раздел. Сопоставление с подстановочными знаками в настоящее время не поддерживается.

  • Чтобы исключить файлы содержимого, измените "excludecontentfiles": раздел с полными именами путей отдельных файлов содержимого .json.

  • Чтобы сопоставить параметры, выполните следующие действия.

    Скрипт развертывания принимает три метода сопоставления параметров, как описано в разделе "Масштабирование развертываний с помощью файлов параметров". Сопоставление параметров с помощью sentinel-deployment.config имеет наивысший приоритет и гарантирует, что заданный файл параметров сопоставляется с связанными файлами содержимого. Измените "parameterfilemappings": раздел с идентификатором рабочей области целевого подключения и полными именами путей отдельных файлов .json.

Пример репозитория доступен для демонстрации файла конфигурации развертывания и всех трех методов сопоставления параметров. Дополнительные сведения см . в примере репозиториев CICD Microsoft Sentinel.