AWS publishes ip-ranges.json, and when a client connects to my system I can search the JSON file to determine if the client is coming from AWS or not.
If I don't need to know the AWS region, I could also use Team Cymru to map the client IP to the Autonomous System and name:
$ dig +short 22.214.171.124.origin.asn.cymru.com TXT "14618 | 126.96.36.199/12 | US | arin | 2016-09-12" $ dig +short AS14618.asn.cymru.com TXT "14618 | US | arin | 2005-11-04 | AMAZON-AES, US"
AWS also offers a Bring Your Own IP (BYOIP) product (docs). IPs provided by the customer don't appear in ip-ranges.json, and mapping to an Autonomous System (AS) shows the customer AS rather than Amazon.
Is there any practical way for me to identify a client IP as being AWS hosted via BYOIP?
Maybe the answer is "examine BGP peering records"? If so, that's somewhat involved right?