The IAM authentication is really annoying. It's not supported by many client libraries, nor have I found an easy way to make arbitrary HTTP calls with signature v4.
The only other options are completely public or IP-based whitelist, the latter which is untenable in most cloud environments.