Безопасность Azure: создание защищенной подписки с помощью Azure DevOps

Опубликовано: 1 Марта, 2023
Безопасность Azure: создание защищенной подписки с помощью Azure DevOps

При планировании вашей среды Azure использование инфраструктуры как кода (IaC) является почти обязательным требованием, если вы планируете использовать несколько сред или иметь согласованный и надежный способ развертывания вашей инфраструктуры без ручного вмешательства. В этой статье мы расскажем, как вы можете начать планировать свои компоненты безопасности, чтобы улучшить состояние вашей среды Azure, создав группу ресурсов для вашей группы безопасности с некоторыми важными ресурсами, такими как Log Analytics и учетная запись хранения. Мы пролили свет на то, как создавать конвейеры Azure DevOps, в предыдущих статьях на TechGenix. Вы можете использовать эту статью в качестве руководства, чтобы охватить необходимые шаги для создания среды Azure DevOps и вашего первого конвейера.

Первоначальный дизайн

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

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

Создание шаблонов ARM

Первым шагом в соответствии с нашим сценарием является создание Log Analytics и учетной записи хранения, и эти два ресурса будут использоваться для хранения наших диагностических параметров.

Мы начнем с нового проекта в Azure DevOps ( TechGenix в нашей статье) и создадим репозиторий под названием Security, как показано на изображении ниже.

Первая часть нашего кода предназначена для развертывания необходимой инфраструктуры. Мы назовем файл шаблона . Файл параметров будет следовать тому же соглашению об именах, что и файл шаблона, но с добавлением среды, например, (где prod — это файл параметров для рабочей среды).

Мы создадим новый набор шаблонов и параметров, которые будут применяться на уровне подписки. Мы будем использовать имя (файл шаблона) и (файл параметров среды prod). Примечание. Описанные ниже файлы доступны на GitHub. Если вам нужно более подробно ознакомиться с шаблонами, воспользуйтесь этой ссылкой.

Теперь, когда мы представили процесс, нам нужно получить один бит информации из конвейера: окружение. После этого мы будем использовать функции ARM для получения дополнительной информации и создания новых ресурсов, которые мы планируем использовать для этих переменных. Цель здесь — уменьшить количество параметров, выполнив простую логику. Вот список переменных, представленных в этой статье:

  • Переменная v_regionCode: мы будем использовать проверку местоположения текущей группы ресурсов и создадим код для геополитического региона (Центральная Канада или Восточная Канада).
  • Переменная v_loganalyticsName: мы собираемся присвоить имя, используя наше соглашение об именах, результат будет похож на LogAnalytics-CaC-Prod.
  • Переменная v_storageaccountName: мы собираемся установить имя, используя наш стандарт соглашения об именах. В результате получится что-то похожее на tg00stgcacprod.

Теперь, когда мы знаем имя будущих ресурсов, мы создадим рабочую область Log Analytics, используя небольшой фрагмент шаблона ARM, содержащий только необходимую информацию. Единственная конфигурация, которую нам нужно определить, — это количество дней, в течение которых информация будет храниться в соответствии с вашими требованиями безопасности.

Управление аудитом на уровне подписки

Для любой инициативы по обеспечению безопасности в Azure крайне важно хранить и анализировать журналы на уровне подписки. Если вы хотите выполнить настройку вручную, войдите на портал Azure, найдите Subscriptions, выберите нужную подписку, щелкните Журналы действий, а затем Параметры диагностики.

Мы можем создать новый параметр диагностики и указать, какие журналы мы будем собирать для Log Analytics, учетной записи хранения или концентратора событий. Можно сделать это вручную, но мы хотим работать последовательно, и мы решим эту проблему с помощью шаблонов ARM.

Мы можем настроить журналы подписки, используя тип Microsoft.Insights/diagnosticsettings, и определить журналы (они такие же, как мы перечислили на предыдущем изображении. Примечание. Мы использовали разные функции для получения некоторой информации. Причина этого в том, что мы используются на уровне подписки, и некоторые функции ARM недоступны.

Настройка конвейера выпуска Azure DevOps с репозиторием безопасности

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

Во-первых, нужно использовать имя среды для автоматического поиска файла шаблона с помощью переменной Azure DevOps. Переменная называется $(Release.EnvironmentName). Вместо того, чтобы указывать файл security.prod.json, мы всегда используем переменную и упрощаем копирование и вставку этапов без внесения ручных изменений в задачах позже.

Мы создадим два развертывания шаблона ARM: одно для безопасности и второе для подписки. Они будут использовать соответствующие шаблоны и параметры ARM.

Между задачами развертывания шаблонов ARM есть небольшая разница. Задача ARM: Безопасность будет ограничена группой ресурсов, а задача ARM: Аудит подписки — использовать подписку, как показано на рисунке ниже.

Безопасность Azure: все еще впереди

В этой статье мы начали создавать базовую структуру для сбора журналов в вашей подписке и настраивать журналы подписки Azure для использования нового подготовленного ресурса. Мы все? Вовсе нет, есть много возможностей для улучшений, например, используйте Azure Key Vault и службу автоматизации Azure как часть этого текущего конвейера для улучшения подписки. Следите за обновлениями