Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Организации все чаще применяют проектирование с приоритетом на API, сталкиваясь с растущими угрозами для веб-приложений. Вам нужна комплексная стратегия безопасности для защиты API, особенно при предоставлении API на основе ИИ и реализации принципов архитектуры нулевого доверия. Шаблон маршрутизации шлюза обеспечивает один подход к безопасности API путем защиты сетевого трафика. Шлюз ограничивает расположение источника трафика и качество трафика при поддержке гибких правил маршрутизации. В этой статье описывается, как использовать Шлюз приложений Azure и Azure Управление API для защиты доступа к API.
Architecture
В этой статье не рассматриваются базовые платформы приложения, такие как среда службы приложений, Управляемый экземпляр SQL Azure и служба Azure Kubernetes (AKS). Эти части схемы демонстрируют, что можно реализовать как более широкое решение. В этой статье рассматриваются шейдерные области, управление API и шлюз приложений.
Скачайте файл Visio для этой архитектуры.
Workflow
Шлюз приложений получает HTTPS-запросы, которые разрешены группой безопасности сети (NSG) подсети.
Брандмауэр веб-приложения (WAF) на Application Gateway проверяет запрос на соответствие правилам WAF, включая пользовательские правила географического соответствия. Если запрос действителен, запрос выполняется.
Шлюз приложений настраивает механизм проксирования URL-адресов, который отправляет запрос в соответствующий пул серверов обработки . Поведение маршрутизации зависит от формата URL-адреса вызова API:
URL-адреса, отформатированные как
api.<some-domain>/external/*, могут получить доступ к бэкэнду для взаимодействия с запрошенными API.Вызовы, отформатированные как
api.<some-domain>/*, переходят в тупик, называемый sinkpool, который является внутренним пулом без назначения.Правило маршрутизации на уровне шлюза приложений перенаправляет пользователей на
portal.<some-domain>/*портал разработчика. Разработчики могут управлять API и их конфигурациями из внутренних и внешних сред. Кроме того, вы можете полностью заблокировать портал разработчика.
Шлюз приложений принимает и проксирует внутренние вызовы из ресурсов в той же виртуальной сети Azure.
api.<some-domain>/internal/*На уровне управления API API принимают вызовы в следующих шаблонах:
api.<some-domain>/external/*api.<some-domain>/internal/*
В этом сценарии управление API использует общедоступные и частные IP-адреса. Общедоступные IP-адреса поддерживают операции управления на порту 3443 для управляющей плоскости и для трафика API во время выполнения в конфигурациях внешней виртуальной сети. Когда Управление API отправляет запрос в общедоступную серверную часть интернета, он отображает общедоступный IP-адрес в качестве источника запроса. Дополнительные сведения см. в разделе IP-адресов управления API в виртуальной сети.
Components
Виртуальная сеть Azure позволяет многим типам ресурсов Azure взаимодействовать друг с другом, Интернетом и локальными сетями. В этой архитектуре шлюз приложений туннелирует общедоступный интернет-трафик в эту частную сеть.
Шлюз приложений — это подсистема балансировки нагрузки веб-трафика, которая управляет трафиком в веб-приложения. Этот тип маршрутизации называется балансировкой нагрузки уровня приложений (OSI Уровня 7). В этой архитектуре шлюз предоставляет маршрутизацию и размещает WAF для защиты от распространенных векторов атак на основе веб-сайтов.
управление API — это гибридная платформа управления несколькими облаками для API во всех средах. Управление API создает согласованные современные шлюзы API для существующих внутренних служб. В этой архитектуре управление API работает в полностью приватном режиме для разгрузки перекрестных задач из кода и хостов API.
Alternatives
Вы можете использовать другие службы для обеспечения аналогичного уровня защиты брандмауэра и WAF:
Azure Front Door обеспечивает встроенную защиту от отказов в обслуживании (DDoS) и глобальную балансировку нагрузки.
Брандмауэр Azure обеспечивает защиту на уровне сети и централизованное управление политиками безопасности.
Партнерские решения, такие как Barracuda CloudGen WAF для Azure или другие решения WAF, доступны в Microsoft Marketplace.
Recommendations
Эта архитектура ориентирована на реализацию всего решения и тестирования доступа API изнутри и за пределами виртуальной сети управления API. Дополнительные сведения о процессе интеграции см. в статье Интеграция управления API в внутренней виртуальной сети с помощью шлюза приложений.
Чтобы взаимодействовать с частными ресурсами в серверной части, поместите шлюз приложений и управление API в ту же виртуальную сеть, что и ресурсы или одноранговую виртуальную сеть.
Частная, внутренняя модель развертывания позволяет управлению API подключаться к существующей виртуальной сети, что делает ее доступной из этого контекста сети. Чтобы включить эту функцию, разверните уровни управления API developer или Premium для внедрения классической виртуальной сети. Для новых параметров виртуальной сети используйте уровни "Стандартный" версии 2 или "Премиум" с возможностями интеграции виртуальной сети или внедрения.
Если ваши клиенты работают в другой подписке или управляются другим каталогом Microsoft Entra ID, используйте Azure Private Link для Application Gateway, чтобы обеспечить частное подключение к Шлюзу приложений из виртуальных сетей клиентов через разные подписки и регионы.
Управление сертификатами шлюза приложений в Azure Key Vault.
Для персонализации взаимодействия со службами можно использовать записи канонических имён (CNAME).
Considerations
Эти рекомендации реализуют основные принципы Azure Well-Architected Framework, которые являются набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Для получения дополнительной информации см. Well-Architected Framework.
Reliability
Надежность помогает гарантировать, что ваше приложение может выполнять обязательства, которые вы выполняете для клиентов. Дополнительные сведения см. в контрольном списке проверки дизайна на надежность.
Шлюз приложений всегда развертывается в высокодоступной конфигурации независимо от количества экземпляров. Чтобы уменьшить влияние сбоя зоны, можно настроить шлюз приложений для охвата нескольких зон доступности. Дополнительные сведения см. в разделе "Автомасштабирование" и "Высокий уровень доступности".
Включите редундандность зоны для компонентов службы API-менеджмента, чтобы обеспечить резервирование и высокую доступность. Избыточность зон реплицирует шлюз управления API и управляющую плоскость по центрам обработки данных, расположенным в физически разделенных зонах. Эта конфигурация делает их устойчивыми к отказу зоны. Для поддержки зон доступности необходимо использовать уровень управления API Premium.
Управление API также поддерживает многорегионные развертывания, что может повысить доступность, если один регион переходит в автономный режим. Дополнительные сведения см. в разделе поддержки Multiregion. В этой топологии разверните один шлюз приложений для каждого региона, так как шлюз приложений является региональной службой.
Security
Безопасность обеспечивает гарантии от преднамеренного нападения и неправильного использования ценных данных и систем. Для получения дополнительной информации см. контрольный список по проверке проектирования на безопасность.
Для получения дополнительной информации о безопасности шлюза приложений см. базовый план безопасности Azure для шлюза приложений.
Для получения дополнительной информации о безопасности Управления API, см. Основы безопасности Azure для Управления API.
Всегда реализуйте следующие меры безопасности:
Используйте политики брандмауэра веб-приложений Azure с последним набором основных правил Open Web Application Security Project (OWASP) 3.2 или более поздней версии для защиты от распространенных веб-уязвимостей, включая основные угрозы OWASP 10.
Настройте настраиваемые правила геоматч WAF , чтобы блокировать или разрешать трафик на основе географического расположения. Этот подход обеспечивает некоторую защиту от атак DDoS.
Включите защиту приложений (уровень 7) от атак DDoS с помощью брандмауэра веб-приложения Azure с шлюзом приложений для защиты от атак на основе томов и протоколов. Объединение защиты от атак DDoS Azure с рекомендациями по проектированию приложений для улучшения функций защиты от атак DDoS.
Используйте частные конечные точки для управления API для обеспечения безопасного входящего подключения.
Включите Microsoft Defender для API, чтобы отслеживать состояние их безопасности и обнаруживать угрозы.
Настройте правила защиты ботов WAF для выявления и блокировки вредоносных ботов.
Оптимизация затрат
Оптимизация затрат фокусируется на способах сокращения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в контрольном списке для проектной проверки по оптимизации затрат.
Стоимость этой архитектуры зависит от нескольких аспектов конфигурации:
Уровни служб: Рассмотрим уровни "Стандартный" версии 2 и "Премиум" для управления API, чтобы повысить эффективность затрат и производительность.
Масштабируемость: Службы динамически выделяют количество экземпляров для поддержки заданного спроса.
Длительность выполнения: Затраты зависят от того, выполняется ли архитектура непрерывно или всего несколько часов каждый месяц.
Передача данных: Многорегионные развертывания несут затраты на передачу между регионами.
Обработка WAF: Затраты зависят от количества вычисляемых запросов и правил.
Рассмотрим следующие стратегии оптимизации затрат:
Используйте уровень потребления управления API для низкой загрузки, переменных рабочих нагрузок, где вы оплачиваете только фактическое использование.
Реализуйте автомасштабирование шлюза приложений для оптимизации количества экземпляров на основе спроса.
После оценки этих аспектов используйте калькулятор цен Azure для оценки цен.
Операционное превосходство
Операционная эффективность охватывает процессы, которые развертывают приложение и поддерживают его работу в рабочей среде. Для получения дополнительной информации см. Контрольный список для оценки проектирования с точки зрения операционной эффективности.
Реализуйте комплексный мониторинг и наблюдаемость:
Настройте диагностику управления API для отправки журналов в Azure Monitor, чтобы использовать Log Analytics для подробной аналитики API.
Настройте диагностику шлюза приложений для мониторинга событий WAF и метрик производительности.
Реализуйте оповещения управления API для пороговых значений производительности и доступности API.
Эффективность производительности
Эффективность производительности — это способность рабочей нагрузки эффективно масштабироваться в соответствии с требованиями пользователей. Для получения дополнительных сведений см. контрольный список проверки эффективности производительности дизайна.
Шлюз приложений служит точкой входа для этой архитектуры, а для каждого анализа запросов требуется функция брандмауэра веб-приложений Azure. Чтобы разрешить шлюзу приложений расширить вычислительные мощности по запросу, включите автомасштабирование. Для получения дополнительной информации см. руководство 'Автомасштабирование и зональная отказоустойчивость в шлюзе приложений'. Следуйте рекомендациям по документации по продуктам для конфигурации инфраструктуры Шлюза приложений, включая правильный размер подсети. Такой подход гарантирует, что подсеть достаточно велика, чтобы обеспечить полное масштабирование.
Рассмотрим следующие оптимизации производительности для управления API:
Включите автоматическое масштабирование управления API для автоматического реагирования на увеличение объема запросов.
Используйте политики кэширования управления API , чтобы уменьшить нагрузку серверной части и повысить время отклика.
Реализуйте ограничение скорости управления API для защиты внутренних служб от чрезмерной нагрузки.
Используйте уровни "Стандартный" версии 2 или "Премиум" версии 2 для повышения производительности и сетевых возможностей.
Дальнейшие шаги
Чтобы разработать API, следуйте хорошим рекомендациям по проектированию веб-API . Для реализации API используйте хорошие методики реализации веб-API .
Связанные ресурсы
- Шаблон маршрутизации шлюза: маршрутизация запросов к нескольким службам с помощью одной конечной точки.
- Шаблон агрегирования шлюза: агрегирование нескольких запросов в один запрос.
- Шаблон разгрузки шлюза: передача общих функций на шлюз API.
- Обзор маршрутизации на основе URL-адресов
- Руководство. Создание шлюза приложений с перенаправлением на основе URL-адресов с помощью Azure CLI