Эта архитектура предоставляет рекомендации по проектированию критически важной рабочей нагрузки, которая имеет строгие средства управления сетью, чтобы предотвратить несанкционированный общий доступ из Интернета к любым из ресурсов рабочей нагрузки. Цель состоит в том, чтобы остановить векторы атак на сетевом уровне, чтобы не повлиять на общую надежность системы. Например, распределенная атака типа "отказ в обслуживании" (DDoS) может привести к тому, что ресурс становится недоступным, перегружая его нелегитимным трафиком.
Он основан на критически важной базовой архитектуре, которая ориентирована на максимизацию надежности и эффективности работы без управления сетью. Эта архитектура добавляет функции для ограничения путей входящего и исходящего трафика с помощью соответствующих облачных возможностей, таких как azure виртуальная сеть (виртуальная сеть) и частные конечные точки, Приватный канал Azure, Зона Частная зона DNS Azure и другие.
Рекомендуется ознакомиться с базовыми показателями, прежде чем продолжить работу с этой статьей.
Ключевые стратегии проектирования
Стратегии проектирования для критически важных базовых показателей по-прежнему применяются в этом случае использования. Ниже приведены дополнительные рекомендации по работе с сетью для этой архитектуры.
Управление входящего трафика
Чтобы предотвратить вредоносные атаки, необходимо ограничить входящий или входящий обмен данными в виртуальной сети.
Примените возможности Брандмауэр веб-приложений (WAF) на глобальном уровне, чтобы остановить атаки на пограничной сети ближе к источнику атаки.
Исключите общедоступное подключение к службам Azure. Одним из подходов является использование частных конечных точек.
Проверьте трафик, прежде чем он попадает в сеть. Группы безопасности сети (NSG) в подсетях помогают фильтровать трафик, разрешая или запрещая поток к настроенным IP-адресам и портам. Этот уровень управления также помогает в детализированном ведении журнала.
Управление исходящим трафиком
Исходящий трафик из виртуальной сети к сущностям за пределами этой сети должен быть ограничен. Отсутствие элементов управления может привести к атакам на кражу данных со стороны вредоносных сторонних служб.
Ограничьте исходящий трафик в Интернет с помощью Брандмауэр Azure. Брандмауэр может детализированно фильтровать трафик с помощью полного доменного имени (FQDN).
Баланс компромиссов с безопасностью
При добавлении функций безопасности в архитектуру рабочей нагрузки существуют значительные компромиссы. Вы можете заметить некоторое влияние на производительность, гибкость работы и даже надежность. Однако атаки, такие как отказ в обслуживании (DDoS), вторжение в данные и другие, могут быть направлены на общую надежность системы и в конечном итоге привести к недоступности.
Стратегии основаны на общих рекомендациях, предоставленных для критически важных рабочих нагрузок в хорошо спроектированных критически важных рабочих нагрузках. Мы рекомендуем изучить область проектирования сети и подключения , чтобы получить рекомендации и рекомендации при определении собственной критически важной архитектуры.
Архитектура
Скачайте файл Visio этой архитектуры.
Таким образом, компоненты этой архитектуры можно разделить на широкую категорию. Документацию по продуктам о службах Azure см. в разделе Связанные ресурсы.
Глобальные ресурсы
Глобальные ресурсы являются долгоживущей и разделяют жизненный цикл системы. Они имеют возможность быть глобально доступными в контексте модели развертывания с несколькими регионами. Дополнительные сведения см. в разделе Глобальные ресурсы.
SKU Azure Front Door уровня "Премиум" используется в качестве глобальной подсистемы балансировки нагрузки для надежной маршрутизации трафика в региональные развертывания, которые предоставляются через частные конечные точки.
См. раздел Хорошо спроектированные критически важные рабочие нагрузки: глобальная маршрутизация трафика.
Azure Cosmos DB для NoSQL по-прежнему используется для хранения состояния за пределами вычислительного кластера и имеет базовые параметры конфигурации для надежности. Доступ ограничен авторизованными подключениями к частной конечной точке.
Реестр контейнеров Azure используется для хранения всех образов контейнеров с возможностями георепликации. Доступ ограничен авторизованными подключениями к частной конечной точке.
См. раздел Хорошо спроектированные критически важные рабочие нагрузки: реестр контейнеров.
Региональные ресурсы
Региональные ресурсы подготавливаются в рамках метки развертывания в одном регионе Azure. Они недолговечны, чтобы обеспечить большую устойчивость, масштаб и близость к пользователям. Эти ресурсы ничего не используют с ресурсами в другом регионе. Их можно независимо удалять или реплицировать в другие регионы. Однако они совместно используют глобальные ресурсы . Дополнительные сведения см. в статье Региональные ресурсы меток.
Статический веб-сайт в учетной записи хранения Azure содержит одностраничное приложение (SPA), которое отправляет запросы во внутренние службы. Этот компонент имеет ту же конфигурацию, что и базовый интерфейс. Доступ ограничен авторизованными подключениями к частной конечной точке.
Виртуальные сети Azure предоставляют безопасные среды для выполнения рабочих нагрузок и операций управления.
Внутренняя подсистема балансировки нагрузки является источником приложения. Front Door использует этот источник для установления частного и прямого подключения к серверной части с помощью Приватный канал.
Служба Azure Kubernetes (AKS) — это оркестратор для серверных вычислений, запускающих приложение и не требующих отслеживания состояния. Кластер AKS развертывается как частный кластер. Таким образом, сервер API Kubernetes не предоставляется в общедоступном Интернете. Доступ к серверу API ограничен частной сетью. Дополнительные сведения см. в статье Вычислительный кластер этой архитектуры.
Брандмауэр Azure проверяет и защищает весь исходящий трафик из ресурсов azure виртуальная сеть.
Центры событий Azure используется в качестве брокера сообщений. Доступ ограничен авторизованными подключениями к частной конечной точке.
См. раздел Хорошо спроектированные критически важные рабочие нагрузки: слабо связанная архитектура на основе событий.
Azure Key Vault используется в качестве регионального хранилища секретов. Доступ ограничен авторизованными подключениями к частной конечной точке.
См. раздел Хорошо спроектированные критически важные рабочие нагрузки: защита целостности данных.
Ресурсы конвейера развертывания
Конвейеры сборки и выпуска для критически важных приложений должны быть полностью автоматизированы, чтобы гарантировать согласованный способ развертывания проверенной метки.
GitHub по-прежнему используется для управления версиями как высокодоступная платформа на основе Git.
Azure Pipelines выбирается для автоматизации конвейеров, необходимых для создания, тестирования и развертывания рабочей нагрузки в подготовительной и рабочей средах.
См. раздел Хорошо спроектированные критически важные рабочие нагрузки: процессы DevOps.
Пулы локальных агентов сборки Azure DevOps используются для более высокого контроля над сборками и развертываниями. Этот уровень автономности необходим, так как вычислительный кластер и все ресурсы PaaS являются частными, что требует интеграции на уровне сети, которая невозможна в агентах сборки, размещенных в Майкрософт.
Ресурсы наблюдаемости
Данные мониторинга для глобальных и региональных ресурсов хранятся независимо. Не рекомендуется использовать единое централизованное хранилище наблюдаемости, чтобы избежать единой точки отказа. Дополнительные сведения см. в разделе Ресурсы наблюдаемости.
Azure Log Analytics используется в качестве единого приемника для хранения журналов и метрик для всех компонентов приложения и инфраструктуры.
приложение Azure Insights используется в качестве средства управления производительностью приложений (APM) для сбора всех данных мониторинга приложений и их хранения непосредственно в Log Analytics.
См. раздел Хорошо спроектированные критически важные рабочие нагрузки: прогнозные действия и операции ИИ.
Ресурсы управления
Значительным изменением структуры по сравнению с базовой архитектурой является вычислительный кластер. В этом случае кластер AKS является частным. Для этого изменения требуется подготовить дополнительные ресурсы для получения доступа.
Azure Масштабируемые наборы виртуальных машин для частных агентов сборки и экземпляров jump box для запуска средств в кластере, таких как kubectl.
Бастион Azure обеспечивает безопасный доступ к виртуальным машинам с блоком перехода и устраняет необходимость в том, чтобы виртуальные машины имели общедоступные IP-адреса.
Частные конечные точки для служб PaaS
Для обработки бизнес-операций или операций развертывания приложение и агенты сборки должны получить доступ к нескольким службам Azure PaaS, которые подготовлены глобально, в пределах региона и даже в пределах метки. В базовой архитектуре эта связь осуществляется через общедоступные конечные точки служб.
В этом случае эти службы были защищены с помощью частных конечных точек, чтобы удалить их из общедоступного доступа к Интернету. Такой подход сокращает общую зону атак, чтобы избежать прямого незаконного изменения служб из непредвиденных источников. Однако это приводит к еще одной потенциальной точке отказа и усложняет процесс. Тщательно продумайте компромиссы с безопасностью, прежде чем применять этот подход.
Частные конечные точки должны быть помещены в выделенную подсеть виртуальной сети метки. Частные IP-адреса частным конечным точкам назначаются из этой подсети. По сути, любой ресурс в виртуальной сети может взаимодействовать со службой, достигая частного IP-адреса. Убедитесь, что адресное пространство достаточно велико, чтобы вместить все частные конечные точки, необходимые для этой метки.
Для подключения через частную конечную точку требуется запись DNS. Рекомендуется, чтобы записи DNS, связанные со службами, хранились в зонах Azure Частная зона DNS, обслуживаемых Azure DNS. Убедитесь, что полное доменное имя (FQDN) разрешается в частный IP-адрес.
В этой архитектуре частные конечные точки настроены для Реестр контейнеров Azure, Azure Cosmos DB, Key Vault, ресурсов хранилища и Центров событий. Кроме того, кластер AKS развертывается как частный кластер, который создает частную конечную точку для службы API Kubernetes в сети кластера.
Существует две виртуальные сети, подготовленные в этом проекте, и обе имеют выделенные подсети для хранения частных конечных точек для всех этих служб. Макет сети описан в разделе Макет виртуальной сети.
При добавлении дополнительных компонентов в архитектуру рассмотрите возможность добавления дополнительных частных конечных точек. Например, можно добавить ограничения к ресурсам наблюдаемости. Azure Log Analytics и приложение Azure Insights поддерживают использование частных конечных точек. Дополнительные сведения см. в статье Использование Приватный канал Azure для подключения сетей к Azure Monitor.
Их можно создать в одной или разных подсетях в одной виртуальной сети. Количество частных конечных точек, которые можно создать в рамках подписки, ограничено. Дополнительные сведения см. в разделе об ограничениях Azure.
Управление доступом к службам с помощью групп безопасности сети в подсети.
Частный входящий трафик
SKU Azure Front Door premium используется в качестве глобальной точки входа для всего входящего клиентского трафика. Он использует возможности Брандмауэр веб-приложений (WAF), чтобы разрешить или запретить трафик на границе сети. Настроенные правила WAF предотвращают атаки еще до того, как они попадают в виртуальные сети метки.
Эта архитектура также использует возможности Front Door использовать Приватный канал Azure для доступа к источнику приложения без использования общедоступных IP-адресов и конечных точек на серверных серверах. Для этого требуется внутренняя подсистема балансировки нагрузки в виртуальной сети с меткой. Этот ресурс находится перед контроллером входящего трафика Kubernetes, работающим в кластере. На основе этого частного Load Balancer служба Приватный канал создается AKS, которая используется для частного подключения из Front Door.
После установки подключения частные конечные точки в сети Front Door имеют прямое подключение к подсистеме балансировки нагрузки и статическому веб-сайту в сети меток через Приватный канал.
Дополнительные сведения см. в разделе Принцип работы Приватный канал.
См. раздел Хорошо спроектированные критически важные рабочие нагрузки: службы доставки приложений.
Ограниченный исходящий трафик
Приложениям может потребоваться некоторое исходящее подключение к Интернету. Управление этим трафиком позволяет ограничить, отслеживать и ограничивать исходящий трафик. В противном случае непредвиденный доступ изнутри может привести к компрометации и потенциально ненадежной системе. Ограниченный исходящий трафик также может решить другие проблемы безопасности, такие как кража данных.
Использование брандмауэра и групп безопасности сети (NSG) может гарантировать, что исходящий трафик из приложения проверяется и регистрируется в журнале.
В этой архитектуре Брандмауэр Azure является единой точкой исходящего трафика и используется для проверки всего исходящего трафика из виртуальной сети. Определяемые пользователем маршруты (UDR) используются в подсетях, способных генерировать исходящий трафик, например подсеть приложения.
Сведения об ограничении исходящего трафика см. в статье Управление исходящим трафиком для узлов кластера в Служба Azure Kubernetes (AKS).
Макет виртуальной сети
Изолируйте региональные ресурсы и ресурсы управления в отдельных виртуальных сетях. Они обладают различными характеристиками, целями и соображениями безопасности.
Тип трафика. Региональные ресурсы, участвующие в обработке бизнес-операций, нуждаются в более высоком уровне управления безопасностью. Например, вычислительный кластер должен быть защищен от прямого интернет-трафика. Ресурсы управления подготавливаются только для доступа к региональным ресурсам для операций.
Время существования. Ожидаемое время существования этих ресурсов также отличается. Ожидается, что региональные ресурсы будут кратковременными (временными). Они создаются как часть метки развертывания и уничтожаются при сносе метки. Ресурсы управления используют время существования региона и ресурсы метки.
В этой архитектуре существует две виртуальные сети: сеть меток и сеть операций. Создайте дополнительную изоляцию в каждой виртуальной сети с помощью подсетей и групп безопасности сети (NSG) для защиты обмена данными между подсетями.
См. раздел Хорошо спроектированные критически важные рабочие нагрузки: изолированные виртуальные сети.
Виртуальная сеть региональной метки
Метка развертывания подготавливает виртуальную сеть в каждом регионе.
Виртуальная сеть разделена на эти main подсети. Всем подсетям назначены группы безопасности сети (NSG), чтобы блокировать любой несанкционированный доступ из виртуальной сети. Группы безопасности сети ограничивают трафик между подсетью приложения и другими компонентами в сети.
Подсеть приложения
Пулы узлов кластера AKS изолированы в подсети. Если необходимо дополнительно изолировать пул системных узлов от пула рабочих узлов, можно разместить их в отдельных подсетях.
Метка подсети входящего трафика
Точка входа для каждой метки — это внутренняя Load Balancer (цен. категория Azure, размещенная в выделенной подсети. Здесь также размещена служба Приватный канал, используемая для частного подключения из Front Door.
Оба ресурса подготавливаются в рамках развертывания метки.
Метка исходящего трафика подсети
Брандмауэр Azure помещается в отдельную подсеть и проверяет исходящий трафик из подсети приложения с помощью определяемого пользователем маршрута (UDR).
Подсеть частных конечных точек
Подсеть приложения должна получить доступ к службам PaaS в региональной метке, Key Vault и других. Кроме того, требуется доступ к глобальным ресурсам, таким как реестр контейнеров. В этой архитектуре все службы PaaS заблокированы и доступны только через частные конечные точки. Таким образом, для этих конечных точек создается другая подсеть. Входящий доступ к этой подсети защищен NSG, которая разрешает трафик только из приложения.
Вы можете добавить дополнительное ограничение, используя поддержку UDR для частных конечных точек, чтобы этот трафик также мог исходящий трафик через подсеть исходящего трафика метки.
Операции виртуальной сети
Рабочий трафик изолирован в отдельной виртуальной сети. Так как служба API кластера AKS является частной в этой архитектуре, весь трафик развертывания и эксплуатации также должен поступать из частных ресурсов, таких как локальные агенты сборки и блоки перехода. Эти ресурсы развертываются в отдельной виртуальной сети с прямым подключением к ресурсам приложения через собственный набор частных конечных точек. Агенты сборки и поля перехода находятся в отдельных подсетях.
Вместо частных конечных точек можно использовать пиринг виртуальных сетей. Однако пиринговая связь усложняет управление, особенно если виртуальные сети разработаны как временные.
Агенты сборки (и при необходимости переходные поля) должны получать доступ к службам PaaS, расположенным глобально и в пределах региональной метки. Как и в случае с виртуальной сетью региональной метки, создается выделенная подсеть для частных конечных точек для необходимых служб PaaS. Группа безопасности сети в этой подсети гарантирует, что входящий трафик разрешен только из подсетей управления и развертывания.
Операции управления
Типичный вариант использования — когда оператору требуется доступ к вычислительному кластеру для выполнения средств управления и команд. Доступ к службе API в частном кластере невозможен напрямую. Поэтому подготавливаются поля перехода, в которых оператор может запускать средства. Существует отдельная подсеть для полей перехода.
Но эти прыгающие коробки должны быть защищены, а также от несанкционированного доступа. Следует избегать прямого доступа к полям перехода, открыв порты RDP/SSH. Для этой цели рекомендуется использовать Бастион Azure. Для этого требуется выделенная подсеть в этой виртуальной сети.
Внимание!
Подключение через Бастион Azure и блоки перехода может повлиять на производительность разработчиков, например для запуска средств отладки требуется дополнительный процесс. Помните об этих последствиях, прежде чем принимать решение о защите критически важной рабочей нагрузки.
Вы можете дополнительно ограничить доступ к подсети поля перехода с помощью NSG, которая разрешает входящий трафик из подсети Бастиона только по протоколу SSH.
операции развертывания.
Чтобы создать конвейеры развертывания, необходимо подготовить дополнительные вычислительные ресурсы для запуска агентов сборки. Эти ресурсы не повлияют непосредственно на доступность рабочей нагрузки в среде выполнения, но сбой надежности может поставить под угрозу возможность развертывания или обслуживания критически важной среды. Таким образом, функции надежности должны быть расширены на эти ресурсы.
В этой архитектуре используются Масштабируемые наборы виртуальных машин как для агентов сборки, так и для полей перехода (в отличие от отдельных виртуальных машин). Кроме того, сегментация сети обеспечивается за счет использования подсетей. Входящий трафик ограничен Azure DevOps.
Рекомендации по затратам
Это существенно влияет на затраты на критически важные рабочие нагрузки. В этой архитектуре варианты технологий, такие как использование SKU Azure Front Door Premium и Брандмауэр Azure подготовки в каждой метке, приведут к увеличению затрат. Существуют также дополнительные затраты, связанные с обслуживанием и эксплуатационными ресурсами. Такие компромиссы необходимо тщательно продумать перед внедрением управляемой сетью версии базовой архитектуры.
Развертывание архитектуры
Сетевые аспекты этой архитектуры реализованы в реализации критически важных для миссии подключений.
Примечание
Подключенная реализация предназначена для демонстрации критически важной рабочей нагрузки, которая зависит от ресурсов организации, интегрируется с другими рабочими нагрузками и использует общие службы. Она основана на этой архитектуре и использует сетевые элементы управления, описанные в этой статье. Однако в сценарии Подключено предполагается, что виртуальная частная сеть или зона Частная зона DNS Azure уже существуют в подписке на подключение целевых зон Azure.
Дальнейшие действия
Дополнительные сведения о проектных решениях, принятых в этой архитектуре, см. в разделе Сеть и подключение для критически важных рабочих нагрузок в Azure Well-Architected Framework.
Связанные ресурсы
Документацию по продуктам служб Azure, используемых в этой архитектуре, см. в этих статьях.