Cloud Compare / Cloud Armor, AWS WAF and Azure WAF

Cloud Armor, AWS WAF and Azure WAF

Google Cloud Armor and its AWS and Azure equivalents: where each attaches, features, DDoS tiers, pricing, and moving rules between them.

Google Cloud Armor combines a web application firewall (WAF) with DDoS protection for anything behind a Google Cloud load balancer. AWS and Azure split the same job across two services each: a WAF service and a DDoS service. This page maps Cloud Armor to its equivalents, feature by feature, and shows what changes when you move rules between them.

The short answer

Cloud Armor partAWS equivalentAzure equivalent
Cloud Armor security policy (WAF rules, rate limiting, IP and geo rules)AWS WAF protection pack (web ACL)Azure WAF policy on Front Door or Application Gateway
Cloud Armor Standard DDoS protection for load balancersAWS Shield Standard (automatic, free)DDoS infrastructure protection (automatic, free)
Cloud Armor Enterprise (Adaptive Protection, advanced network DDoS, threat intelligence, attack visibility)AWS Shield Advanced, with AWS WAF included for protected resourcesAzure DDoS Network Protection (or IP Protection), with Front Door Premium or Application Gateway WAF
Bot management (reCAPTCHA)AWS WAF Bot Control; Fraud ControlBot Manager rule set (Front Door Premium, Application Gateway)
Edge security policies (at Google's edge, for CDN-cached content)AWS WAF on CloudFrontAzure WAF on Front Door

Where each one attaches

A WAF only sees traffic that passes through the service it's attached to, so the first design question is the same in every cloud: what's the entry point?

Cloud ArmorAWS WAFAzure WAF
Global entry pointGlobal external Application Load Balancer (backend security policy) and edge security policiesCloudFront distribution (web ACL created in us-east-1)Front Door Standard or Premium
Regional entry pointRegional external and internal Application Load Balancers; proxy and passthrough Network Load BalancersApplication Load Balancer, API Gateway REST API, AppSync, Cognito user pools, App Runner, Verified Access, AmplifyApplication Gateway WAF_v2; Application Gateway for Containers
Non-HTTP and VMs with public IPsNetwork edge security policies (Enterprise)Shield Advanced on Elastic IPs, NLB, Global AcceleratorDDoS Protection on public IPs
Policy scopeOne policy per backend service (or backend bucket)One web ACL per resource; one web ACL can cover many resourcesOne policy per Front Door / gateway, or per listener (site) and per path on Application Gateway

Feature by feature

FeatureCloud ArmorAWS WAFAzure WAF
OWASP-style managed rulesPreconfigured WAF rules from ModSecurity Core Rule Set 3.0, 3.3 and 4.x, with sensitivity levelsAWS managed rule groups: core rule set, known bad inputs, SQL database, Linux, Windows, PHP, WordPressDefault Rule Set (DRS 2.x) and older OWASP CRS 3.x on Application Gateway; DRS on Front Door Premium only
Custom rules languageCommon Expression Language (CEL), for example origin.region_code == 'XX'JSON statements (match, and/or/not, regex, size, geo, label)Match conditions on variables (RemoteAddr, RequestUri, headers, cookies) with operators
IP allow and deny listsRules on IP ranges; address groups for large listsIP setsIPMatch conditions in custom rules
Geo blockingYes (origin.region_code)Yes (geo match)Yes (GeoMatch)
Rate limitingThrottle or rate-based ban, keyed by IP, header, cookie, path and moreRate-based rules, with custom aggregation keys and 1–10 minute windowsRate limit custom rules (1 or 5 minute windows), grouped by client address, geo or none
Bot managementreCAPTCHA integration (challenge pages, tokens)Bot Control (common and targeted), CAPTCHA and silent challengeBot Manager rule set (good, bad, unknown bots); JavaScript challenge on Front Door
Account-takeover protectionreCAPTCHA account defender (separate product)Fraud Control: account takeover and account creation fraud preventionNot built in (use Entra External ID protections or a partner)
Threat intelligence listsEnterprise: Tor exit nodes, known malicious IPs, crawlers, public cloud rangesAmazon IP reputation and anonymous IP managed rule groupsBot Manager bad-bot IP reputation; Azure Firewall threat intel for non-web
Layer 7 DDoS helpAdaptive Protection (Enterprise) suggests rules from traffic anomaliesShield Advanced automatic application-layer DDoS mitigation; anti-DDoS managed rule groupRate limiting; Front Door's scale; DDoS Protection covers L3/L4
Try before you blockPreview mode per ruleCount action per rule or rule groupDetection mode per policy; Log action per rule
LogsLoad balancer request logs in Cloud Logging, with the matched ruleWAF logs to CloudWatch Logs, S3 or Firehose; sampled requestsWAF logs to Log Analytics, storage or Event Hubs
Manage across many projects / accountsPolicies per project, managed with Terraform or gcloudAWS Firewall Manager pushes WAF and Shield policies across accountsAzure Policy and Firewall Manager for WAF policies across subscriptions

DDoS tiers compared

Cloud Armor EnterpriseAWS Shield AdvancedAzure DDoS Network Protection
What it protectsLoad balancer backends; with network edge policies, NLBs, protocol forwarding and VMs with public IPsCloudFront, Route 53, Global Accelerator, ELB, Elastic IPsEvery public IP in the VNets linked to the plan
Adaptive / automatic L7 mitigationAdaptive ProtectionAutomatic application-layer mitigation (with AWS WAF)No (L3/L4 only; pair with WAF)
Response teamDDoS response supportShield Response Team (needs Business or Enterprise Support)DDoS Rapid Response
Cost protection during an attackBill protectionYes, credits for scaling chargesYes, credits for scale-out costs
WAF includedCloud Armor Standard charges waived for Enterprise-protected resources (check current terms)AWS WAF for protected resources, up to 50 billion requests a monthApplication Gateway WAF billed at the non-WAF rate in protected VNets
Price shape (US list, Oct 2026)Paygo about $200 a month per project (2 resources), plus data processing; Annual about $3,000 a month for 100 resources$3,000 a month per organisation, 1-year commitment, plus data transfer outFixed monthly plan covering 100 public IPs, plus per-IP overage; IP Protection is priced per IP

Pricing at a glance

US list prices for the WAF layer only, as of October 2026. All three charge for policies, rules and requests in some form; check each provider's calculator before deciding.

Cloud Armor StandardAWS WAFAzure WAF
Policy$5 a month per policy$5 a month per web ACLFront Door Premium: included in the $330 a month base fee; Front Door Standard ($35 base): custom rules only, charged per policy and rule
Rules$1 a month per rule$1 a month per rule or managed rule groupApplication Gateway: included in the WAF_v2 SKU price (fixed hourly plus capacity units)
Requests$0.75 per million (global policies), $0.60 (regional)$0.60 per million, plus add-ons for Bot Control and Fraud ControlFront Door: per-request and data transfer charges; Application Gateway: capacity units
Bot featuresreCAPTCHA priced separatelyBot Control from $10 a month per web ACL plus requestsIncluded with Front Door Premium and Application Gateway WAF

The same rule in each cloud

A rate limit of 100 requests per minute per client IP, blocking the excess, is a good way to see how the three models differ.

Cloud Armor (a throttle rule on the policy):

gcloud compute security-policies rules create 2000 --security-policy=sp-web-notes-test `
    --expression="true" --action=throttle `
    --rate-limit-threshold-count=100 --rate-limit-threshold-interval-sec=60 `
    --conform-action=allow --exceed-action=deny-429 --enforce-on-key=IP

AWS WAF (a rate-based rule in the web ACL's JSON):

{
  "Name": "rate-100-per-minute",
  "Priority": 20,
  "Statement": { "RateBasedStatement": { "Limit": 100, "EvaluationWindowSec": 60, "AggregateKeyType": "IP" } },
  "Action": { "Block": {} },
  "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "rate100" }
}

Azure WAF on Application Gateway (a custom rule in the WAF policy; rate limit rules need a match condition, here "any client outside the internal range"):

{
  "name": "RateLimit100",
  "priority": 20,
  "ruleType": "RateLimitRule",
  "rateLimitDuration": "OneMin",
  "rateLimitThreshold": 100,
  "groupByUserSession": [ { "groupByVariables": [ { "variableName": "ClientAddr" } ] } ],
  "matchConditions": [ { "matchVariables": [ { "variableName": "RemoteAddr" } ],
                         "operator": "IPMatch", "negationConditon": true, "matchValues": [ "10.0.0.0/8" ] } ],
  "action": "Block"
}

(Yes, negationConditon is misspelled in Azure's own API. Copy it as it is.)

Moving rules between them

  • Managed rules don't translate one to one. All three start from the OWASP Core Rule Set but tune and number rules differently. Map by intent (SQL injection, cross-site scripting, protocol attacks), not by rule ID, and expect a new round of false positives.
  • Exclusions move with the application, not the WAF. List the fields your application legitimately sends that look like attacks (rich-text editors, search boxes, JSON APIs) and re-create the exclusions on the new platform.
  • Start in observe mode: preview (Cloud Armor), Count (AWS WAF) or Detection (Azure WAF), for at least a week of real traffic, then enforce.
  • Lock the origin. Whatever the WAF, make sure traffic can't bypass it: Cloud Armor backends accept only Google front-end ranges; ALBs behind CloudFront accept only CloudFront's managed prefix list; Front Door origins check the X-Azure-FDID header or use Private Link.
  • Rate limits behave differently. Window lengths and how clients are counted differ (Cloud Armor and AWS WAF can key on headers or cookies; Azure groups by client address or geo). Re-test thresholds with real traffic rather than copying numbers.

Which to choose when

  • Workload in one cloud: use that cloud's WAF. They're integrated with the load balancer, logging and identity, and none is clearly better at blocking common attacks once tuned.
  • Need bots and fraud handled in the WAF: AWS WAF has the broadest built-in options (Bot Control, Fraud Control); Cloud Armor relies on reCAPTCHA; Azure's Bot Manager covers bot categories but not account takeover.
  • Global site, one entry point: Cloud Armor on a global load balancer, AWS WAF on CloudFront, or Azure WAF on Front Door Premium are the equivalent designs.
  • Multi-cloud or very large traffic: a third-party edge WAF and CDN in front of all three gives one rule set and one set of logs, at the cost of another vendor.

Compared as of October 2026. Service names, tiers and prices change; check the provider's documentation before deciding.