* See step 2 in https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
* See step 2 in https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
* See step 3 in https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html
* https://docs.aws.amazon.com/rolesanywhere/latest/userguide/authentication-sign-process.html#authentication-task1
* @param uri provider's IP (STATIC cluster) or URL (STRICT_DNS). Will use port 80 if the port is
resolveProfileElementsFromString(const std::string& string_data, const std::string& profile_name,
resolveProfileElementsFromFile(const std::string& profile_file, const std::string& profile_name,
* @brief Return the AWS profile string within a credentials file, following environment variable
* @brief Return a string value from a json object key, or a default it not found. Does not throw