Earlier quoted context omitted.
This isn't exactly what you're asking for but on Android: Settings > Sound > Do Not Disturb > Allowed in Priority Only > Calls From Contacts Only (or Calls from Starred Contacts Only if you really want to lock it down). Optionally enable: If the same person calls a second time within a 15 minute period, allow it (might allow someone really trying to reach you to get through, might also allow a spam caller through).
I appreciate the advice, I hadn't considered using DND, but wouldn't that also silence e.g. texts as well?
While calls do get through from your contacts, you don’t get notifications for anything.
I really just want a contacts whitelist, but since that isn’t an option I use nomorobo which is a subscription service that works really well to block spam calls for $2/month. It’s an iOS app, focuses on not uploading your stuff to their servers, and doesn’t collect your call logs.