AWS Solutions Architect · Урок

WAF, Shield и Network Firewall

Блокируйте атаки из списка 10 основных угроз OWASP с помощью AWS WAF, защищайтесь от DDoS с помощью Shield Standard и Advanced и разворачивайте брандмауэр Network Firewall с отслеживанием состояния в своей VPC.

Урок 4 из 413 шагов

«WAF, Shield и Network Firewall» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.

Многоуровневая защита сети

Защита приложений от сетевых атак требует нескольких уровней защиты. AWS предоставляет три взаимодополняющих сервиса: AWS WAF фильтрует HTTP-трафик 7-го уровня по заданным правилам, блокируя атаки на уровне приложения. AWS Shield защищает от DDoS-атак (распределённых атак типа «отказ в обслуживании») на 3-м и 4-м уровнях. AWS Network Firewall — это межсетевой экран с отслеживанием состояния для проверки и фильтрации трафика на уровне VPC. Вместе эти сервисы охватывают различные векторы угроз и обычно развёртываются совместно для комплексной защиты.

# Layer coverage:
# Network Firewall: Layer 3-7 VPC traffic (stateful)
# Shield Standard: Layer 3-4 DDoS (automatic, free)
# Shield Advanced: Layer 3-7 DDoS + response team
# WAF: Layer 7 HTTP/HTTPS (application attacks)

# Typical deployment:
# Internet -> CloudFront+WAF -> ALB+WAF -> EC2/ECS
# Network Firewall in VPC for egress/lateral inspection
# Shield protects all traffic automatically

AWS WAF: Web Application Firewall

AWS WAF фильтрует запросы HTTP/HTTPS на основе заданных вами правил. WAF интегрируется с CloudFront, ALB, API Gateway, AppSync и Cognito. Правила могут проверять: наборы IP-адресов (блокировать или разрешать определённые IP), географическое соответствие (блокировать запросы из определённых стран), правила на основе частоты запросов (блокировать IP, превышающие заданную частоту запросов, для защиты от потоковых атак), управляемые группы правил (готовые правила для 10 основных угроз OWASP, AWS Threat Intel и Bot Control) и пользовательские правила (проверять любой компонент HTTP). ACL WAF (Web ACL) содержат правила и применяются к одному или нескольким ресурсам.

# Create WAF Web ACL
aws wafv2 create-web-acl \
  --name 'prod-web-acl' \
  --scope CLOUDFRONT \
  --region us-east-1 \
  --default-action Allow={} \
  --rules '[{
    "Name": "AWSManagedRulesCommonRuleSet",
    "Priority": 1,
    "OverrideAction": {"None": {}},
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesCommonRuleSet"
      }
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "CommonRuleSet"
    }
  }]' \
  --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=web-acl-metrics

Управляемые группы правил WAF

Управляемые группы правил AWS — это готовые наборы правил WAF, поддерживаемые AWS и защищающие от распространённых угроз без необходимости писать отдельные правила. Основные группы: AWSManagedRulesCommonRuleSet — защищает от 10 основных угроз OWASP (SQL-инъекции, XSS, RFI, LFI). AWSManagedRulesKnownBadInputsRuleSet — блокирует известные шаблоны вредоносных входных данных. AWSManagedRulesAmazonIpReputationList — блокирует IP с плохой репутацией (ботнеты, скомпрометированные узлы). AWSManagedRulesBotControlRuleSet — обнаруживает и блокирует ботов-скрейперов и автоматизированные браузеры. Большинство развёртываний WAF начинают с этих управляемых групп, а затем добавляют пользовательские правила.

# Add IP reputation list managed rule group
aws wafv2 update-web-acl \
  --name 'prod-web-acl' \
  --scope CLOUDFRONT \
  --id <acl-id> \
  --lock-token <lock-token> \
  --rules '[{
    "Name": "AWSManagedRulesAmazonIpReputationList",
    "Priority": 0,
    "OverrideAction": {"None": {}},
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesAmazonIpReputationList"
      }
    }
  }, ...existing_rules...]'

Правила WAF на основе частоты запросов

Правила на основе частоты запросов в AWS WAF автоматически блокируют IP-адреса, превышающие настраиваемый порог частоты запросов в течение 5-минутного окна. Это защищает от: потоковых атак HTTP (перегрузка серверов запросами), атак методом полного перебора (много попыток входа) и злоупотребления API (скрейпинг или перебор данных). Можно выполнять агрегацию по IP, по IP и пути запроса (ограничивать частоту для определённой конечной точки, например /login) или по пользовательским заголовкам. Заблокированные IP автоматически разблокируются, когда их частота запросов опустится ниже порога — ручное вмешательство не требуется.

# Create rate-based rule for login endpoint
aws wafv2 update-web-acl \
  --rules '[{
    "Name": "RateLimitLogin",
    "Priority": 2,
    "Action": {"Block": {}},
    "Statement": {
      "RateBasedStatement": {
        "Limit": 100,
        "AggregateKeyType": "IP",
        "ScopeDownStatement": {
          "ByteMatchStatement": {
            "SearchString": "/api/login",
            "FieldToMatch": {"UriPath": {}},
            "TextTransformations": [{"Priority": 0, "Type": "LOWERCASE"}],
            "PositionalConstraint": "STARTS_WITH"
          }
        }
      }
    }
  }]'

AWS Shield Standard и Advanced

AWS Shield Standard — автоматическая защита от DDoS, включённая для всех клиентов AWS без дополнительной платы. Она защищает от наиболее распространённых DDoS-атак 3-го (сетевого) и 4-го (транспортного) уровней — SYN-флуда, UDP-флуда и отражённых атак. AWS Shield Advanced обеспечивает расширенную защиту от атак 3-го, 4-го и 7-го уровней для EC2, ALB, CloudFront, Global Accelerator и Route 53. Shield Advanced включает: поддержку AWS DDoS Response Team (DRT), защиту от расходов (плата за масштабирование из-за DDoS возвращается), метрики в реальном времени и расширенную экспертизу атак. Shield Advanced стоит 3 000 долларов в месяц плюс плата за передачу данных.

# Enable Shield Advanced protection on ALB
aws shield create-protection \
  --name 'prod-alb-protection' \
  --resource-arn arn:aws:elasticloadbalancing:us-east-1:123:loadbalancer/app/prod-alb/abc

# Associate with a WAF Web ACL for layer-7 protection
aws shield associate-drt-log-bucket \
  --log-bucket my-shield-logs

# With Shield Advanced:
# - DDoS events detected and mitigated automatically
# - DRT can tune WAF rules during active attacks
# - Real-time CloudWatch dashboard
# - AWS will refund EC2/ELB/CloudFront scaling costs from DDoS

AWS Network Firewall

AWS Network Firewall — это управляемый межсетевой экран с отслеживанием состояния, развёрнутый в вашей VPC для проверки и фильтрации трафика. В отличие от Security Groups (с отслеживанием состояния, на уровне ресурсов) и NACL (без отслеживания состояния, на уровне подсетей), Network Firewall предоставляет: глубокую проверку пакетов (DPI), отслеживание состояния соединений, фильтрацию доменов (блокировку по имени или шаблону домена), правила IPS (Intrusion Prevention System) в формате, совместимом с Suricata, и фильтрацию исходящего трафика (контроль того, к каким ресурсам в интернете могут обращаться экземпляры EC2). Разворачивайте Network Firewall в выделенной подсети межсетевого экрана в каждой AZ.

# Create Network Firewall
aws network-firewall create-firewall \
  --firewall-name prod-vpc-firewall \
  --firewall-policy-arn arn:aws:network-firewall:us-east-1:123:firewall-policy/my-policy \
  --vpc-id vpc-12345 \
  --subnet-mappings '[{"SubnetId":"subnet-firewall-AZ1"},{"SubnetId":"subnet-firewall-AZ2"}]'

# Network Firewall topology:
# Internet -> IGW -> Firewall subnet (Network FW) -> App subnet
# Egress: App subnet -> Firewall subnet (Network FW) -> IGW -> Internet

Группы правил Network Firewall

Network Firewall использует группы правил для определения логики фильтрации. Группы правил без отслеживания состояния обрабатывают пакеты без отслеживания соединений — аналогично NACL, но более гибко. Группы правил с отслеживанием состояния отслеживают состояние TCP-соединений и проверяют полные сеансы HTTP/TLS. Правила можно писать тремя способами: правила по пяти параметрам (IP-адрес источника, IP-адрес назначения, протокол, порт источника, порт назначения), правила списков доменов (разрешение или запрет по FQDN) и правила IPS, совместимые с Suricata (самый мощный вариант — сопоставление шаблонов и проверка протокола). AWS предоставляет управляемые группы правил для распространённых угроз.

# Create domain list rule group (egress filtering)
aws network-firewall create-rule-group \
  --rule-group-name 'allow-egress-domains' \
  --type STATEFUL \
  --capacity 100 \
  --rules-source '{
    "RulesSourceList": {
      "Targets": [
        "amazonaws.com",
        "example.com",
        "*.npmjs.com"
      ],
      "TargetTypes": ["HTTP_HOST","TLS_SNI"],
      "GeneratedRulesType": "ALLOWLIST"
    }
  }'

# Block all other egress traffic by default
# Prevents EC2 from calling malicious external domains

Сравнение WAF, Shield и Network Firewall

Три сервиса предназначены для разных случаев использования и дополняют друг друга, а не заменяют: WAF — проверка HTTP на 7-м уровне, блокировка атак на приложение (SQLi, XSS), ограничение частоты запросов и управление ботами. Развёртывается на CloudFront или ALB. Shield — противодействие DDoS, защита инфраструктуры от объёмных атак. Shield Standard работает всегда, а Advanced добавляет поддержку команды. Network Firewall — управление трафиком VPC на уровнях 3–7, проверка с отслеживанием состояния, фильтрация доменов и IPS/IDS. Развёртывается внутри подсетей VPC. Используйте все три сервиса вместе: Network Firewall контролирует трафик на уровне VPC, WAF фильтрует запросы приложения, а Shield противодействует DDoS.

# Comparison table:
# Service          Scope     Layer  Use Case
# AWS WAF          Edge/ALB  7      App attacks, rate limits, bots
# Shield Standard  All       3-4    Auto DDoS mitigation (free)
# Shield Advanced  All       3-7    Enhanced DDoS + DRT support
# Network Firewall VPC       3-7    Stateful inspection, IPS, egress

# SAA-C03 exam keywords:
# 'SQL injection protection' -> WAF
# 'DDoS protection' -> Shield
# 'Block EC2 from calling external IPs' -> Network Firewall
# 'Block requests from country X' -> WAF geo-match

Журналирование и анализ WAF

WAF может записывать все выборочные запросы (1 из 5) или все запросы в журналы CloudWatch, S3 или Kinesis Data Firehose. Журналы содержат полные заголовки запроса, IP-адрес, страну, сведения о совпавших правилах и выполненном действии (ALLOW/BLOCK/COUNT). Используйте журналы WAF, чтобы: расследовать атаки — видеть, какие именно запросы были заблокированы; настраивать правила — выявлять ложные срабатывания (блокировку легитимных запросов) и добавлять исключения; обнаруживать новые угрозы — шаблоны заблокированных запросов могут указывать на новые векторы атак. Включайте режим COUNT для новых правил, прежде чем переключать их в режим BLOCK, чтобы убедиться, что они не блокируют легитимный трафик.

# Enable WAF logging to Kinesis Firehose
aws wafv2 put-logging-configuration \
  --logging-configuration '{
    "ResourceArn": "arn:aws:wafv2:us-east-1:123:global/webacl/prod-web-acl/abc",
    "LogDestinationConfigs": [
      "arn:aws:firehose:us-east-1:123:deliverystream/waf-logs"
    ],
    "LoggingFilter": {
      "DefaultBehavior": "KEEP",
      "Filters": [{
        "Behavior": "KEEP",
        "Conditions": [{"ActionCondition":{"Action":"BLOCK"}}],
        "Requirement": "MEETS_ANY"
      }]
    }
  }'

Архитектурные шаблоны развертывания WAF

Для правильного развертывания AWS WAF необходимо понимать, где подключить его в архитектуре. Для приложений, доступных из интернета, подключайте WAF к CloudFront, чтобы проверка выполнялась на периферии до того, как трафик достигнет источника — это блокирует атаки до того, как они используют пропускную способность источника. Для внутренних API или если CloudFront не используется подключайте WAF к ALB. Для API, предоставляемых через API Gateway, WAF можно подключить на уровне API Gateway. WAF можно одновременно подключить к нескольким ресурсам — к дистрибутиву CloudFront AND к расположенному за ним ALB — для эшелонированной защиты, однако это вдвое увеличивает стоимость проверки.

# WAF attachment points:
# 1. CloudFront distribution (global edge, CLOUDFRONT scope)
aws wafv2 associate-web-acl \
  --web-acl-arn arn:aws:wafv2:us-east-1:123:global/webacl/my-acl/abc \
  --resource-arn arn:aws:cloudfront::123:distribution/EXAMPLEID

# 2. ALB (regional, REGIONAL scope)
aws wafv2 associate-web-acl \
  --web-acl-arn arn:aws:wafv2:us-east-1:123:regional/webacl/my-acl/xyz \
  --resource-arn arn:aws:elasticloadbalancing:us-east-1:123:loadbalancer/app/my-alb/abc

# 3. API Gateway REST API
# 4. AppSync GraphQL API
# 5. Amazon Cognito User Pool

Firewall Manager для WAF в нескольких аккаунтах

AWS Firewall Manager централизует политики WAF, Shield Advanced, Network Firewall и групп безопасности во всех аккаунтах организации AWS. Определите правила WAF один раз в Firewall Manager, и они автоматически применятся ко всем ALB, дистрибутивам CloudFront и API Gateway во всех аккаунтах-участниках, включая недавно созданные ресурсы. Если в аккаунте-участнике развертывается новый ALB, Firewall Manager автоматически связывает с ним веб-ACL WAF. Это обеспечивает единообразное применение политик безопасности во всей организации без необходимости полагаться на отдельные команды, которые должны правильно настраивать WAF.

# Create Firewall Manager WAF policy
aws fms put-policy \
  --policy '{
    "PolicyName": "org-wide-waf-policy",
    "SecurityServicePolicyData": {
      "Type": "WAFV2",
      "ManagedServiceData": "{\"type\":\"WAFV2\",\"preProcessRuleGroups\":[{\"managedRuleGroupIdentifier\":{\"vendorName\":\"AWS\",\"managedRuleGroupName\":\"AWSManagedRulesCommonRuleSet\"},\"ruleGroupArn\":null,\"overrideAction\":{\"type\":\"NONE\"},\"excludeRules\":[],\"ruleGroupType\":\"ManagedRuleGroup\"}]}"
    },
    "ResourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer",
    "IncludeMap": {"ACCOUNT": []},
    "ExcludeResourceTags": false,
    "RemediationEnabled": true
  }'

Быстрая проверка

Проверьте, насколько хорошо Вы усвоили концепции AWS Solutions Architect (SAA-C03) из этого урока.

Итоги урока

В этом уроке Вы узнали, что AWS WAF фильтрует HTTP-трафик 7-го уровня, блокируя SQL-инъекции, XSS и ботов, а также ограничивая частоту запросов от злоупотребляющих IP-адресов; Shield Standard обеспечивает автоматическую защиту от DDoS-атак на 3-м и 4-м уровнях, а Shield Advanced дополнительно предоставляет поддержку команды реагирования и защиту от связанных с атаками расходов; Network Firewall выполняет проверку трафика на уровне VPC с отслеживанием состояния, фильтрацией доменов и правилами IPS. Firewall Manager применяет политики во всех аккаунтах организации. Поздравляем с завершением раздела «Архитектура безопасности»!

Можно начать бесплатно

Изучай AWS Solutions Architect с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «WAF, Shield и Network Firewall» бесплатный?

Да — полный текст урока «WAF, Shield и Network Firewall» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.

Чему я научусь в уроке «WAF, Shield и Network Firewall»?

Блокируйте атаки из списка 10 основных угроз OWASP с помощью AWS WAF, защищайтесь от DDoS с помощью Shield Standard и Advanced и разворачивайте брандмауэр Network Firewall с отслеживанием состояния в… Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AWS Solutions Architect?

Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «WAF, Shield и Network Firewall»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AWS Solutions Architect?

Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. KMS, ACM и шаблоны шифрования
  2. GuardDuty, Inspector и Macie
  3. Secrets Manager и Parameter Store
  4. WAF, Shield и Network Firewall
← Назад к AWS Solutions Architect