I know running a validator currently requires upwards of 20 GB of disk space. How about bandwidth?
Take a look at the bandwidth usage of my Stellar Core v9.1.0 validating instance (not writing to any history archive) for 6 hours after startup:
RAM usage increases over time. At least 2GB is a requirement, otherwise you'll have to restart your node continuously.
CPU usage varies. While 1 virtual thread of a VPS is generally sufficient, Stellar Core will take advantage of up to 31 hardware threads2.
For non-archiving validators, disk IO is minimal, while archiving ones usually publish to another host. An SSD drive does the job, anyway.
1 The peer connections and the history system are all in their own thread, and the main logic all takes place in one thread. (source)
2 Many Intel processors have a feature called hyper-threading, which allows for more than 1 software thread to be executed on a given core at the same time. For example, a processor on which each core can execute 2 such threads in parallel is said to have 2 hardware threads per core. On processors without this feature the total number of hardware threads equals the number of cores.