Включение DevSecOps с Azure и GitHub

Методология DevSecOps, которую иногда называют Secure DevOps, основывается на принципах DevOps, но добавляет акцент на безопасности. При использовании DevSecOps безопасность становится центральной частью всего жизненного цикла приложения и требуется, чтобы каждая команда и каждый человек, работающие с приложением, принимали во внимание аспекты безопасности. Мы вызываем эту концепцию "ускоренная, или стимулируемая безопасность": аспекты безопасности больше не рассматриваются как относящиеся только к рабочей среде и начинают играть серьезную роль на ранних этапах планирования и разработки.

Microsoft и GitHub предлагают решения, которые помогают добиться уверенности в коде, запускаемом в рабочей среде, посредством проверки кода и обеспечения его прослеживаемости вплоть до рабочих элементов и аналитических данных по используемым сторонним компонентам.

Защита кода с помощью GitHub

С помощью сканирования кода разработчики могут быстро и автоматически анализировать код в репозитории GitHub, чтобы найти уязвимости системы безопасности и ошибки в коде.

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

Отслеживание работы с помощью Azure Boards

Используя веб-службу Azure Boards, команды могут управлять проектами программного обеспечения. Она предоставляет широкий набор возможностей, включая встроенную поддержку Scrum и канбана, настраиваемые панели мониторинга и интегрированные отчеты.

Создание и развертывание контейнеров с помощью Azure Pipelines

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

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

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

Запуск и отладка контейнеров с использованием Dev Spaces

Разработка приложения Kubernetes может оказаться сложной задачей. Вам нужны файлы конфигурации Docker и Kubernetes. Требуется выяснить, как тестировать приложение в локальной среде и взаимодействовать с другими зависимыми службами. Может потребоваться создать и тестировать несколько служб одновременно и при участии команды разработчиков.

Azure Dev Spaces — это расширение службы AKS, которое позволяет легко запускать и отлаживать код в контексте более крупного приложения. Вы можете выполнить сквозное тестирование кода, определить точки останова в коде, который выполняется в кластере, и предоставить своим сотрудникам общий доступ к кластеру разработки, где они смогут работать, не мешая друг другу.

Обеспечение безопасности контейнеров с помощью Центра безопасности Azure и Политики Azure

Политика Azure интегрируется со Службой Azure Kubernetes (AKS), чтобы обеспечить централизованное и согласованное применение ограничений и мер безопасности в кластерах в требуемом масштабе.

Управление удостоверениями и доступом с помощью Azure

Платформа удостоверений Майкрософт — это решение на основе платформы для разработчиков Azure Active Directory (Azure AD). С ее помощью разработчики могут создавать приложения, которые поддерживают вход с использованием любых удостоверений Майкрософт и получают маркеры для вызова таких программных API Майкрософт, как API Microsoft Graph или других API, созданных разработчиками.

Azure Active Directory B2C предоставляет службу корпоративного управления удостоверениями для клиентов. Ваши клиенты получат возможность единого входа в ваши приложения и API, используя выбранные удостоверения социальных сетей, предприятий или локальных учетных записей.

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

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

В настоящее время кластеру Службы Azure Kubernetes (AKS) (в частности, поставщику облачных служб Kubernetes) требуется удостоверение для создания дополнительных ресурсов, таких как подсистемы балансировки нагрузки и управляемые диски в Azure. Это удостоверение может быть управляемым удостоверением или субъектом-службой. Если вы используете субъект-службу, необходимо указать ее (либо служба AKS создаст ее от вашего имени). Если вы используете управляемое удостоверение, оно будет автоматически создано службой AKS. Кластеры, использующие субъекты-службы, в конечном итоге достигают состояния, когда требуется обновить субъект-службу, чтобы обеспечить дальнейшую работу кластера. Управление субъектами-службами повышает сложность работы, поэтому проще использовать управляемые удостоверения. И к субъектам-службам, и к управляемым удостоверениям применяются схожие требования к разрешениям.

Управляемые удостоверения по сути являются оболочкой для субъектов-служб и упрощают управление ими.

Управление ключами и секретами с помощью Azure Key Vault

В Azure Key Vault можно безопасно хранить токены, пароли, сертификаты, ключи API и другие секреты, а также контролировать доступ к этой информации. Централизованное хранение секретов приложения в Azure Key Vault позволяет управлять их распространением. Key Vault значительно снижает вероятность случайной утечки секретов. При использовании Key Vault разработчикам приложений больше не требуется хранить информацию о безопасности своих приложений. Отсутствие необходимости хранить сведения о безопасности в приложениях устраняет потребность включать эти сведения в код. Например, приложению может потребоваться подключиться к базе данных. Вместо хранения строки подключения в коде приложений она безопасно хранится в Key Vault.

Мониторинг приложений

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

Вы можете узнать, как отслеживать приложения и инфраструктуру с помощью Azure Application Insights и Azure Monitor.

Создание подходящей архитектуры

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