IP addresses are not stable identities
They identify a network location, not a user, device, or workload. NAT/CGNAT, DHCP churn, mobile networks, and cloud egress rotation make “who is this?” a terrible question to answer with “what IP is this?”
IPs are location/network traits, not identities. Whitelists seem simple at first but, as nonna would say, quickly turn into a brittle and expensive sense of security.
They identify a network location, not a user, device, or workload. NAT/CGNAT, DHCP churn, mobile networks, and cloud egress rotation make “who is this?” a terrible question to answer with “what IP is this?”
Once an IP is allowed, everything from it tends to be treated as trusted. If that network is compromised, the whitelist becomes a bypass around real authentication and authorization.
It starts easy, then becomes constant ticket churn: ISP changes, office moves, VPN swaps, new vendors, new regions, failovers, temporary access. You spend human time babysitting a brittle control.
Autoscaling, multi-region, CDNs, serverless, Kubernetes, rotating egress—static allowlists fight all of it. You either pin traffic to fixed egress (extra infra + single points of failure) or accept avoidable outages.
Compromised VPNs, jump hosts, corporate networks, proxies, or cloud accounts can all produce traffic from “allowed” ranges. So whitelisting mostly filters noise, not targeted attackers—while blocking better identity-based controls.