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


Рекомендации по безопасности для платформ DevOps

Безопасность всегда должна быть приоритетом на облачных платформах разработки, таких как Azure DevOps и GitHub. Корпорация Майкрософт обновляет и поддерживает безопасность базовой облачной инфраструктуры, но это касается проверки и настройки рекомендаций по обеспечению безопасности для собственных организаций Azure DevOps и экземпляров GitHub.

Рассмотрим следующие критически важные области безопасности независимо от того, развертываете ли среды через инфраструктуру в виде кода в конвейерах непрерывной интеграции и непрерывного развертывания (CI/CD) или развертываете код в приложениях, размещенных в Azure.

Ограничение доступа к инструментам DevOps

Следуйте принципу наименьших привилегий с помощью управления доступом на основе ролей (RBAC) с помощью идентификатора Microsoft Entra. Предоставьте пользователям и службам минимальный объем доступа к платформам DevOps, которые они должны выполнять бизнес-функции. Дополнительные сведения см. в следующих статьях:

После установки идентификатора Microsoft Entra в качестве плоскости управления удостоверениями следуйте рекомендациям по управлению назначениями ролей Azure DevOps с членством в группах Microsoft Entra. Вы можете назначить роли Azure DevOps группам Microsoft Entra и настроить членство пользователя в Microsoft Entra, чтобы изменить или удалить доступ к Azure DevOps.

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

  • Вы также можете использовать Microsoft Entra управление привилегированными пользователями для JIT-доступа для продвижения пользователей в роли Azure DevOps Администратор istrator в течение определенного периода времени.

Управление безопасностью в Azure DevOps с помощью групп безопасности, политик и параметров в организации, проекте или уровне объектов Azure DevOps. Если это возможно, рассмотрите возможность отключения наследования разрешений в Azure DevOps.

Ограничение доступа к репозиторию и ветви

Ограничить доступ репозитория, разрешения и создание ветви для защиты кода и сред от нежелательных или вредоносных изменений. Ограничение доступа к репозиториям с помощью групп безопасности в Azure DevOps. Укажите, кто может читать и обновлять код в филиалах, задав разрешения ветви.

Ограничение доступа к конвейеру и разрешений

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

Рекомендуется использовать добавочный подход к защите конвейеров YAML. Дополнительные сведения см. в разделе "Планирование защиты конвейеров YAML".

Выберите агент DevOps на основе потребностей безопасности

Вы можете использовать размещенные майкрософт или локальные агенты для управления конвейерами Azure DevOps и GitHub. Существуют компромиссы для каждого типа агента.

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

Ознакомьтесь с агентами Azure Pipelines для проверки различий между типами агентов и выявления потенциальных соображений безопасности.

Использование безопасных и область подключений к службе

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

Использование хранилища секретов

Никогда не секреты жесткого кода в коде или вспомогательной документации в репозиториях. Злоумышленники сканируют репозитории, выполняя поиск предоставленных конфиденциальных данных для использования. Настройте хранилище секретов, например Azure Key Vault, и наведите ссылку на хранилище в Azure Pipelines для безопасного получения ключей, секретов или сертификатов. Дополнительные сведения см. в разделе "Защита рабочего процесса конвейера и CI/CD". Вы также можете использовать секреты Key Vault в рабочих процессах GitHub Actions.

Использование защищенных рабочих станций DevOps для создания и развертывания кода

Команды платформы и разработки часто имеют повышенные привилегии на платформе Azure или в других службах, таких как Azure DevOps и GitHub. Этот доступ значительно увеличивает потенциальную область атаки. Реализуйте средства защиты для защиты любых конечных точек и рабочих станций, используемых для разработки и развертывания кода.

Используйте защищенные защищенные рабочие станции администрирования (SAWs) для развертывания любых изменений в рабочих средах с высоким риском и рабочей среде. Дополнительные сведения см. в разделе "Безопасные конечные точки с нулевой доверием".

Проверка безопасности и тестирование

Независимо от того, развертываете код приложения или инфраструктуру как код, реализуйте рекомендации и элементы управления DevSecOps в конвейерах. Интегрируйте безопасность в начале процесса CI/CD, чтобы предотвратить дорогостоящие нарушения безопасности позже. Создайте стратегию для реализации анализа статического кода, модульного тестирования, сканирования секретов и проверки пакетов и зависимостей в конвейерах.

Корпоративные средства безопасности, такие как Microsoft Defender для облака, могут интегрироваться с средствами DevOps. Например, Defender для облака могут определять уязвимые образы контейнеров в рабочих процессах CI/CD. Для GitHub Actions и репозиториев используйте GitHub Advanced Security для проверки кода и секретов и проверки зависимостей.

Периодически просматривайте события аудита, чтобы отслеживать и реагировать на непредвиденные шаблоны использования администраторами и другими пользователями. Вы можете получить доступ, фильтровать и экспортировать журналы аудита для организации Azure DevOps. Для долгосрочного хранения и подробных запросов к журналам создайте поток аудита в рабочей области Azure Monitor Log Analytics или систему управления безопасностью и событиями (SIEM), например Microsoft Sentinel.